part_17:系統排錯
阿新 • • 發佈:2018-12-21
1 . root密碼忘記
- 重新啟動系統
- 在系統啟動階段按上下健停止系統系統引導
- 選擇啟動引導標題,按“E”進行編輯
- 找到linux16引導條目這一行,從這行最後刪除到ro選項,並把ro改為rw,然後新增rd.break選項
- ctrl+x啟動設定過後的系統引導條目
- 進入系統後執行chroot /sysroot切換到真實的系統環境
- passwd root修改超級使用者密碼
- 建立檔案/.autorelabel讓系統從新掃描所有檔案
- exit兩次使系統自動重新啟動
2 . 系統恢復
(一) 硬碟引導階段 mbr主引導記錄的恢復
- 模擬問題:dd if=/dev/zero of=/dev/vda bs=446 (主分割槽檔案的446個位元組)count=1
- reboot
- 進入挽救模式:poweroff後,匯入映象 ,將IDE CDROM 調到最上邊,這是光碟啟動,因為要從映象裡面安裝東西
- 開機後 troubleshooting 後, 選擇第二個linux system,直接continue ok ok
- chroot /mnt/sysimage 將主引導記錄目錄移到根下
- df 檢視一下
- grub2-install /dev/vda 啟動分割槽所在硬碟
- 兩次exit
- poweroff後將IDE CDROM 移下去,改成硬碟啟動 開機就可
(二) 引導檔案的丟失 恢復 (系統初始化手動引導) == /boot/ grub2 下的是引導檔案==
- 假設不小心把引導檔案刪除 rm -rf /boot/grub2/grub.cfg
- 兩種恢復方法:
(1)不用開機重啟 : grub2-mkcofig > /boot/grup2/grup.cfg
(2)開機重啟:(先df檢視位置)
1)grup > set root=‘hd0,msdos1’ ##設定跟目錄為第幾個硬碟的第幾個分割槽。
==這裡的位置是/boot所在的位置,如果/boot單獨分割槽,假如是/dev/vda5 則是msdos5 ; 如果 /boot沒有單獨分割槽,那位置就是/的所在分割槽。 ==
因為/boot沒有單獨分割槽,所以指向根分割槽
2)grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 ## 將核心檔案只讀掛載到跟分割槽
== 其中:vmlinuz-3.10.0-123.e17.x86_64是核心檔案;vda1 是跟分割槽的裝置名稱,無論什麼時候,這裡指向的是跟分割槽;如果/boot沒有單獨列出,那麼路徑就是linux16/boot/vmlinuz-3.10.0-123.e17.x86_64 ; 如果/boot單獨列出,則路徑是linux16/vmlinuz-3.10.0-123.e17.x86_64 ==
3)grub > initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img(系統初始化映象)
4)grub > boot ##啟動
(三) 核心檔案的丟失
- 假設刪除了: rm -rf /boot/vmlinuz-3.10.0-123.e17.x86_64 ##假設刪除了核心檔案
- 進入到挽救模式: (1)chroot /mnt/sysimage 將主引導記錄目錄移到根下 (2)mkdir /westos 建立一個目錄,用來掛載映象:mount /dev/sr0 /westos (3)cd /westos後ls 可以看到Package cd到該目錄下 (4)複製 kernel-3.10.0-123.e17.x86_64.rmp 到 /mnt下(目錄不是唯一的,自己能記住就行,也可以是/etc 無所謂):cp kernel-3.10.0-123.e17.x86_64.rm /mnt (5)cd /mnt 拆包:rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id (6)cd到/mnt下的boot cp vmlinuz-3.10.0-e17.x86_64 /boot/ ##將核心檔案移到/boot (7)兩次exit退出後,改成硬碟啟動,就可以了。
- 改成硬碟啟動 開機就可
(四)系統初始化映象檔案丟失 uname -r :專門檢視核心版本
- 模擬實驗:假設刪除了映象檔案:rm -rf /boot/initramfs-3.10.0-123.e17.x86_64.img
- 恢復: (1)當系統沒有重啟時:mkinitrd /boot/initramfs-3.10.0-123.e17.x86_64.img 3.10.0-123.e17.x86_64 ## mkinitrd 命令生成該映象 (2)當系統重啟後,進入挽救模式,chroot /mnt/sysimage後: mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##此處回報錯,因為系統管道未開啟,但是無關緊要 (3)兩次exit退出後,改成硬碟啟動,就可以了。
(五)/boot分割槽的恢復(將以上所有的設定都恢復一遍)
- 假設:/boot分割槽被刪除 rm -rf /boot
- 恢復: (1)進入挽救模式 , chroot /mnt/sysimage (2)建立一個目錄: mkdir /boot (3)grub2-install /dev/vda ## 啟動分割槽所在硬碟 (4)因為之前已經掛載和拆包,所以直接將/mnt/boot/的核心檔案複製到 /boot (5)系統初始化映象檔案恢復 (6)引導檔案的恢復 (7)兩次exit退出後 ,改成硬碟啟動就可以了
(六) 系統的啟動級別出問題後
- 錯誤生成:systemctl set-default reboot.tardet 系統無限重啟
- 解決: (1) 開機按上下鍵停止讀1. 開機按上下鍵停止讀秒 (2) 按“E”進入編輯模式 (3)選擇核心啟動行 改變為: 5 (4)ctrl + x 啟動 (5)重新設定啟動系統的引導條目:systemctl set-default graphical.tardet 即可
3 . find命令
下面是一部分例子的操作展示: 例題: 將屬於mail組的檔案備份到/mnt下。