1. 程式人生 > >linux 常見系統問題的恢復

linux 常見系統問題的恢復

在/boot 分割槽出現問題後,我們的系統將會有大麻煩,那麼如何解決呢? 本文提供給大家一些常見問題的處理方案,希望可以幫到大家。

硬碟引導階段 (mbr主引導記錄的恢復

mbr的主要作用引導硬碟到指定位置載入作業系統,共512位元組
    1~446                              447~510           511~512
呼叫作業系統的機器碼        分割槽表         主引導記錄簽名(0X55和0XAA)

可以看到我們的/boot 分割槽在 /dev/vda 這塊裝置上

模擬問題: dd if=/dev/zero of=/dev/vda bs=446 count=1

reboot 系統起不來

解決:
[[email protected] ~]# virt-manager  切換到虛擬機器的管理介面
新增光碟,加入系統版本的映象

在Boot Options 中選擇啟動方式為光碟啟動


開機
選擇Trouleshooting      


選擇Rescue 模式


選擇Continue


選擇ok

選擇ok

chroot /mnt/sysimage/ 把根切換到真實根的位置
grub2-install 啟動分割槽所在硬碟 例:/dev/vda
exit
exit

關閉虛擬機器
在Boot Options 中選擇啟動方式為硬碟啟動


開機

檔案引導階段

1> 引導檔案丟失

[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        10G  3.1G  7.0G  31% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           474M   84K  474M   1% /dev/shm
tmpfs           474M   13M  462M   3% /run
tmpfs           474M     0  474M   0% /sys/fs/cgroup
/dev/sr0        3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64

檢視/boot的掛載點,沒有獨立出來,就在/的掛載點

[[email protected] ~]# cd /boot/grub2
[[email protected] grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes
[[email protected] grub2]# rm -fr grub.cfg

模擬問題
[[email protected] grub2]# rm -fr grub.cfg

  • 未重啟系統的解決1方案

[[email protected] grub2]# grub2-mkconfig    命令的輸出就是引導檔案的內容
[[email protected] grub2]# grub2-mkconfig > /boot/grub2/grub.cfg

  • 重啟了系統的解決方案(手動引導)

grub  > set root='hd0,msdos1'                             此位置是不固定的,位置指定/boot所在分割槽

grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1   引導核心

grub > initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img                        引導初始化映象


grub > boot       重啟使修改生效
以上操作是臨時的可以使系統啟動,進入系統後還需執行
[[email protected] grub2]# grub2-mkconfig > /boot/grub2/grub.cfg

2>  核心檔案丟失
核心檔案的儲存位置
[[email protected] grub2]# cd /boot/
[[email protected] boot]# ls
config-3.10.0-123.el7.x86_64
grub
grub2
initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
initramfs-3.10.0-123.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-123.el7.x86_64.gz
System.map-3.10.0-123.el7.x86_64
vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
vmlinuz-3.10.0-123.el7.x86_64

模擬問題==> 誤刪核心檔案
[[email protected] boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64
[[email protected] boot]# reboot
Connection to 172.25.254.202 closed by remote host.
Connection to 172.25.254.202 closed.
重啟系統有問題


解決方式
[[email protected] ~]# virt-manager
在Boot Options 中選擇啟動方式為光碟啟動


開啟虛擬機器進入挽救模式
chroot /mnt/sysimage/
mkdir /westos
mount /dev/sr0 /westos                                                              掛載光碟
cd /westos                                                                                
ls
cd Packages/
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/                            因為光碟只讀,所以將 安裝包拷貝到 /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id          拆包
cd boot/
ls
cp vmlinuz-3.10.0-123.el7.x86_64  /boot/                                將檔案拷貝到指定位置

exit

exit

選擇啟動方式為硬碟啟動

成功!!!

3> 系統初始化映象檔案丟失
模擬問題
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
當系統沒有重啟時
mkinitrd /boot/initramf-$(uname -r).img $(uname -r)
當系統重啟後
進入挽救模式
chroot /mnt/sysimage/
mkinitrd /boot/initramf-$(uname -r).img $(uname -r)

好了,今天就分享這幾個問題的處理方法,希望對大家有幫助。