[白開水]-故障-centos7啓動類故障-知識點

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:指定啓動內核所使用的臨時系統鏡像文件所在的位置。

   centos7centos6grup引導系統啓動,命令有些變化,小夥伴們注意了哦!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章