mrs*_*elp 2 boot grub2 kernel initramfs busybox
由于我已经为解决这个使我们无法正常工作的问题而奋斗了三天,所以我投降并尝试在这里寻求帮助。
我已经安装了 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)
Run Code Online (Sandbox Code Playgroud)
然后我发现,当我选择另一个内核进行引导时,它可以工作,所以我寻找一种自动选择这个内核进行引导的方法,我这样做了,并且它在最近的时间里工作了(老实说,我不知道计算机重新启动的频率,但是有时是肯定的)。这是 grub.cfg 的问题,我真的应该开始记笔记......
这主要是我女朋友的电脑,我意识到它在播放视频时遇到问题,想要安装更新并重新启动它。当我这样做时,它再次卡在 busybox 中。
但现在无论我选择什么内核,它总是返回到 Busybox,我从未设法启动它。
我现在尝试了三天,用几个工具来修复它,例如 linux mint live usb 的启动修复工具。我猜它重新安装了 grub,但仍然是完全相同的错误。还有其他几种方法,但都没有效果。
搜索时大多数答案的描述略有不同,主要与 fsck 有关。
我真的很感激任何帮助或推动在哪里搜索的正确方向。
谢谢阅读
小智 7
我遇到了和你一样的情况。可能有更简单的方法,但这就是我修复它的方法。您需要一个 Ubuntu USB,以便可以 chroot 进入加密分区。
您需要通过执行以下操作来安装cryptsetup-initramfs并运行。update-initramfs
从 USB 启动至 Ubuntu 并单击“尝试 Ubuntu”按钮。打开一个终端。
找到您的加密分区。
sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)
解密分区。假设我的加密分区是 /dev/sda3
sudo cryptsetup luksOpen /dev/sda3 sda3_crypt
Run Code Online (Sandbox Code Playgroud)
它应该提示您输入加密分区的密码。现在我们需要挂载并 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
Run Code Online (Sandbox Code Playgroud)
现在您位于 chroot 终端中,这有点像位于加密分区内的终端中。您应该有权访问您的文件,因此在执行其他操作之前,您可以尝试将它们复制到安全位置,以防后续步骤不起作用。
sudo apt-get install cryptsetup-initramfs
Run Code Online (Sandbox Code Playgroud)
使用编辑器检查/etc/crypttab文件以确保其设置正确。我的没有改变,但你可能想看一下。
使用此命令更新 initramfs。
update-initramfs -k all -u
Run Code Online (Sandbox Code Playgroud)
该-k all选项指定为所有内核版本更新它。如果您不想全部更新,则可以指定所需的内容。该-u选项是更新现有的 initramfs,而不是创建新的或删除旧的。
退出 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
Run Code Online (Sandbox Code Playgroud)
重新启动系统并移除 USB。希望这能像为我一样解决你的问题。最大的问题是cryptsetup-initramfs缺失了。当您卸载软件包时,它可能已被删除initramfs。
| 归档时间: |
|
| 查看次数: |
9038 次 |
| 最近记录: |