Как восстановить удаленные файлы в начальной загрузке/? (vmlinuz пропавшие без вести, система не загружается),

Я по ошибке стер один vmlinuz файлы в моем /boot каталог. Однако я сделал резервное копирование /boot внутри /tmp, только быть уверенным.

Следовательно, я не могу загрузиться, поскольку я получаю пропавших без вести vmlinuz ошибка файла. Таким образом, я загрузил использование живого USB, но когда я вошел /boot dir в моем жестком диске (sda5), это абсолютно пусто. Если я копирую файлы с /tmp/boot к этому /boot каталог, я все еще не могу загрузиться.

Как я могу восстановить те файлы к соответствующему каталогу?

7
задан 17 November 2015 в 08:39

1 ответ

vmlinuz само изображение ядра Linux (z указывает, что сжат).

Переустановка пакета ядра, на который в настоящее время ссылается linux-image-generic (или ядро HWE) и вероятно linux-singed-image-generic в UEFI, безопасные загрузочные среды должны решить проблему.

Переустановка ядра от chroot

Предпочтительно загрузите живые медиа той же версии и смонтируйте раздел своей установки (можно сделать это с Наутилусом, это будет что-то как /media/ubuntu/… затем) или Ваш /boot раздел (это будет немного более сложно). Это будет ${my_installation} в следующих инструкциях.

Изучить /lib/modules/ из Вашей установки (${my_installation}/lib/modules/) для конкретных версий ядра, которые были установлены и выбирают число последней версии, которое можно найти, на это ссылаются как ${kernel_ver} в следующих инструкциях в моем тесте VM это было 3.16.0-46.

Как я заявил в комментарии прежде, процедура очень похожа на переустановку Личинки в chroot, таким образом позвольте мне заключить этот ответ в кавычки с некоторыми небольшими модификациями:

  1. Свяжите монтируют некоторый другой необходимый материал:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "${my_installation}$i"; done
    
  2. chroot в Вашу установку Ubuntu:

    sudo chroot ${my_installation}
    
  3. На данном этапе Вы находитесь в своей установке, не живой сессии, и работающий как корень. …

Теперь переустановите свое ядро ( signed пакет является для UEFI безопасной начальной загрузкой):

apt-get install --reinstall linux-image-${kernel_ver}-generic linux-signed-image-${kernel_ver}-generic

Проверьте /boot каталог, если initrd поскольку это ядро все еще отсутствует. Для генерации его, вручную работайте:

mkinitramfs -o /boot/initrd.img-${kernel_ver}-generic ${kernel_ver}-generic

Мой пример:

mkinitramfs -o /boot/initrd.img-3.16.0-46-generic 3.16.0-46-generic

Затем выполненный update-grub как в заключенном в кавычки ответе так, чтобы можно было быть уверены, что "новое" ядро и initrd включены.

Если необходимо переустановить Личинку также, можно выполнить остающиеся шаги. Помните, что эти инструкции были записаны для MBR, если у Вас есть UEFI (где загрузчики от различных Ose не должны перезаписывать друг друга), необходимо проверить это grub-efi-amd64-bin установлен установка прежде, чем переустановить Личинку.


9
ответ дан 23 November 2019 в 06:28

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

Похожие вопросы: