Я недавно обновил Ubuntu от более старого выпуска (12.04) LTS до 14.04 LTS и на перезагрузку, человечности не удается загрузиться и ошибка в /sbin/lvm
показан:
There appears to be one or more degraded LVM volumes, and your root device may
depend on the LVM volumes being online.
One or more of the following LVM volumes are degraded:
/sbin/lvm: symbol lookup error: /usr/local/lib/libreadline.so.5: undefined symbol: PC
Gave up waiting for root device...
ALERT! /dev/mapper/my-server-root does not exist. Dropping to a shell!
Это походит на/sbin/lvm: ошибка поиска символа:/usr/local/lib/libreadline.so.5: неопределенный символ: ПК является преступником, и я предполагаю это /sbin/lvm
не был правильно связан с соответствующими библиотеками, заставив загрузочный образ не мочь выполнить LVM вообще, таким образом, объемы LVM не загружаются.
Что я попробовал
Выполнение lvm
в initramfs оболочка возвращает ту же ошибку о поиске символа.
Удаление /usr/local/lib/libreadline.so.5
и выполнение lvm
заставит его разбросать ошибку libreadline.so.5
не быть доступным вместо этого.
vgchange
не допустимая команда (я предполагаю, что она требует lvm
и это должно быть, выполнил использование lvm vgchange -ay
вместо этого?)
Я предполагаю, что должен попытаться восстановить загрузочный образ для включения корректной копии lvm
. Однако я не уверен, как сделать это (должен я загружать 14,04 живых дисков и установку lvm2
, или я должен сделать еще некоторые шаги? Как я могу изменить initramfs и зафиксировать его?) и я боюсь, что порчу существующую конфигурацию LVM. Как я должен сделать это?Спасибо!
После некоторого лужения в liveCD я разрешил проблему следующим образом:
Начальная загрузка с живого CD и с живого CD sudo apt-get install lvm2
.
Проверьте LVs от lvdisplay
, и выясните раздел начальной загрузки от lsblk
Смонтируйте использование LV lvchange -a y
Смонтируйте корневой LV и раздел начальной загрузки, например.
sudo mkdir / новый
sudo монтируются/dev/mapper/my-root / новый
sudo монтируют/dev/sda1/new/boot
chroot
кому: /new
и переустановите lvm2
оттуда.
Перейдите в /usr/local/lib/
и удалите (или перемещение) libreadline.so.5
.
ldconfig
Попытайтесь работать lvm
от chroot Вы будете видеть ошибку о /var
не будучи доступным, вместо обычного libreadline.so.5
ошибка.
update-initramfs -u -v
. Вы будете видеть libreadline.so.5
не будет скопирован с /usr/local/lib
больше, но вместо этого от x86_64
! Это - корректная общая библиотека.
Перезагрузка. lvm
должен теперь загрузиться правильно в initramfs, таким образом, он монтирует корневой раздел успешно, и можно теперь загрузиться.