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


16

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

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
运行lsblk并将输出添加到您的问题。
psusi'1

6
@psusi如果lsblk不可用怎么办?
sitilge

Answers:


10

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

基于搜索,似乎有on向Ubuntu的一个没有答案的最新类似的问题在这里这里一个答案是给予解释有关RAID和Ubuntu。

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

  1. 在initframs提示符下,尝试键入ls /dev/mapper并查看是否列出了根卷。如果未列出,请尝试等待10秒钟,然后再次运行ls。

    如果现在列出了它,请键入exit,它现在应该找到根设备并启动(从此处获取)

  2. 通过e在出现grub警报时按来选择操作系统,然后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似乎与此处所述的突袭有关。

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

    有关安装的详细说明,请参见相关站点。请检查那里有关grub安装的更多信息。

  8. 引导到现场安装介质,并通过改变使用根更新的Ubuntu chroot似乎对某些人(由cpttripzz建议的工作在这里)。有关chroot的说明在这里。您也可以在Unix&Linux上参考此问题。可以在Arch WikiGentoo Wiki上找到更多详细信息
  9. 从RAID更改SATA控制器为Native IDE和做一个全新的安装,似乎工作对某些人在这里这里
  10. IDE电缆或硬盘可能损坏(与上述第40页相同的ubuntu论坛)

先前的操作系统是Win7
乔纳斯·弗朗兹





8

在某些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

这次问答帮助我收集了命令。


1
哦,您刚刚救了我大约三天的时间来设置新设备。工作完美!替换nvme0n1p3sda5nvme0n1p2sda1(分别为LVM内部Linux分区和LVM外的小引导分区,)
奥利弗ü

1
@OliverU很棒,它起作用了!即使您无法使其启动,您仍应该能够将您的主目录以及也许/ etc的一部分复制到全新安装中。这可能比初始设置要少。
lumbric '19

1
在Ubuntu 18.10上完美运行,问题在apt autoremove发布后就发生了。像上面的Oliver一样,我只需要替换说明中的以下内容:nvme0n1p3sda5nvme0n1p3sda5_cryptnvme0n1p2sda1。机智像猜对了,无需输入chroot两次cat /etc/crypttab | cut -f1 -d " "chroot只会确认您做出了正确的猜测。如果您需要输入两次,请在重新启动后进行操作,因为关闭并重新打开crytpsetup + LVM2环境而不重新启动似乎很复杂。
tanius

还需要注意的是,这些说明非常适合将非引导式硬盘驱动器放入驱动器机箱中,并通过USB连接到另一台(正常工作的)Ubuntu计算机上。则无需实时系统。
tanius

谢谢男人,这在尝试修复此问题4个小时后有所帮助。即使在Ubuntu 19.10上也可以使用
WellBloud

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


欢迎来到Ask Ubuntu!:-)您可以将最后一行扩展为实际命令吗?
Fabby

1
我在NVMe驱动器上为此情况编写了脚本(LUKS + LVM),但也可以将其扩展为/dev/sd*样式驱动器。unix.stackexchange.com/a/467113/103652
dragon788

2

对于这里遇到与加密有关的问题的用户,如@Zanna的回答,您需要遵循类似的过程:

  1. 使用实时发行版/ USB启动系统。

  2. 挂载加密分区(在Ubuntu中,您应该在桌面上看到可用的加密卷;双击并输入密码就足够了)。该分区将安装在/media/ubuntu/[mount point]。(用户名将根据发行版而更改;例如,Xubuntu使用xubuntu。)

  3. 打开一个终端窗口和一个波旁威士忌。

  4. 为系统内的安装点设置适当的绑定:

    sudo su -
    mount -t auto /dev/sdX /media/ubuntu/[mount point]/boot
    mount --bind /dev /media/ubuntu/[mount point]/dev
    mount --bind /dev/pts /media/ubuntu/[mount point]/dev/pts
    mount --bind /sys /media/ubuntu/[mount point]/sys
    
  5. chroot 进入加密磁盘的根目录: chroot /media/ubuntu/[mount point]

  6. 确保您的系统已initramfs安装适当的软件包:sudo apt install cryptsetup-initramfs lvm2

  7. 至关重要的是,您还需要确保配置文件强制initramfs包含cryptsetup二进制文件,这些文件似乎在某些时候已被删除nano /etc/cryptsetup-initramfs/conf-hook取消注释该CRYPTSETUP行,并确保其显示为CRYPTSETUP=Y

  8. 最后,运行update-initramfs -u -k all,关闭,拉动实时媒体,然后再开始备份。

您的里程可能会有所不同,具体取决于系统所发生的情况。例如,如果您更改了LVM组名称或UUID,则可能需要对齐/etc/crypttab/etc/fstab使用正确的标识符。如果像我一样,从一个发行版迁移到另一个发行版,您可能会发现有两个具有相同组名的加密卷,这使装入磁盘变得相当困难(您需要显式使用UUID)。

总而言之,由于这个原因,升级到Xubuntu 18.10实在是太糟糕了。(一旦完成对内核的升级,库存系统就不会重新启动!)至少在我当前使用的设置中,系统通过重新启动是稳定的。

Nb,导致我在Internet上寻找解决方案的ACPI错误是一团糟:它们与您是否可以从加密磁盘启动无关。


什么是sdX在这种情况下?从LiveCD引导时,没有/boot分区,因此尚不清楚应该放入什么分区。
ralien

@ralien — sdX是可能sda在大多数系统中保存加密分区的驱动器。就我而言,我sda在全新安装过程中加密了主磁盘()。
伊桑(Ethan)

0

请尝试以下操作:

(initramfs) reboot

然后,在操作系统选择器提示下,尝试使用较旧的内核进行引导。

如果成功,则可能会解决此问题,如@One Face的项目符号4和5以及其引用的链接中所建议:

sudo apt-get install lvm2

如果未安装lvm2,则较旧的内核将无法启动。lvm2包和内核没有链接的东西。它需要启动Rescue System并通过chroot安装软件包。
PRIHLOP
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.