Я следовал этому руководству по установке Ubuntu 15.10:
После перезагрузки компьютера я попал в меню 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
консоли ash.
Что я делаю не так?
решение1
Сегодня я увидел ту же ошибку на ноутбуке под управлением 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
.
Обратите внимание на привязки монтирования в руководстве и обязательно смонтируйте /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
) мне было представлено «Чтение всех физических томов. Это может занять некоторое время..." (повторяется несколько раз), за которым следует "ВНИМАНИЕ! /dev/disk/by-uuid/... не существует.". (Следует отметить, что update-initramfs
также жаловались на отсутствие раздела.)
[2] поскольку их тип выводится из анализа их содержимого и в конечном итоге не указывается флагом/байтом (именно поэтому нет простого способа, например, изменить тип файловой системы GPT с помощью [g]parted
.)
решение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
решение3
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, прежде чем выбрать «Установить» на рабочем столе.
решение4
Не обязательно загружать систему с USB или чего-то еще. У меня была та же проблема и причина - диск был заполнен на 100%. Мне помогло следующее решение.
Перезагрузите систему. В BIOS быстро нажмите и удерживайте клавишу Shift, что вызовет меню GNU GRUB.
После этого нажмите «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для загрузки.
Корневой раздел смонтирован только для чтения. Чтобы смонтировать его для чтения/записи, введите команду
mount -o remount,rw /
Узнайте, что пошло не так:
df -hT