在運行 CentOS7 的 1&1 專用伺服器上重設 root 密碼時遇到了一些問題。
能夠透過終端機存取 GRUB 並可以顯示以下內容,但這看起來與許多範例不同。
setparams 'CentOS Linux, with Linux 3.10.0-327.28.2.el7.x86_64'
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod diskfilter mdraid09
insmod ext2
set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-327.28.2.el7.x86_64 rd.driver.pre=raid1,ahci,dm_mod root=/dev/md1 domdadm dolvm rd.lvm.vg=vg00 rd.lvm.lv=vg00/usr ro console=ttyS0,57600 console=tty0 net.ifnames=0 biosdevname=0
initrd16 /boot/initramfs-3.10.0-327.28.2.el7.x86_64.img
我嘗試將 ro 行更改為 rw 並添加 init=/sysroot/bin/sh 但這沒有幫助。
在執行載入過程時,我收到錯誤
[FAILED] Failed to start Switch Root.
See 'systemctl status initrd-switch-root.service' for details.
答案1
嘗試將“systemd.unit=rescue.target”新增至“linux16”行,如中所述https://fedoraproject.org/wiki/Systemd#Boot_Kernel_Command_Line
答案2
以下是在 CentOS 7 和 RHEL 7 中重設 root 密碼的方法:
- 開啟系統電源,然後在 GRUB 2 開機畫面上按E編輯目前條目。
- 使用 編輯該行
linux16
,刪除rhgb
和quiet
參數並rd.break
在末尾新增。 - 按CTRL+ X;系統將在 initramfs
switch_root
提示字元下啟動。 - 將檔案系統重新掛載為可寫入:
mount -o remount,rw /sysroot
- 更改檔案系統根目錄:
chroot /sysroot
- 修改root密碼:
passwd root
- 強制 SELinux 在下次啟動時重新標記上下文:
touch /.autorelabel
- 將檔案系統重新掛載為唯讀:
mount -o remount,ro /sysroot
- 退出chroot環境:
exit
- 恢復系統啟動:
exit
來源:指引我前段時間寫的。