序言:几年前,我摔坏了笔记本电脑,随后无法安装 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 的回答。
希望这对某人有帮助!