ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

麒麟V10系统救援模式实战:从GRUB参数到chroot修复

麒麟V10系统救援模式实战:从GRUB参数到chroot修复 机器点不亮、密码忘了、升级后卡 logo这些场景我第一次碰到时也慌过。说实话在麒麟 V10-SP1 2503 桌面系统上真正解决问题的关键不是桌面端而是能不能顺利进到救援模式。这篇文章我就把进入救援模式这件事掰开揉碎讲一遍包括什么时候该进、怎么进、进去之后怎么修全是我自己踩过坑之后的实操总结。无论你是给单位终端救急还是自己家里装了麒麟双系统折腾这套流程都能直接用。1. 进救援模式前先搞清楚这几种故障的区别很多人一遇到系统起不来就直接重装其实大部分情况根本不用。问题在于你分不清“系统坏了”和“引导坏了”“密码忘了”之间的差别。救援模式就是为了在这些边缘状态下给你一个最小的可操作环境去修复系统。1.1 救援模式到底是什么用大白话说救援模式就是一个“不打图形界面、只留命令行”的最小系统。正常启动会加载桌面、启动各种服务救援模式则把这些全跳过直接给你一个 root 终端。有了这个终端你就能挂载硬盘、改文件、修引导、重置密码、重建内核镜像。在现代 systemd 体系下几个常见的启动目标target你需要记住normal 模式完整图形和网络服务平时开机就是这个。rescue.target单用户维护模式等价于老系统的 single / 1会挂载根文件系统通常是只读基础服务有限。emergency.target紧急模式比 rescue 更干净连文件系统挂载都由你手动完成适合排查底层问题。理解这个概念对后面操作很重要。因为不同故障状态你需要的“救援档位”不一样。比如只是忘记密码进 rescue 就行如果是 /etc/fstab 写错导致开机挂载失败那就得进 emergency 手动处理。1.2 哪些场景需要进救援模式我根据实际遇到过的情况给你列几个典型场景忘记系统用户或 root 密码图形登录界面进不去。升级内核或安装显卡驱动后开机一直卡在 logo 或黑屏。改坏了 GRUB 引导配置出现 grub rescue 或者直接没有引导项。系统升级中断导致应用启动异常比如提示 deepin-elf-verify 之类的签名校验失败。虚拟机或物理机上挂载盘的文件系统报错需要 fsck 修复。还有一种情况要注意如果你的硬盘启用了 LUKS 加密救援模式前得先解密磁盘分区否则后面挂载都会失败。麒麟部分政企部署版本会默认加密这点我在后面实操章节会专门说。2. 进入救援模式的三条实用路线我实测下来进入救援模式有三条可靠路线。第一条最快优先试第二条最通用修引导和救数据必用第三条适合双系统用户。2.1 开机改 GRUB 启动参数进入维护模式这是最常用、也是我推荐最先尝试的方法不需要额外准备 U 盘。原理很简单在 GRUB 菜单里临时修改内核启动参数让 systemd 以救援目标启动。具体操作步骤开机后盯着屏幕在品牌 logo 出现前后快速按Shift键BIOS 传统引导或Esc键UEFI 引导把 GRUB 菜单调出来。麒麟 V10-SP1 默认可能不显示菜单多按几次总没错。在菜单里选中第一项正常启动项按e进入编辑模式。找到以linux开头的那一行大概长这样linux /boot/vmlinuz-5.10.0-xxx-generic rootUUID... ro quiet splash把光标移到行尾先加一个空格然后加上下面的参数之一systemd.unitrescue.target进入单用户维护模式。single或1同样是单用户模式兼容性更好。systemd.unitemergency.target进入最精简的紧急模式适合排查挂载错误。按CtrlX或F10启动系统会跳进命令行环境。需要提醒的是如果系统提示需要输入 root 密码而你又不记得可以尝试在同一行行尾再加init/bin/bash这会跳过 systemd 直接进 bash通常在密码重置场景很管用。但前提是根文件系统可写进入后记得先执行mount -o rw,remount /。提示这个临时修改只对本次启动生效不会写坏 GRUB 配置。不用担心改错重启后自动恢复原样。2.2 用安装镜像或 U 盘启动进入 live 环境如果 GRUB 菜单都进不去、引导完全损坏或者根分区本身有问题需要修复那就要靠第二招麒麟系统安装镜像做成的启动 U 盘。具体流程准备一个至少 4GB 的 U 盘用dd或rufus把麒麟 V10-SP1 2503 的 ISO 写入。命令行方式sudo dd if/path/to/kylin-v10-sp1-2503.iso of/dev/sdX bs4M statusprogress注意of是 U 盘设备文件别写错盘否则数据没了别怪我没提醒。U 盘启动后选择进入试用桌面或安装界面。麒麟镜像通常自带 live 桌面环境直接点“试用”即可。如果是安装界面也没关系按CtrlAltF2切换到终端。在终端里先用lsblk查看硬盘分区布局搞清楚根分区和 EFI 分区分别是哪个。挂载根分区到 /mnt如果有 EFI 分区也要挂载到 /mnt/boot/efimount /dev/sdaX /mnt mount /dev/sdaY /mnt/boot/efi绑定系统虚拟文件系统mount -t proc /proc /mnt/proc mount -t sysfs /sys /mnt/sys mount --rbind /dev /mnt/dev mount --rbind /run /mnt/run然后 chroot 进系统chroot /mnt /bin/bash到这里你就拥有了一个完整的修复环境。重置密码、修 GRUB、重建 initramfs 都能干。这个方法也是我推荐给新手朋友的首选方案之一因为即使你对 Linux 不熟跟着流程一步步走翻车概率也低。2.3 借用另一套 Linux 系统救援这个方法适合你已经装了双系统或者手边有另一台能跑的 Linux 机器、虚拟机。原理和 live 环境类似把出问题的硬盘挂载到健康系统上然后 chroot 进去修复。物理机操作时把坏系统的硬盘作为从盘接上虚拟机则直接添加一块现有磁盘到另一台虚拟机。挂载前也先lsblk看一下避免搞错盘符。挂载步骤和 2.2 完全一致。这套方案的优点是不需要单独准备 U 盘尤其适合你正好在 VMware 里折腾麒麟 V10 的场景。我之前就是在虚拟机里把引导搞坏了顺手开了另一台 Ubuntu 虚拟机挂盘修复确实省事。3. 救援模式里的常用实操改密码、修引导、重建 initramfs进了救援模式只算成功了一半真正难的是知道接下来怎么修。我把日常救援频次最高的三个操作全写清楚每一步都带命令和原理说明。3.1 找回或重置系统用户密码这是最刚需的场景。进了救援模式或者 chroot 环境后重置密码很简单# 如果是在 live 环境 chroot 后 chroot /mnt /bin/bash # 然后修改用户密码 passwd 你的用户名系统会让你输入两次新密码看到 success 就说明改好了。如果是 root 被锁定的情况额外执行passwd -u root这个-u参数是解锁的意思只设置密码不够锁定的账号还是登不进去。如果你是直接通过init/bin/bash进来的操作顺序略有不同。先进去后先mount -o rw,remount /把根文件系统改成可写再执行passwd。我遇到过一个坑修改完密码后重启图形登录界面还是提示密码错误。后来发现是系统时间不对导致 Kerberos 或 PAM 相关服务校验失败。救援模式下执行一下date查看时间如果偏差大手动设置一下date -s 2025-03-20 10:00:00再进系统就正常了。注意密码操作只适用于你本人管理的机器。出于信息安全考虑不要把这种方法用在未授权设备上。3.2 修复 GRUB 引导与 EFI 分区引导损坏通常表现为开机直接进grub rescue命令行或者根本找不到启动项。修复思路是在 chroot 环境里重新安装 GRUB 到硬盘并重新生成配置文件。先确认分区挂载状态UEFI 引导必须有 EFI 分区挂载到 /boot/efimount /dev/sda1 /boot/efi然后执行安装引导# UEFI 模式 grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idKylin # BIOS 传统模式 grub-install /dev/sda再重新生成配置文件update-grub # 或者手动执行 grub2-mkconfig -o /boot/grub/grub.cfg麒麟 V10 虽然基于 Debian 体系但部分版本对 grub2 命令做了兼容处理你优先用update-grub如果提示找不到再换grub2-mkconfig。修复完成后exit退出 chroot卸载所有挂载点重启验证exit umount -R /mnt reboot这里要特别强调如果系统启用了 Secure Boot直接 grub-install 后可能提示安全校验失败。遇到这种情况别硬磕进 BIOS 临时禁用 Secure Boot 再启动。等系统正常后再决定要不要重新签内核。3.3 重建 initramfs解决开机卡 Logo 问题开机一直卡品牌 logo、黑屏只有一个光标闪烁很多时候是 initramfs 和当前内核不匹配或者升级内核后忘了更新 initramfs。救援模式下重建一遍就好。进入 chroot 环境后# 查看已安装的内核版本 ls /lib/modules # 重新生成所有内核的 initramfs update-initramfs -u -k all # 也可以指定内核版本 update-initramfs -u -k 5.10.0-xxx-generic-k all会处理 /lib/modules 下的所有内核最省事。执行完成后系统会重新生成 initrd 镜像到 /boot。我建议此时顺手把 GRUB 配置也重新生成一次确保新 initramfs 文件名被正确识别。这个操作用途很广。比如你之前装过闭源显卡驱动升级系统后黑屏很可能就是 nouveau 或 nvidia 驱动模块和内核不搭配。进救援模式先update-initramfs -u -k all十有八九能救回来。如果还不行再考虑在 GRUB 内核参数里加nomodeset禁用显卡 kernel mode setting先把系统跑起来再处理驱动。4. 常见问题排查与避坑实录这部分是我最想分享的全是实际操作中踩过的坑。我把高频问题整理成了速查表并附上我的排查思路。4.1 开机黑屏、反复重启、卡进度条怎么排查先把排查顺序记住看提示 → 查日志 → 验证挂载 → 修复组件。很多人一黑屏就重装实际上错误信息就在屏幕上只是你没来得及看。开机卡进度条最常见原因有几个/etc/fstab 里写了错误的挂载项。救援模式下打开 /etc/fstab把可疑的行注释掉再重启。比如之前挂过 U 盘、移动硬盘重启时设备不存在就会卡很久。文件系统损坏。用fsck修复之前先卸载对应分区已挂载状态下跑 fsck 会有风险。如果根分区报超块superblock错误可以用备份超块恢复# 查看备份超块位置 mkfs.ext4 -n /dev/sdaX # 用指定备份超块修复 fsck.ext4 -b 32768 /dev/sdaX内核或 initramfs 损坏。直接用 3.3 的方法重建。显卡驱动问题导致黑屏。在 GRUB 参数里加nomodeset或i915.modeset0Intel 核显进系统修驱动。反复自动重启通常和硬件检测、ACPI 相关。可以尝试在 GRUB 内核参数里加acpioff noapic但注意这会影响电源管理只是临时排查手段真正解决要从驱动和 BIOS 设置入手。4.2 救援模式常见失误速查表我整理了一张表把我在救援模式里踩过的坑都列出来了。现象原因解决办法chroot 后命令提示 not found系统架构不匹配或 /usr 没挂载确认用chroot /mnt /bin/bash无 /usr 分区则先挂载重置密码后登录仍失败系统时间错误 / PAM 校验问题date检查时间用date -s修正update-grub 提示找不到 grub.cfg文件系统只读或 chroot 环境没绑定 /proc先mount -o rw,remount /补全mount -t proc /proc /mnt/procEFI 引导修复后重启无引导项Secure Boot 拦截 / EFI 分区没挂载临时关闭 Secure Boot确认ls /sys/firmware/efi有输出恢复分区后 grub 菜单项重复系统里残留旧内核删除多余内核后执行update-grub提示 deepin-elf-verify 失败软件包升级中断救援模式 chroot 后执行dpkg --configure -a修复fsck 修复时提示设备忙分区被挂载或 swap 占用先umount分区swapoff后重试这张表我建议收藏。很多人救援模式修不好往往不是命令不对而是环境状态没准备好比如文件系统还是只读、虚拟文件系统没绑定就开始执行写入操作自然会报一堆莫名其妙的错。4.3 一些实践经验与建议最后分享几条我自己的实战经验。第一平时就给 /etc/default/grub 做个备份。动 grub 配置前先复制一份cp /etc/default/grub /etc/default/grub.bak出了事恢复一下就能省下很多修复时间。这个习惯帮我至少避免过两次重装系统。第二救援模式里别乱删包。看到某个包损坏第一反应如果是“把它卸载掉再装”建议三思。很多依赖会连带移除关键库直接从“小故障”变“大故障”。正确的做法是先dpkg --configure -a或者apt --fix-broken install修复依赖再决定是否删除。第三如果你的麒麟系统是虚拟机环境比如 VMware 里装的 V10-SP1救援流程完全一样。区别只是启动时进 BIOS 和 U 盘映射的方式略有不同但 GRUB 修引导、initramfs 重建这些操作没有任何差异。把上面这套玩熟了虚拟机里反而更好练手。第四救援模式进不去也不一定就是没救了。如果真的连 U 盘镜像都起不来先检查一下 U 盘写的是不是有问题换个 USB 口或者重新写一次盘。这个低级错误我自己犯过不止一次差点以为硬盘彻底报废。这个内容后续还可以这样扩展如果你学会了 chroot 救援那你就已经掌握了备份系统、迁移系统的基础功。遇到“保留数据重装系统”这种需求你也可以在 live 环境里先把 /home 和重要配置打包拷走再干净重装完事了把数据放回去。救援模式不只是修机器也是折腾其他系统功能的一块跳板。
返回列表