Linux 引導修復


CentOS-Logo

系統引導是一個操作系統運行的開始,若是引導出現問題,系統便無法正常使用,那有沒有方法修復呢?答案是有的。


CentOS7 引導過程

1.開機自檢BIOS
2.MBR引導
3.GRUB菜單
4.加載內核kernel與內存文件系統initramfs
5.加載硬件驅動及初始化進程


MBR 扇區故障修復

MBR引導記錄位於物理硬盤的第一個扇區(512B),又稱為主引導扇區,除了包含系統引導程序的部分數據外,還包含整個硬盤的分區表記錄。

備份 MBR 扇區數據

1.准備另一塊硬盤用於MBR扇區備份數據

[root@localhost ~]# fdisk /dev/sdb
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

2.掛載/dev/sdb1分區

[root@localhost ~]# mkdir /bak
[root@localhost ~]# mount /dev/sdb1 /bak/
[root@localhost ~]# df -hT
文件系統       類型      容量  已用  可用 已用% 掛載點
/dev/sda2      xfs        20G  3.4G   17G   17% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G  9.1M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       2.0G  174M  1.9G    9% /boot
tmpfs          tmpfs     378M  8.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /bak

3.備份MBR扇區數據

[root@localhost ~]# ls /bak/
[root@localhost ~]# dd if=/dev/sda of=/bak/sda.mbr.bak bs=512 count=1
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已復制,0.000289995 秒,1.8 MB/秒
[root@localhost ~]# ls /bak/
sda.mbr.bak

模擬 MBR 扇區故障

1.人為覆蓋MBR扇區記錄

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已復制,0.000157851 秒,3.2 MB/秒

2.重啟

[root@localhost ~]# init 6

3.無法啟動

無法啟動

恢復 MBR 扇區數據

1.使用光盤或U盤啟動盤進行操作系統引導

啟動菜單

2.進入Troubleshooting疑難解答模式

疑難解答

3.進入Rescue a CentOS system系統急救模式

急救模式

4.進入shell環境,進行恢復

shell

mkdir /bak
mount /dev/sdb1 /bak
ls /bak
dd if=/bak/sda.mbr.bak of=/dev/sda
reboot

5.恢復成功

恢復成功


GRUB 引導故障修復

GRUB是大多數Linux系統默認的引導程序,可以通過啟動菜單的方式選擇進入不同的操作系統。若是配置文件丟失,或者關鍵配置出現錯誤,就無法完成啟動過程。

模擬 GRUB 故障

1.刪除配置文件

[root@localhost ~]# cp -p /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@localhost ~]# rm -f /boot/grub2/grub.cfg
[root@localhost ~]# init 6

2.無法啟動

無法啟動

修復 GRUB 故障

前面部分和上面一樣,同樣進入系統急救模式進行修復。

shell

1.加載系統鏡像,切換到待修復的Linux系統根環境

chroot /mnt/sysimage/

2.在sdaMBR扇區重新安裝grub引導程序

grub2-install /dev/sda

3.重新構建grub菜單配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

4.退出並重啟,等待系統啟動

exit
reboot

遺忘 ROOT 密碼

當忘記root密碼時,將無法在Linux系統上執行管理、維護等任務。又無法通過其他用戶修改密碼時,同樣可以使用急救模式修改root密碼。

shell

很簡單,操作如下:

chroot /mnt/sysimage/
echo "000000" | passwd --stdin root 或 passwd root
exit
reboot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM