1. 程式人生 > >CentOS 6 各種啟動文件損壞及修復

CentOS 6 各種啟動文件損壞及修復

boot分區 使用 保留 數據 默認 無需 init /etc 臨時文件

stage1 mbr的破壞和恢復

清空mbr 前446字節

dd if=/dev/zero of=/dev/sda bs=1 count=446

如果沒有掛載啟動光盤,會顯示這樣

技術分享圖片

如果啟動前掛載了光盤,則重啟之後自動從光驅啟動了

技術分享圖片

此時選擇救援模式,Rescue installed system

按照提示操作最後進入到shell

修復mbr需要用到grub去修復磁盤,所以要先把根切到硬盤上

chroot /mnt/sysimage

運行grub-install進行修復

grub-install /dev/sda

查看一下

hexdump -C -n 512 /dev/sda

exit

reboot


stage1.5 數據破壞與修復

1.5階段的數據存放在mbr之後的27個扇區內,也就是13824個字節

破壞掉1.5階段的數據,無需全部破壞,我們用5120個字節試試.

dd if=/dev/zero of=/dev/sda bs=1 count=5120 skip=512 seek=512

修復方法同樣可以用grub-install


重啟進入救援模式

chroot /mnt/sysimage

grub-install /dev/sda

reboot


stage2 grub目錄的破壞與修復

刪除文件但保留grub.conf

重啟,提示error 15 ,

因為之前用grub-install修復過.所以之後啟動系統都需要讀取這些文件.


除了grub.conf文件,其他文件依然使用grub-install來修復.


進入救援模式

chroot /mnt/sysimage/

grub-install /dev/sda

sync


恢復grub.conf文件

cd /boot/grub/

可以使用scp命令通過網絡其他主機copy一個過來

也可以手動編輯一個grub.conf,內容格式如下

技術分享圖片



如果 /boot文件夾丟失

進入救援模式

切換根,掛載光驅

chroot /mnt/sysimage/

mount /dev/cdrom /mnt


安裝內核

rpm -ivh /mnt/Packages/kernerl.... --force

如果沒切根 要加 --root=/mnt/sysimage/


修復grub

grub-install /dev/sda

編輯恢復 grub.conf



丟失/boot/ 和 /etc/fstab

先修復 fstab

執行mount 按照內容來猜測每一個設備分區對應的掛載點

也可以 fdisk -l 按照分區大小來區分

或者創建臨時文件夾,掛載分區,查看其內容來確定

mkdir /mnt /tmp

mount /dev/sda1 /mnt/tmp;ls /mnt/tmp

mount /dev/sda2 /mnt/tmp;ls /mnt/tmp

...


按照上面得到的信息編輯fstab文件.

vi /mnt/tmp/etc/fstab

reboot


此時已可以加載分區,但還需要恢復/boot文件夾.

進入救援模式

掛載光盤/mnt/cdrom

安裝內核

rpm -ivh /mnt/cdrom/.... kernel.....rpm --root=/mnt/sysimage/ --force

修復grub

grub-install /dev/sda

sync

編寫grub.conf

vi /boot/grub/grub.conf

reboot


丟失/sbin/init

用bash代替init


救援模式

讀寫方式重新掛載根

mount -o remount.rw /

如果之前在/dev/sda3有init的備份,則掛載/dev/sda3.並恢復備份

mount /dev/sda3 /app

mv /app/init /sbin


如果沒有備份,可以直接重裝upstart.

掛載光盤/mnt/cdrom

安裝

rpm ivh /mnt/cdrom/CentOS_6.9_Final/Packages/upstart.xxxxxxxx.rpm –force


邏輯卷被破壞

通常centos默認安裝分區是會使用邏輯卷的,但/boot一定會使用普通分區.

技術分享圖片

假設破壞導致/etc/fstab和/boot丟失

刪除 /etc/fstab和/boot

reboot


修復:

1) 恢復邏輯卷

進入救援模式

使用命令查看磁盤和邏輯卷信息

blkid

lvs

pvs


掛載lv

mkdir /mnt/root

vgchange -ay 激活卷組

mount /dev/VolGroup/Lv_root /mnt/root

掛載boot分區

mkdir /mnt/boot

mount /dev/sda1 /mnt/boot

編輯fstab內容,把主要磁盤掛載記錄添加即可

vi /mnt/root/etc/fstab

其中UUID可以通過blkid獲得

reboot


2)恢復/boot

進入救援模式

切換根

chroot /mnt/sysimage/


掛載光盤

mkdir /mnt/cdrom


安裝內核

rpm -ivh /mnt/cdrom/....kernel.....rpm –force


修復grub

grub-install


啟用swap

blkid | tail -n1 >> /etc/fstab

swapon -a

swapon –s


查看內存狀態

free

reboot

CentOS 6 各種啟動文件損壞及修復