放弃等待根设备,ubuntu-vg-root 不存在

放弃等待根设备,ubuntu-vg-root 不存在

今天我在上网本上安装了 Ubuntu 64 位。上网本启动时出现错误报告。我认为分区有问题。

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell! 

BusyBox v.1.21.1 (Ubuntu 1:1.21.1-1ubuntu1) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)

根据要求输出 lsblk 的内容:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232.9G  0 disk 
├─sda1   8:1    0   231G  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0     2G  0 part [SWAP]
sr0     11:0    1   1.2G  0 rom  /cdrom
loop0    7:0    0   1.1G  1 loop /rofs

答案1

在某些 Ubuntu 版本(例如 Xubuntu 18.10)中,此问题可能是由 引起的apt autoremove。由于这个错误apt 会建议删除

cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run dmeventd libdevmapper-event1.02.1 liblvm2app2.2 liblvm2cmd2.02 libreadline5 lvm2

这使得系统无法启动(因为无法使用 LVM 挂载和解密根分区)。

如果您不使用 LVM 和磁盘加密,这个答案可能不适合您。

我可以通过在 chroot 环境中重新安装 cryptsetup 和 lvm2 来修复它:从实时 USB 驱动器启动,在终端中运行以下命令,然后重新启动。

# find root partition
sudo fdisk -l

# unencrypt partition
#   Note: replace /dev/nvme0n1p3 with your disk
#         replace "nvme0n1p3_crypt" with the correct name 
#         check by running this in chroot:
#         $ cat /etc/crypttab | cut -f1 -d " "
#         nvme0n1p3_crypt
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

# mount root partition
sudo vgscan 
sudo vgchange -ay
sudo mount /dev/mapper/xubuntu--vg-root /mnt

# prepare chroot environment
sudo mount /dev/nvme0n1p2 /mnt/boot/   # replace nvme0n1p2 with your boot partition!
sudo mount -o rbind /dev/ /mnt/dev/
sudo mount -t proc proc /mnt/proc/
sudo mount -t sysfs sys /mnt/sys/

# make dns available in chroot
sudo cp /etc/resolv.conf  /mnt/etc/resolv.conf 

# enter chroot
sudo chroot /mnt /bin/bash

# re-install missing packages
apt install cryptsetup lvm2

# re-generate  (this might be done also by apt in the step before, I'm not sure)
update-initramfs -u -k all

# Leave chroot environment - not sure if the following is really necessary...
exit
# Write buffers to disk
sudo sync
# Unmount file systems
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot

问答帮助我收集命令。

问答有点相关,但如果您已经遇到这个问题,可能不再与您相关。

答案2

请将 lsblk -fs、带有 p 标志的 fdisk /dev/sda 的输出以及 grub 修复报告作为 pastebin 链接添加到问题中。

根据搜索,Ask Ubuntu 上似乎有类似的问题,但目前还没有答案这里这里给出了一个关于raid和ubuntu的解释。

似乎有几种建议,其中一些似乎对某些人有用。

  1. 从 initframs 提示符尝试输入ls /dev/mapper并查看是否列出了您的根卷。如果没有列出,请尝试等待 10 秒钟,然后再次运行 ls。

    如果现在列出,请输入exit,它现在应该找到根设备并启动(取自这里

  2. 编辑启动配置,按egrub alert 选择 OS,然后替换root=UUID-6500...root=/dev/sdxsdx 是启动分区。这里的问题似乎是 UUID 错误,或者/dev/disk/by-UUID...不存在(1)

  3. 对于某些人来说,将参数添加all_generic_ide到引导行末尾似乎kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=43206294-74ef-434d-aca2-db74b4257590 ro quiet splash all_generic_ide有效(2)
  4. 超级用户问题这里,似乎表明错误是由于 LVM 造成的。解决方案也在同一篇文章中给出,即安装 lvm2。
  5. 同一超级用户网站还建议使用较旧的内核(如果可用)进行引导。这似乎对某些人有用。尝试使用该Recovery选项进行引导可能对某些人有用
  6. nux_man777 发布这里似乎表明错误可能出现在安装介质中。
  7. 该错误/dev/mapper/ubuntu-vg-root似乎与描述的 raid 有关这里

    “在复制过程开始前的安装程序摘要屏幕中,单击“高级”按钮。将启动分区(这是 MSDOS 样式的“父”分区,而不是 Linux 分区)更改为 /dev/mapper/pdc_feddabdf(或 dmraid 列出的 fakeraid 分区)确保选中复选框以从此磁盘启动。请注意,安装程序将修改 grub2 以指向正确的逻辑分区 /dev/mapper/pdc_feddabdf1 或 / 所在的任何分区。”

    有关安装的详细说明已在所引用的站点中提供。请查看那里以获取有关 grub 安装的更多信息。

  8. 对于某些人来说,启动到实时安装介质并通过更改 root 权限来更新 ubuntuchroot似乎可行(cpttripzz 建议这里)。关于 chroot 的说明是这里。您还可以参考这个问题在 Unix 和 Linux 上。更多详细信息请访问建筑维基Gentoo 维基
  9. 将 SATA 控制器从 RAID 更改为 Native IDE 并进行全新安装似乎对某些人来说有效这里这里
  10. IDE 电缆或硬盘可能有问题(与上面的 ubuntu 论坛第 40 页相同)

答案3

我遇到了这个问题,这里或其他地方的任何帖子都无法提供帮助。具体到我的情况,我可以看到没有/dev/mapper包含ubuntu--vg-root或任何其他内容。这意味着当 LVM 尝试安装/映射卷时出现了问题,或者在启动过程的早期出现了问题,而这个错误只是任何早期问题的综合症状。

第二种情况是我遇到的,只是因为我读过initramfs我能够理解并诊断问题。如果您怀疑在 LVM 执行操作之前出现了问题,这应该是您要做的第一件事。

就我的情况而言(可能与您不同,但值得记录),我启用了全盘加密(LUKS),但不知何故工具cryptsetup已从中删除initramfs,因此没有提示我输入解锁密码,并且驱动器无法访问,这意味着/dev/sdaX无法安装,因此ubuntu--vg-root无法安装/映射到/dev/mapper。如果您尝试cryptsetup从 BusyBox 提示符运行,则ll know you have the same issue if the无法找到 cryptsetup`。

解决方案是从 LiveCD 启动,使用 手动解锁驱动器cryptsetupchroot进入根文件系统,重新安装cryptsetup并调用update-initramfs

答案4

在 Dell XPS13 (2020) 上更新 Ubuntu 20.04 后遇到了非常类似的问题。搜索了几个小时,解决方案实际上非常简单。

重新启动并使用“fn 和 F2”进入 BIOS BIOS > 系统配置 > Sata 操作 > 从“RAID On”切换到“AHCI”

由于某种原因,此 BIOS 设置被切换了。

相关内容