Я думаю, что устанавливал кучу обновлений, и спустя примерно час я наконец-то получил сообщение в окне терминала:
cryptsetup: WARNING: failed to detect canonical device of overlayfs
cryptsetup: WARNING: could not determine root device from /etc/fstab
Что это значит и как Я это исправлю?
Если вы не используете зашифрованные тома или подкачку, то вам не нужно 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
Чтобы убедиться, что вы не используете зашифрованные файловые системы, пожалуйста, проверьте /etc/fstab
, если вы видите опцию 'crypt' i> в любом месте, то вам требуется cryptsetup, и вам нужно правильно его настроить.
Предварительная информация: я использую btrfs в LUKS с незашифрованным загрузочным разделом. Для LVM или других установок решение может отличаться!
Если вы на самом деле используете cryptsetup и столкнулись с этой ошибкой, исправление для меня было:
/etc/crypttab
настроен правильно. Должна быть хотя бы одна запись с именем «root», это запись 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) Удачи!
Это предупреждение появилось необъяснимым образом после того, как я смонтировал два ранее неактивных диска как RAID 1, присвоил им UUID, а позже произошло обновление ядра.
Чтобы исправить предупреждение, первое, что нужно сделать, это
$ lsblk -f
чтобы получить значение UUID из строки "/".
Затем этот UUID вводится в два файла. В файле etc/fstab в строке, содержащей корень "/", например: "/dev/sda3/ext4 по умолчанию 0 0". Часть "dev/sda3" заменена на "UUID=value":
UUID=cb2f354f-9e7a-44f8-8a01-2ef1e0b66c31 / ext4 по умолчанию 0 0
В файле /etc/initramfs-tools /conf.d/resume UUID вводится в таком виде:
RESUME=UUID=cb2f354f-9e7a-44f8-8a01-2ef1e0b66c31
Затем следующая команда:
$ update-initramfs -u -k all
Предупреждение должно исчезнуть и должна начаться перезагрузка.