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)
好了,今天就分享這幾個問題的處理方法,希望對大家有幫助。