更新期间警告:cryptsetup:警告:无法检测到 /dev/sda1 的规范设备

更新期间警告:cryptsetup:警告:无法检测到 /dev/sda1 的规范设备

序言:几年前,我摔坏了笔记本电脑,随后无法安装 sda1 磁盘。我用一个实时 usb ubuntu 发行版将其恢复。从那以后,我的笔记本电脑再也没有像现在这样顺畅过。

问:我在更新期间收到此警告消息:

cryptsetup: WARNING: failed to detect canonical device of /dev/sda1

/etc/fstab 和 /etc/crypttab 中的视图显示:

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/sda1       /               ext4    errors=remount-ro,user_xattr 0       1
/dev/sda5       none            swap    sw              0       0

$ cat /etc/crypttab
# <target name> <source device>     <key file>  <options>

我在 ubuntu 14.04 LTS 上,uname -a 显示

$ uname -a
Linux alessio-laptop 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:59 UTC 2016 i686 i686 i686 GNU/Linux

我一直在看其他帖子,但我担心错误=重新安装-ro没有任何fstab 文件中的标签。我还非常确定我的磁盘未加密。

这会影响我的系统性能,甚至导致更大的错误吗?我该如何修复它?

答案1

错误-重新安装-ro意味着如果遇到错误,分区将以只读方式挂载,以避免损坏,这样您就有机会修复问题。这通常在硬盘出现问题时发生。不要更改此设置。我曾经这样做过一次,结果发现这是一个非常糟糕的主意。

没有任何在您的情况下意味着“没有挂载点”。因此,/dev/sda5(即“类型”列中所示的交换文件)根本没有挂载,并且系统没有使用它。如果您的系统内存不足,这可能会影响性能,否则您可能不会注意到它。

答案2

最近我的 Ubuntu 启动很慢。为了解决这个问题,我研究并找到了命令update-initramfs -u并尝试运行它,但它显示了以下错误:

cryptsetup: WARNING: failed to detect canonical device of /dev/sda7

感谢 Predato 的回答这里,我已经修复了该问题。

解决方案

笔记:这很明显,但在下面描述的步骤中,您必须执行与您的问题相关的操作,例如考虑您自己的错误消息。我指的是下面的 /dev/sdax 是出现该错误的分区,例如 /dev/sda7。

从他的回答来看:

错误的主要原因是交换分区链接损坏。首先,您需要获取交换分区的 UUID。只需运行blkid命令。

考虑到发生了错误,请运行命令并复制 /dev/sda7 的 UUID。它的格式是:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中 x 是十六进制数字。

首先进行备份:

sudo cp /etc/crypttab /etc/crypttab.back

在这里打开文件进行编辑:

sudo nano /etc/crypttab

然后,删除与 /dev/sda7 相关的行。对我来说,我没有找到任何包含或与 /dev/sda7 相关的行,所以我跳过了。

然后,运行sudo nano /etc/fstab并使用以下语法添加新行:

UUID=your_copied_uuid none swap sw 0 0

注意(重要):如果存在一行完全复制的 UUID,则不要执行任何操作,也不要编辑任何内容。例如,我通过将 ext4 更改为 swap 来编辑与 /dev/sda7 相关的行;然后,在下次重新启动时,启动失败(问题现已解决)。

作为最后一步,我认为也是最重要的一步,运行sudo nano /etc/uswsusp.conf并更改以下行:

resume device = /dev/sda1

到:

resume device = UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

通过执行这些步骤,您的问题可能已得到解决。对我来说,问题已得到解决,运行时没有发生任何错误update-initramfs -u。再次特别感谢 Predato 的回答。

希望这对某人有帮助!

相关内容