Не удается найти корень LVM, возвращенный в initramfs

Когда я загружаюсь, я получаю сообщение:

Gave up waiting for root device

Затем перечисляются общие проблемы:

ALERT! /dev/mapper/ubuntu--vg-root does npt exist. Dropping to a shell!

Затем я получаю приглашение initramfs.

Это исправимо без бэкапа?

Я не помню точно, что я сделал, чтобы это перестало работать...

(Мой жесткий диск НЕ зашифрован.)

4 ответа

Автоопределение LVM в Ubuntu у меня тоже не сработало. Чтобы исправить это, я сделал скрипт в

/etc/initramfs-tools/scripts/local-top/forcelvm

со следующим содержанием:

#!/bin/sh
PREREQ=""
prereqs()
{
   echo "$PREREQ"
}
case $1 in
prereqs)
   prereqs
   exit 0
   ;;
esac
. /scripts/functions
# Begin real processing below this line

# This was necessary because ubuntu's LVM autodetect is completely broken. This
# is the only line they needed in their script. It makes no sense.
# How was this so hard for you to do, Ubuntu?!?!?
lvm vgchange -ay

Потом сделал

# chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`

для хорошей меры и

# update-initramfs -u -k all

Это все исправило, сохраняя после обновления системы.

Попробуйте временное решение

В командной строке initramfs введите:

vgchange -ay

Образец вывода:

логические тома в группе томов "vg1000" теперь активны

С последующим:

exit

Если у вас есть снимок LVM корневого раздела, это ошибка # 360237. Я решаю эту проблему, удаляя / удаляя этот снимок.

Если не ваш случай, попробуйте исправить это.

Другие связанные ошибки: # 1396213, # 29858, # 1163406

1

В initramfs введите:

     #/sbin/lvm vgchange -a y
     #vgchange -a y
     #exit

Если вы не можете решить проблему, введите следующее:

ls / dev / mapper Теперь вы должны найти root (например, /dev/vgname/lvname).

перезагрузка. Затем выберите ядро ​​на экране и выберите e, чтобы отредактировать и вставить корневое значение (например, / dev / vgname / lvname) в:

/ boot / vmlinuxxxxx корень = uuid / dev / xxx. Затем, наконец, нажмите Ctrl+X для загрузки.

Если проблема повторяется при перезагрузке сервера

идти к

#/boot/grub/grub.cfg at /vm/vmlinuz root= напишите свой полный путь к lv

если проблема не устранена, попробуйте исправить initramfs, как показано ниже

1.Перейдите к серверному терминалу

  # sudo rmmod floppy

   #echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklis-floppy.conf

#dpkg-reconfigure initramfs-tools #update-initramfs -u #update-grub #reboot Выполните это

#/etc/initramfs-tools/scripts/local-top/forcelvm со следующим содержимым:

#! / bin / sh PREREQ="" prereqs() {echo "$PREREQ"}case $1 в prereqs) prereqs exit 0;; esac . /scripts/functions lvm vgchange -ay Затем выполните

   # chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`
   # update-initramfs -u -k all

сделать резервную копию lvm2

    #apt-get install lvm2
    #cp /usr/share/initramfs-tools/scripts/local-top/lvm2  /tmp

Изменить lvm2

      #vi /usr/share/initramfs-tools/scripts/local-top/lvm2

напишите Между modprobe -q dm-mod и activate_vg "$ROOT" добавьте эту строку для инициализации вашего lvm:

lvm vgchange -ayactivate_vg "$ROOT", если вы не найдете эту строку

напишите ниже двух строк в конце файла выше выхода 0

       #lvm vgchange -ayactivate_vg "$ROOT"
       #activate_vg="$ROOT"

затем сохраните файл

        #update-initramfs -u
        #update-grub
        #reboot

Для некоторых из вас это может быть проблемой в вашем grub.cfg:

Споткнулся о той же проблеме (root не найден, так как группы томов lvm не были активированы initrd) сегодня 18.04. Я понял, что группы томов автоматически активируются, если вы указываете свое корневое устройство в "grub.cfg" через имя устройства

linux   /vmlinuz root=/dev/mapper/vg-root

где, поскольку они не активируются автоматически, если вы укажете это для UUID

linux   /vmlinuz root=UUID=abcd-[...]

Таким образом, в initrd должен быть какой-то скрипт, содержащий эту логику.

  1. Резервное копирование

    /usr/share/initramfs-tools/scripts/local-top/lvm2
    
  2. редактировать

    /usr/share/initramfs-tools/scripts/local-top/lvm2
    
  3. Между modprobe -q dm-mod а также activate_vg "$ROOT" добавьте эту строку для инициализации вашего lvm:

    lvm vgchange -ayactivate_vg "$ROOT"
    
  4. Восстановите ваши initramfs:

    sudo update-initramfs -u
    
  5. Восстановите ваш grub cfg:

     sudo update-grub
    

Наслаждайтесь!:-)

Другие вопросы по тегам