Linux Rescue
RedHat/CentOS
Single-User Mode
Situation: Reset the root's password
For GRUB Bootloader)
系統重開機 -> 進入開機選單
- Select the kernel
- Press the
e
key to edit the entry - Select second line (the line starting with the word kernel)
- Press the
e
key to edit kernel entry so that you can append single user mode - Append the letter
S
(or wordSingle
) to the end of the (kernel) line - Press ENTER key (或者 Ctrl + x 直接啟動系統,跳過下一個步驟)
- Now press the
b
key to boot the Linux kernel into single user mode - At prompt type
passwd
command to reset password:
mount -t proc proc /proc
mount -o remount,rw /
passwd
sync
reboot
For LILO Bootloader)
Boot: linux single
passwd
sync
reboot
TIP: 在 RedHat 8 的環境,single-user mode 就是 rescue mode,輸入的字串改成
systemd.unit=rescue.target
。除了 single-user mode,還有另一個
rd.break
也可以試試。
以安裝光碟開機的救援
以安裝光碟開機,在開機選單裡選擇 Rescue 項目,開機過程會有以下導引:
- 選擇語言
- 選擇鍵盤類型
- 是否要啟用網路功能
最後進入 shell 模式,系統的根目錄會被掛載為 /mnt/sysimage。
切換根目錄指令
chroot /mnt/sysimage
Emergency Mode (緊急開機模式)
NOTE: Emergency 不支援網路功能,如果系統修復會需要網路,不適合使用這模式。
除了 single-user mode,還有另一種開機模式 emergency mode,也適合用來修復無法開機的系統,不過,要進入 emergency mode 必須先輸入 root 密碼,所以不適合用來做重置密碼的用途。
在 RedHat 6 環境,使用方法與 single-user mode 一樣,只是將字串替換成 emergency
。
在 RedHat 8 環境,字串換成 systemd.unit=emergency.target
。
Ubuntu/Debian
Reset Root's Password
- How to Reset Forgotten Root Password in RHEL 8
- How to Reset Forgotten Root Password in Ubuntu (tecmint.com)
Chroot
Fix a Broken Bootloader Using Chroot
# Make a bootable USB by downloading a Linux ISO and booting from the USB.
# Mount your system partition to work with chroot.
sudo mount -t ext4 /dev/sda /mnt
sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys
# Let’s chroot into the “/mnt” directory and enter the broken system.
sudo chroot /mnt
# Install, check, and update the GRUB bootloader in your system.
grub-install /dev/sda
grub-install --recheck /dev/sda
update-grub
# Exit the shell using the exit command mentioned earlier.
# Unbind the previously bound directories and unmount the filesystem.
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt
# Reboot your PC and unplug the live USB.
Q & A
根目錄唯讀,使用了 remount 也沒用
試過了 single-user,emergency,安裝光碟救援的所有模式,始終無法將根目錄掛載成可讀寫,使用的指令是 mount -o remount,rw /
。原因可能是根目錄的 filesystem 有區塊損壞,必須先完成修復,才能進行重新掛載。
修復 filesystem
fsck -y /dev/your-root-disk
No Comments