统信UOS要是启动失败,桌面卡死,或者任务栏突然弹出个“进入安全模式”的提示,别慌。这个问题说到底,核心在于怎么拿到root权限去修配置文件。跟Windows按个F8就能进安全模式不同,UOS这边得走底层引导的路子,方法有好几条,咱们挨个说。
强制唤起GRUB菜单选择恢复项
这个方法的关键在于时机。电脑刚接通电源,BIOS自检刚跑完,桌面还没出现的那几秒钟,就是你的操作窗口。机会稍纵即逝,必须抓住那个关键时机中断默认启动流程。
第一步,加电后立刻持续按住Shift键(老式Legacy BIOS模式)或者Esc键(UEFI模式),直到GRUB菜单界面刷出来为止,手不要松。
第二步,菜单出现后,用方向键选中那个带有“Advanced options for UnionTech OS”字样的条目,回车进去。
第三步,在子菜单里找一个带“recovery mode”的内核版本,通常排在列表最后。选中,回车。
第四步,等恢复控制台加载完成后,选择“Drop to root shell prompt”这个选项。这一步之后,根文件系统会以可读写方式挂载。特别强调:这时候所有磁盘分区都处于可读写状态,动起手来要格外小心,那句“rm -rf /”的玩笑可开不得。
GRUB命令行手动引导单用户shell
如果屏幕只给你一个光秃秃的grub>提示符,图形菜单完全没出来,就意味着GRUB虽然加载了,但菜单渲染失败了。这时候,咱们就得手动拼启动参数,搞一个“绝地求生”。
方法一:定位/boot分区并加载内核
第一步,在grub>提示符下,先输入ls,它会列出所有分区,比方说(hd0,gpt1)、(hd0,gpt2)、(hd0,gpt3)这些。
第二步,挨个用ls (hd0,gpt1)/、ls (hd0,gpt2)/这样的命令去查,哪个分区里藏着vmlinuz-*.efi.signed和initrd.img-*.efi.signed文件,那个就是/boot所在的分区。
第三步,定位之后,输入三行命令。注意,这里以gpt2作为boot分区、sda3作为根分区举例,实际要根据你刚才查到的结果来:
set root=(hd0,gpt2)
linux /vmlinuz-*.efi.signed ro root=/dev/sda3 init=/bin/bash
initrd /initrd.img-*.efi.signed
第四步,输入boot回车。系统会跳过systemd的初始化流程,直接给你丢进一个bash环境。在这个环境下,重置密码、修改/etc/fstab、或者删掉那些坏掉的.desktop文件,都不是问题。
持久化启用emergency.target
如果你还能正常登录桌面,那不妨搞个一劳永逸的配置,让系统每次启动都直接进入紧急模式,省得每次都去抢那几秒的GRUB菜单。
第一步,打开终端,用管理员权限编辑配置文件:sudo vim /etc/default/grub.d/11_dde.cfg
第二步,找到GRUB_CMDLINE_LINUX_DEFAULT这一行,在引号里现有参数的末尾,加个空格,然后追加参数systemd.unit=emergency.target。
第三步,保存退出,别忘了运行sudo update-grub来更新引导配置。
第四步,重启系统。下次开机就会直接进入emergency模式——你只能看到一个基础的TTY终端。想修改系统文件?得先手动执行mount -o remount,rw /让根文件系统可写。
TTY中启动rescue.target
这是最快捷的一条路。桌面卡死不要紧,只要Ctrl+Alt+F2还能切换到TTY,你就不需要重启系统,直接在运行状态下就能拿到维护权限。
第一步,按下Ctrl+Alt+F2切换到tty2,输入你的用户名和密码登录。
第二步,执行sudo systemctl start rescue.target。
第三步,系统会干掉图形会话,停掉所有非核心服务,只保留一个基础的shell环境和网络连接。
第四步,修好配置后,输入exit退出rescue模式,然后再执行sudo systemctl start graphical.target,桌面就能恢复如初了。
