由于lvmetad,Ubuntu无法启动


27

我已按照本教程安装Ubuntu 15.10:

https://thesimplecomputer.info/full-disk-encryption-with-ubuntu

重新启动计算机后,我进入grub菜单并选择Ubuntu。之后不久,我得到了这个错误:

/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

这些消息每秒钟都会在黑屏上累积起来。一段时间后,我可以访问initramfsash控制台。

我究竟做错了什么?


灰控制台或bash控制台?错字?
Thufir

Answers:


12

今天,我在运行Ubuntu 15.10的笔记本电脑上看到了相同的错误,该笔记本电脑始终保持最新状态,但是直到我想测试当前内核之前(一个新的更改),都没有重启一个月。

无论如何,我发现在我的情况下,根本原因实际上是遵循上述教程时由于安装故障而导致的“缺少”交换分区。如果是这种情况,和/或您实际上正在使用lvm,则可以跳过下面的步骤2。当然,如果您的系统(或辅助数据)分区已损坏或找不到,也可能会看到上述错误消息(请参阅步骤3)。

步骤1:按照上述教程安装系统,引导分区

假设您的(ext2)引导分区是/ dev / sdX1,您的(加密的)交换分区是/ dev / sdX2,您的(加密的)数据分区是/ dev / sdX3,并且您已经使用成功地解密了后者cryptsetup luksOpen /dev/sdX3 data,然后进行了挂载它:mkdir /tmp/data; mount /dev/mapper/data /tmp/data

请注意本教程中的绑定挂载,并确保挂载/ dev / sdX1,以便您可以从系统分区的/ boot目录访问它(这对于我们必须执行至关重要update-initramfs)。

在下文中,我们假设您已成功执行chroot /tmp/data/@ubuntu1510(或执行任何已挂载的系统分区)

步骤2:摆脱上面的错误信息

我正在使用btrfs(如您可能从提到的子卷名称中猜到的那样),因此可以轻松按以下方式禁用lvmetad,而不会失去功能:

  • 编辑/etc/lvm/lvm.conf并更改use_lvmetad=1use_lvmetad=0
  • 执行 update-initramfs -k $(uname -r) -u ; sync

现在,您可以重新启动,错误消息应该消失了。但是,以我为例,下一条错误消息[1]使我指出了上面提到的潜在问题,因此,当我们处理此问题时,...

步骤3:确保/ etc / crypttab指向正确的,未损坏的分区

首先,运行sfdisk --list /dev/sdX并检查加密的交换分区(在我的情况下为/ dev / sdX2)实际上没有显示为(正常)交换分区。如果确实如此(例如,在我的案例中),则意味着启动(例如,使用应急磁盘)可能会利用该可用的交换分区,从而覆盖与cryptsetup相关的元数据(关键字和UUID)。

接下来,查看/ dev / disk / by-uuid并将加密分区的相应UUID与/ etc / crypttab中包含的分区进行比较。在这一点上,我的猜测是:您的情况不匹配。

