由于我已经努力了三天来解决这个阻碍我们正常工作的问题,所以我放弃了并尝试在这里寻求帮助。
我已经安装 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。我遵循的步骤如下:
- 使用 Live Linux USB 启动
- 打开终端并输入以下内容:
2.1 sudo vgdisplay --> 显示设置中的所有 vg 列表
2.2 识别受到干扰或包含主 FS 的 vg
2.3 sudo vgrename <错误名称> ubuntu-vg
完成上述操作后,正常关机然后重启。grub 将看到该卷,并正常加载。