我想我正在安装一堆更新,大约一个小时后,我终于在终端窗口中收到此消息:
cryptsetup: WARNING: failed to detect canonical device of overlayfs
cryptsetup: WARNING: could not determine root device from /etc/fstab
这是什么意思?我该如何解决?
答案1
如果您没有使用加密卷或交换,那么您不需要 cryptsetup,只需卸载它并使用以下命令重新启动:
sudo apt-get remove cryptsetup
# it's better to update and reinstall GRUB before rebooting
sudo update-grub
sudo grub-install /dev/<your_device_id>
sudo reboot
要查找您的设备 ID,请运行:
lsblk
并找到disk
包含part
挂载在 的分区的/boot/*
。请注意,您应该使用设备 ID(例如/dev/sda
),而不是分区 ID(例如)/dev/sda1
为了确保您没有使用加密文件系统,请检查/etc/fstab
,如果您看到该选项‘地穴’任何地方,那么您都需要 cryptsetup,并且您需要正确地配置它。
答案2
在我将两个之前不活动的磁盘安装为 RAID 1、为其分配 UUID 并且随后进行内核更新后,此警告莫名其妙地出现。
要修复警告,首先要做的是
$ lsblk -f
从“/”行获取 UUID 值。
然后将此 UUID 输入到两个文件中。在文件中等/fstab在包含根“/”的行中,例如:“/dev/sda3 / ext4 defaults 0 0”。其中“dev/sda3”部分被替换为“UUID=value”:
UUID=cb2f354f-9e7a-44f8-8a01-2ef1e0b66c31 / ext4 默认值 0 0
在文件中/etc/initramfs-tools/conf.d/resumeUUID 按以下格式输入:
简历=UUID=cb2f354f-9e7a-44f8-8a01-2ef1e0b66c31
然后执行以下命令:
$ update-initramfs -u -k all
警告应该已经消失并且应该进行重新启动。
答案3
预先信息:我在 LUKS 中使用带有未加密启动分区的 btrfs。对于 LVM 或其他设置,解决方案可能有所不同!
如果您确实正在使用 cryptsetup 并遇到此错误,那么我的修复方法是:
- 确保
/etc/crypttab
文件设置正确。至少应有一个名为“root”的条目,这是根条目/
。这对我来说至关重要 - 但到目前为止没有人提到它! /etc/fstab
应在中引用此条目/dev/mapper/root
。检查 UUID 是否正确设置- 现在运行
update-initramfs -u
只更新您最新的内核。如果弹出 cryptsetup 警告,则表示您之前的步骤失败了。检查所有文件并尝试找出问题所在 - 运行
update-grub
以修复任何剩余的 grub 问题 - 现在检查
/boot/grub/grub.cfg
。搜索第一个menuentry
将要启动的。该search
部分应包含启动分区的 UUID(未加密!)。该linux
部分应该有一些内容说明root=/dev/mapper/root
或指向未加密卷的 UUID(在我的设置中为 btrfs 卷)
祝你好运!