如果在/ dev / disk / by-uuid下找不到专用的加密交换分区,那是因为您的救援系统当前正在使用它。在这种情况下,请执行以下操作:

  • 确保停止使用该分区: swapoff -a
  • 重新格式化:(mkfs.ext2 /dev/sdX2这很关键,特别是在使用GPT分区[2]时,因为它消除了我前面提到的故障。分区可能在sfdisk列表中显示为“ swap”类型的原因是您/我误用了mkswap /dev/sdX2一开始设置分区时。)
  • 按照教程对分区进行加密并设置密码;然后,使用cryptsetup打开它,并正确格式化现在解密的分区(使用类似的东西mkswap /dev/mapper/swap
  • 确保sfdisk --list /dev/sdX不会这样标识交换分区(在这种情况下,请重复最后的步骤)

现在,重新检查/ etc / crypttab中列出的UUID是否与您在各自的加密分区的/ dev / disk / by-uuid下面看到的一致。

同样,要使更改永久生效,您必须update-initramfs如上所述执行。

如果满意,请确保所有内容均已写入磁盘并重新引导系统(无需手动卸载所有内容)。之后,您的问题应该消失了。

[1]也许我第一次没有注意,或者第一条错误消息“掩盖了”第二条错误消息;即,仅在重新启动后(带有use_lvmetad=0),出现“ 读取所有物理卷。这可能需要一段时间... ”(重复多次),然后出现“ ALERT!/ dev / disk / by-uuid /。”。 。不存在。(应注意,update-initramfs它还抱怨缺少分区。)

[2]因为它们的类型是从分析其内容中扣除的,并且最终没有由标志/字节指定(因此,没有简单的方法,例如,使用来更改GPT文件系统类型[g]parted)。


2

Ubuntu 18.04.1 LTS在这里。它已经无人值守了几个月,但是当我返回时,我发现键盘无法识别。重新启动后,我收到“无法连接到lvmetad”消息,以及有关无法获取“ UEFI数据库列表”的更多信息。

我安装时没有磁盘加密。

UEFI消息令人担忧,因为这是我第一次在UEFI计算机上安装,因此我没有经验,坦率地说,我仍然不知道其有用性。我在将'/',根目录,卷上使用了'lvm'的事实使我的问题更加复杂。(实际上,我已经忘记了我是如何做到这一点的!嘿。我老了。)

但是,当计算机无法重新启动时,我搜索了一个解决方案,没有发现任何确定的结果,但确实注意到a)我的EFI分区小于一个站点上建议的500MB,b)我安排的单独的/ boot /分区因为可能不相关且未使用。我认为可能是无人值守的升级可能导致某些东西充满了它分配的空间。

我决定重新安装-该方法可以正常工作,并且使/ home /目录结构不受干扰。我没有检查过/ etc /,但确实事先制作了两个文件的副本[1],所以以后可以检查。/ etc /真的很小。

我还删除了delete,并将EFI和/ boot /的分区合并为一个更大的EFI分区(> 750MB)。

它现在重新启动,但是一条错误消息闪烁的速度太快而无法读取,并且我没有提供要启动的Linux映像的启动“菜单”,而是直接启动到Ubuntu中。我想使用grub还需要做更多的工作来解决这个问题。但是至少我的文件回来了。

[1]我从USB闪存盘引导Ubuntu安装,然后选择“尝试” Ubuntu,这使我可以制作etc和home的副本,然后再从桌面上选择“安装”。


mount /dev/mapper/data /tmp/data我得到unknown filesystem type LVM2_member
Francesco Boi

2

Failed to connect to lvmetad错误可能发生,因为硬盘是100%满。要解决此问题,请从USB拇指驱动器启动,装入完整磁盘,删除一些不需要的文件,然后重新启动。我还重新安装了引导系统-我不知道这是否必要。

这些命令为我解决了这些问题,这些命令是从USB驱动器启动后从终端运行的。我有完整驱动器加密的Ubuntu 18.04库存。YMMV。

  • 安装驱动器:
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo vgscan --mknodes
sudo vgchange -ay
sudo mount /dev/mapper/ubuntu--vg-root /mnt
  • 删除不需要的文件(cd /mnt/home/your_username... rm ...
  • (可能没有必要)重新安装引导系统:
cd /mnt/
sudo mount /dev/sda1 boot
for d in dev sys proc run; do sudo mount --bind /$d $d; done
sudo vi etc/crypttab # make sure first line uses "sda5_crypt"
sudo chroot .
update-grub
grub-install /dev/sda
update-initramfs -u -k all
exit
sudo umount dev sys proc run boot
  • 卸载:
cd /
sudo umount /mnt
sudo vgchange -an
sudo cryptsetup close sda5_crypt
  • 重启:
sudo reboot

0

不必从USB或其他方式启动系统。我有同样的问题和原因-因为磁盘100%已满。下一个解决方案对我有所帮助。

1)重新启动系统。使用BIOS,快速按住Shift键,将弹出GNU GRUB菜单。

2)按'e'编辑Ubuntu设置。在此问题中,您可以找到屏幕。查找以“ linux *”开头的字符串,如下所示:

linux     /boot/vmlinuz-4-4.0-22-generic root=UUID=43ad24d3-e\
c5b-44ee-a099-a88eb9520989 ro  quiet splash $vt_handoff

删除:

ro  quiet splash $vt_handoff

并添加:

init=/bin/bash

准备就绪后,按CTRL + x或F10进行引导。

3)根分区以只读方式安装。要以读/写方式安装它,请输入命令

mount -o remount,rw /

4)找出出了什么问题:

df -hT
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.