MBR扇區故障
先來一張硬盤存儲邏輯簡圖
mbr在第一塊磁盤的第一個磁道的第一個扇區哦
摘自:http://www.cnblogs.com/wuguanglei/p/4244639.html
備份mbr數據
注意!mbr數據需要備份在其他硬盤,多處備份!
查看分區情況,我們呢有2個硬盤
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 19G 5.5G 13G 32% / devtmpfs 485M 0 485M 0% /dev tmpfs 490M 12K 490M 1% /dev/shm tmpfs 490M 6.8M 484M 2% /run tmpfs 490M 0 490M 0% /sys/fs/cgroup /dev/sda1 93M 65M 22M 75% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 991M 2.6M 922M 1% /data
現在將mbr信息寫入第二個硬盤中,/data目錄是掛載在第二塊硬盤上的
# dd if=/dev/sda of=/data/mbr.bin bs=512 count=1
模擬mbr損壞
# dd if=/dev/zero of=/dev/sda bs=512 count=1
重啓系統後,linux系統已經無法啓動
修復mbr損壞
1. 需要linux系統光盤或者u盤啓動
選擇troubleshooting模式,救援模式
磁盤將會被掛載至/mnt/sysimage/下
continue 以rw方式掛載分區。
read only 以ro方式掛載分區。
skip 跳過,將來自己手工掛載磁盤。
繼續即可,事實上是掛載不到原系統分區的,因爲分區表不在了。
2. 掛載保存mbr數據的第二塊硬盤
#fdisk -l
#mkdir /data #mount /dev/sdb1 /data
3. 使用備份的mbr數據修復系統磁盤分區
#dd if=/data/mbr.bin of=/dev/sda bs=512 conut=1
對比centos6總結
對比centos 6,centos7 與centos6在mbr損壞的修復過程一致
擴展
主引導程序損壞
如果mbr的分區信息沒有損壞,而主引導程序損壞,則進入救援模式後
會掛載原有系統到/mnt/sysimage下
# chroot/mnt/sysimage # grub2-install /dev/sda 或者 #grub2-install root-directory=/mnt/sysimage /dev/sda
glibc升級導致系統無法啓動
同樣進入救援模式,替換到未升級之前的庫文件,重啓即可。
/etc/fstab文件丟失
"/etc/fstab"配置文件決定了Linux系統在啓動後如何加載各分區,例如根分區"/"、"/boot"分區等,若這些分區無法掛載,系統將會以ro掛載根分區。丟失"/etc/fstab"文件後,啓動後將無法對文件系統進行寫操作。
同樣進入救援模式,恢復/etc/fstab文件
遺忘root用戶的密碼
通過單用戶模式重設root賬號的密碼
single
GRUB引導故障
模擬GRUB故障
GRUB是大多數Linux系統默認使用的引導程序,可以通過啓動菜單的方式選擇進入不同的操作系統(如果有的話)。當"/boot/grub2/grub.cfg '配置文件丟失,或者關鍵配置出現錯誤,或者MBR記錄中的引導程序遭到破壞時,Linux主機啓動後可能會出現"grub>"的提示符,無法完成進一步的系統啓動過程。
# mv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
修復GRUB故障
使用grub引導修復
1. 指定文件系統,可以是xfs或者ext2,這個要根據安裝系統時選擇的文件系統,centos7默認是xfs
grub>insmod xfs or grub> insmod ext2
2. set root:指定包含內核等引導文件的/boot分區所在的位置
grub> set root='hd0,msdos1'
#hd0 表示第一塊硬盤 msdos1 表示第一個分區
3. linux16:指定內核文件所在的位置,內核加載時權限爲只讀"ro",並通過"root="指定根分區設備文件的位置。
這裏如果不知道內核文件名稱,就要相同centos系統版本里/boot/grub2/grub.cfg去看。
grub>linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/sda1rhgbquiet
#這裏的root是指根分區所在目錄
注:
ro #read only rhgb # redhat graphical boot quiet #disable all log messages
4. 指定啓動內核所使用的臨時系統鏡像文件所在的位置
grub>initrd16 /initramfs-3.10.0-123.el7.x86_64.img
修復完成後即可進入系統,重建配置文件。
使用光盤救援模式修復
chroot /mnt/sysimage grub2-install /dev/sda
對比centos6總結
centos6的grup引導命令 grub>root (hd0,0) grub>kernel/vmlinux-2.6.18-8.e15 ro root=/dev/VolGroup00/LogVo100 rhgb quiet grub>inited /initrd-2.6.18-8.e15.img grub>boot
>:title:指定在啓動菜單中顯示的操作系統名稱。
>:root:指定包含內核等引導文件的/boot分區所在的位置。
>:kernel:指定內核文件所在的位置,內核加載時權限爲只讀"ro",並通過"root="指定根分區設備文件的位置。
>:initrd:指定啓動內核所使用的臨時系統鏡像文件所在的位置。
centos7和centos6在grup引導系統啓動,命令有些變化,小夥伴們注意了哦!