启动时进入 Busybox initramfs shell --- 未找到卷组

启动时进入 Busybox initramfs shell --- 未找到卷组

由于我已经努力了三天来解决这个阻碍我们正常工作的问题,所以我放弃了并尝试在这里寻求帮助。

我已经安装 Ubuntu Studio 几个月了,它设置了全盘加密。

几周前,我刚想用 apt-get upgrade 安装更新,结果它打印了一个错误,我认为它与一些 initramfs 包有关,我不记得具体是怎么回事了。我只是想,好吧,我要删除这个包,然后重新安装它。

我照做了,但并没有打印出错误。所以我认为它正常工作了。

但是在下次重新启动时,它不再启动,而是将我发送到 busybox shell。

我现在也遇到了同样的错误,即:

Volume group "vgubuntu-studio" not found
 Cannot process volume group vgubuntu-studio 
Gave up waiting for root file system device. Common problems:
-Boot args (cat /proc/cmdline)
  -Check rootdelay= (did the system wait long enough?)
-Missing modules (cat /proc/modules; ls /dev) 
ALERT! /dev/mapper/vgubuntu--studio-root does not exist. Dropping to a shell! 

Busybox v1.30.1 (ubuntu 1:1.30.1-4ubuntu6.3 built in shell (ash)


(initramfs)

然后我发现当我选择另一个内核进行引导时,它可以工作,所以我搜索了一种方法,可以自动选择这个内核进行引导,我这样做了,它在最近一段时间内起作用了(老实说,我不知道计算机重启的频率是多少,但肯定有几次)。这是 grub.cfg 的问题,我真的应该开始做笔记了……

主要是我女朋友的电脑出了问题,我发现它在播放视频时有问题,想安装更新并重新启动它。但我这样做时,它又卡在了 busybox 中。

但是现在无论我选择什么内核,它总是返回到 Busybox,我从未设法启动它。

我已经尝试了三天,用一些工具修复它,例如 Linux Mint Live USB 中的启动修复工具。我猜是重新安装了 grub,但错误仍然完全相同。还尝试了其他几种方法,但都不起作用。

搜索时大多数答案的描述都略有不同,大多与 fsck 有关。

我将非常感激任何有关在哪里搜索的帮助或正确的指导。

谢谢阅读

答案1

我遇到了和你一样的情况。可能有更简单的方法,但这就是我解决问题的方法。你需要一个 Ubuntu USB,这样你就可以 chroot 到加密分区。

您需要通过执行以下操作进行安装cryptsetup-initramfs,然后运行。update-initramfs

Chroot 进入加密分区

从 USB 启动 Ubuntu 并单击“尝试 Ubuntu”按钮。打开终端。

找到您的加密分区。

sudo fdisk -l

解密分区。假设我的加密分区是 /dev/sda3

sudo cryptsetup luksOpen /dev/sda3 sda3_crypt

它应该会提示您输入加密分区的密码。现在我们需要挂载并 chroot 到分区中。您需要知道 root 的位置,以及 /boot 和 EFI 分区。您可以使用它sudo blkid来查找它们。它看起来像这样,其中sda2是启动分区,sda1是 EFI 分区。

sudo mount /dev/mapper/vgubuntu--studio-root /mnt
sudo mount /dev/sda2 /mnt/boot
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
sudo grub-install
update-grub 

现在您处于 chroot 终端中,这有点像处于加密分区内的终端中。您应该可以访问文件,因此,在执行任何其他操作之前,您可以尝试将它们复制到安全位置,以防后续步骤不起作用。

安装 cryptsetup-initramfs

sudo apt-get install cryptsetup-initramfs

检查 crypttab 文件并更新 initramfs

使用编辑器检查/etc/crypttab文件以确保其设置正确。我的文件没有变化,但你可能想看一下。

使用此命令更新 initramfs。

update-initramfs -k all -u

-k all选项指定更新所有内核版本。如果您不想更新所有内核版本,可以指定您想要的版本。该-u选项用于更新现有的 initramfs,而不是创建新的或删除旧的。

退出 chroot、卸载并重新启动

退出 chroot 环境并卸载分区。

exit
cd
for i in /mnt/dev/pts /mnt/dev  /mnt/proc /mnt/sys /mnt/run /mnt/boot/efi /mnt/boot /mnt; do sudo umount $i;  done

重新启动系统并移除 USB。希望这能为您解决问题,就像我一样。最大的问题是cryptsetup-initramfs缺少它。它可能在您卸载软件包时被删除了initramfs

答案2

我以前也遇到过类似的问题。我当时正在向设置中添加另一个 LVM 卷,却不小心将我的 ubuntu-vg 重命名为新卷(执行命令时出错)。

解决方案是通过 USB 可启动磁盘启动并重新命名有故障的 vg。我遵循的步骤如下:

  1. 使用 Live Linux USB 启动
  2. 打开终端并输入以下内容:

2.1 sudo vgdisplay --> 显示设置中的所有 vg 列表

2.2 识别受到干扰或包含主 FS 的 vg

2.3 sudo vgrename <错误名称> ubuntu-vg

完成上述操作后,正常关机然后重启。grub 将看到该卷,并正常加载。

相关内容