Ubuntu не загружается из-за lvmetad

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.

Эти сообщения продолжают появляться на черном экране каждую секунду. Через некоторое время я получаю доступ к initramfsконсоли пепла.

Что я делаю не так?

Mac Dre
источник
пепельная консоль или консоль bash? опечатка?
Thufir

Ответы:

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.

Обратите внимание на bind mounts в руководстве и убедитесь, что вы смонтировали / dev / sdX1, чтобы вы могли получить к нему доступ из каталога / boot системного раздела (это очень важно, так как мы должны его выполнить update-initramfs).

Далее мы предполагаем, что вы успешно выполнили chroot /tmp/data/@ubuntu1510(или как называется ваш смонтированный системный раздел)

Шаг 2: избавиться от сообщения об ошибке выше

Я использую btrfs (как вы, наверное, догадались из упомянутого имени подобъема), поэтому lvmetad можно легко отключить следующим образом без потери функциональности:

  • отредактируйте /etc/lvm/lvm.conf и измените use_lvmetad=1наuse_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], так как он устраняет ошибку, о которой я упоминал ранее. Вероятная причина появления раздела с типом «swap» в списке sfdisk заключается в том, что вы / я по ошибке использовали mkswap /dev/sdX2при настройке раздела в начале.)
  • следуйте инструкциям, чтобы зашифровать раздел и установить пароль; после этого откройте его с помощью cryptsetup и правильно переформатируйте теперь расшифрованный раздел (используя что-то вроде mkswap /dev/mapper/swap)
  • убедитесь, что sfdisk --list /dev/sdXне будет идентифицировать раздел подкачки как таковой (в этом случае повторите последние шаги)

Теперь еще раз проверьте, что UUID, перечисленные в / etc / crypttab, совпадают с тем, что вы видите ниже / 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 db list».

Я установил без шифрования диска.

Сообщение UEFI было тревожным, потому что это была моя первая установка на компьютер UEFI, поэтому у меня не было опыта, и, честно говоря, я до сих пор не осведомлен о его полезности. Моя проблема была усугублена тем фактом, что я использовал lvm для того, что должно было стать моим / /, корневым томом. (Фактически, я уже забыл, как я достиг ЭТОГО во-первых! Эй. Я стар.)

Однако, когда машина не перезагружалась, я искал решение и не нашел ничего определенного, но заметил, что а) мой раздел EFI был меньше, чем рекомендуемые 500 МБ на одном сайте, и б) отдельный раздел / boot /, который я организовал ибо, вероятно, не имеет значения и не используется. Я думал, что возможно, что автоматическое обновление, возможно, вызвало что-то, возможно, чтобы заполнить его выделенное пространство.

Я решил переустановить - это сработало, и моя структура каталогов / home / осталась без изменений. Я не проверял / etc /, но сделал копии их обоих заранее [1], так что я могу проверить позже. / etc / действительно маленький.

Я также удалил удаленные и объединил разделы для EFI и / boot / в один больший раздел EFI (> 750 МБ).

Теперь он перезагружается, но одно сообщение об ошибке мигает слишком быстро для чтения, и мне не предлагается загрузочное «меню» образов Linux для загрузки, вместо этого оно загружается непосредственно в Ubuntu. Еще предстоит проделать еще много работы, я полагаю, что grub решит эту проблему. Но по крайней мере мои файлы вернулись.

[1] Я загрузил установку Ubuntu с USB-накопителя и решил «попробовать» Ubuntu, что позволило мне делать копии файлов etc и home, прежде чем выбрать «Install» с рабочего стола.

трясина
источник
с mount /dev/mapper/data /tmp/dataя получаю unknown filesystem type LVM2_member.
Франческо Бой
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
bitinerant
источник
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
Екатерина Борикова
источник