Я по ошибке стер один vmlinuz
файлы в моем /boot
каталог. Однако я сделал резервное копирование /boot
внутри /tmp
, только быть уверенным.
Следовательно, я не могу загрузиться, поскольку я получаю пропавших без вести vmlinuz ошибка файла. Таким образом, я загрузил использование живого USB, но когда я вошел /boot
dir в моем жестком диске (sda5), это абсолютно пусто. Если я копирую файлы с /tmp/boot
к этому /boot
каталог, я все еще не могу загрузиться.
Как я могу восстановить те файлы к соответствующему каталогу?
vmlinuz
само изображение ядра Linux (z указывает, что сжат).
Переустановка пакета ядра, на который в настоящее время ссылается linux-image-generic (или ядро HWE) и вероятно linux-singed-image-generic в UEFI, безопасные загрузочные среды должны решить проблему.
Предпочтительно загрузите живые медиа той же версии и смонтируйте раздел своей установки (можно сделать это с Наутилусом, это будет что-то как /media/ubuntu/…
затем) или Ваш /boot
раздел (это будет немного более сложно). Это будет ${my_installation}
в следующих инструкциях.
Изучить /lib/modules/
из Вашей установки (${my_installation}/lib/modules/
) для конкретных версий ядра, которые были установлены и выбирают число последней версии, которое можно найти, на это ссылаются как ${kernel_ver}
в следующих инструкциях в моем тесте VM это было 3.16.0-46.
Как я заявил в комментарии прежде, процедура очень похожа на переустановку Личинки в chroot, таким образом позвольте мне заключить этот ответ в кавычки с некоторыми небольшими модификациями:
Свяжите монтируют некоторый другой необходимый материал:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "${my_installation}$i"; done
chroot
в Вашу установку Ubuntu:sudo chroot ${my_installation}
На данном этапе Вы находитесь в своей установке, не живой сессии, и работающий как корень. …
Теперь переустановите свое ядро ( 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
установлен установка прежде, чем переустановить Личинку.