1. 程式人生 > >linux系統排錯與恢復

linux系統排錯與恢復


bios 初始化   基本輸入輸出系統  將硬體置於已知狀態並準備好系統以載入作業系統
一般 f12

磁碟引導階段grub2

grub2 檔案引導階段
指定boot分割槽

修改root密碼
進入選擇介面後按e

然後修改一些檔案取消他的認證
rw rd.break
刪除.img 後面的內容

ctrl+x

輸入命令
chroot  /sysroot/
passwd
再建立
touch /.anturelabel

exit reboot


1磁碟引導階段出問題  mbr 主引導記錄的恢復
模擬問題 dd if=/dev/zero  of=/dev/vda  bs=446 count=1
要確保你修改的硬碟是啟動硬碟

修改完光碟啟動後進入挽救模式
然後


chroot  /mnt/sysimage
grub2-install /dev/vda


exit
exit

去掉光碟就可以了


2 刪除了 /boot/grub2/grub.cfg磁碟引導
當系統沒有重新啟動時
grub2-mkconfig  > /boot/grub2/grub.cfg


當系統重啟後
會有grub操作命令


set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1(boot所在分割槽)
initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
boot
開機後以上操作只是自己手動引導輸入 如果要以後自動引導輸入就需要
grub2-mkconfig  > /boot/grub2/grub.cfg

這裡解釋下 root的位置,如果你的boot沒有單獨掛載出來,那麼就在根目錄中,就直接用上面的操作就可以,但是前提是確保你的分割槽在第一塊當中,如果你的boot單獨分了出來,那麼就需要,你把root='hd0,msdosX'  X為你boot的區  這時候上面的命令中就去掉/boot就可以  比如直接
initrd16 /initramfs-3.10.0-123.e17.x86_64.img
因為這個時候是直接在boot目錄下的,所以不需要重複進入boot,本身也是錯誤的操作。


3核心丟了怎麼做

rm -fr /boot/vmlinuz....
仍然是進入光碟的挽救模式
chroot /mnt/sysimage/
mkdir /westos
mount /dev/sr0 /westos
cp /westos/Packages/kernel-3....   /mnt
chmod 777 /mnt
rpm2cpio /mnt/kernel...   |cpio -id
cd /mnt/boot
cp  vmlinuz-3...   /boot/
exit
exit

就可以了  說白了就是將光碟中的核心檔案恢復你你刪除的核心檔案


4初始化映象檔案  
/boot/initramfs-3......img
這個檔案是自己生成的

生成的命令是
mkinitrd  /boot/initramfs-核心版本號  核心版本號
用 uname -r 檢視核心版本號

mkinitrd  /boot/initramfs-$(uname -r).img  $(uname -r)
自動填充核心版本號


在挽救模式下
chroot /mnt/sysimage/
mkinitrd /boot/initramfs-$(uname -r).img  $(uname -r)
exit exit


注意不要忘記.img


5如果刪掉 /boot/*

將上面的操作做一遍就好

進入chroot /mnt/sysimage

首先建立 mkdir /boot

grub2-install  /dev/vda

mount /dev/sr0  /mnt

安裝核心

rpm -ivh  /mnt/Packages/kernel-3...rpm  --force

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

exit  exit

開機後仍然

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


6系統啟動級別出錯
systemctl set-default graphical.target

在後面 加一個5 

然後真機啟動後

systemctl set-default graphical.target


7如果 chroot 時 發生錯誤  就將 /bin/bash  
複製到/mnt/sysimage/bin/