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/