这是一个常见的场景。无论出于何种原因,initramfs(OpenSUSE,如果它很重要的话)都无法找到根文件系统,因此它会让您进入救援 shell。我非常清楚需要安装什么设备。我的问题:
挂载根文件系统并继续启动顺序的正确步骤是什么?
大概这就是全部观点救援控制台。然而,似乎没有人记录过你实际上是如何做到这一点的。
显然我可以在某个地方安装根文件系统。但我怎样才能做到这一点根文件系统树的?现在我要继续正常的启动过程吗? (我以为只要退出 shell 就可以了...但事实并非如此。)在继续之前您到底需要安装什么,以及如何继续?
答案1
执行 switch_root /mnt/root /sbin/init
答案2
这取决于问题的类型,如果问题在于 initramfs 映像本身,那么您需要实际重新生成它(运行 update-initramfs)来修复问题。请记住,initramfs 文件系统是 RAM 文件系统,因此要修复任何问题,您需要修复压缩的 initramfs 映像和/或修复根文件系统。
我在 LUKS 加密的 Ubuntu 系统上使用了以下过程,以便恢复因错误 crypttab 损坏而损坏的启动。
首先,我解密了分区
cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt
请注意,这device_crypt
不是随机的。它需要与系统安装时通常使用的名称匹配(分区 + _crypt 似乎是标准的)。
接下来,您需要激活该现已解密的分区上的卷组。
vgchange -ay
现在,您可以尝试挂载文件系统、/、/boot、proc、swap 等,并以这种方式运行。
尽管就我而言,我所要做的就是输入 exit,initramfs 会看到逻辑卷放在那里并愉快地恢复启动。那时很容易修复损坏并运行update-initramfs -u
答案3
只需运行fsck
不带选项的命令,initramfs
然后重新启动
例如:根分区是sda3
fsck /dev/sda3
答案4
正常程序是
- 挂载 /dev/sdX /mnt
- 修复 /mnt 上的问题
- 重启
你可能想要
- 挂载 /dev/sdX /mnt
- 修复/mnt
- 卸载/mnt
- 挂载/dev/sdX/
- 手动完成启动
不建议这样做,您必须在每次启动时执行此操作。在生产环境中,您无法确保手动启动遵循与自动启动相同的步骤。
然而,在涉及关键数据的紧急情况下,第 5 步通常可归结为:
- 5.1 设置网络
- 5.2 将重要文件复制到安全的地方