Я удалил все содержимое / boot, и теперь сервер не загружается

Я сделал какую-то глупость. Я думал, что каталог / boot пуст, а его содержимое попадает в / boot при каждом запуске компьютера. Мой загрузочный диск выдавал мне сообщения об ошибках, и я подумал, что там могут быть ненужные файлы. Я удалил все содержимое / boot командой rm -rf * и перезагрузил компьютер командой reboot . Теперь система не запускается. Я получаю ошибку при загрузке, т.е.
файл ошибки /grub2/i386-pc/normal.mod не найден
Вход в режим восстановления ... grub rescue>

Большая часть поиска показывает решение проблемы ремонтируя личинку. В моем случае я знаю, что удалил содержимое, поэтому как мне восстановить систему. Я использую Centos 7.

0
задан 27 September 2018 в 12:56
2 ответа

Раздел / boot содержит важные файлы ядра Linux, а также файлы Grub. Без них ваша система не загрузится (как вы уже выяснили).И простое восстановление файлов Grub не поможет. Для восстановления после этого вы должны иметь возможность сделать следующее:

  • Загрузите систему в режим восстановления с образа CentOS DVD / ISO
  • Переустановите ядро, запустив yum переустановите ядро ​​
  • Переустановите Grub, запустив / sbin / grub2-install / dev / sda

На последнем этапе вам может потребоваться заменить / dev / sda другим именем устройства, в зависимости от вашего оборудования. Это должен быть ваш основной жесткий диск, с которого вы хотите загрузиться. На виртуальных машинах это обычно / dev / vda . Если вы не уверены, вы можете использовать команду lsblk (вам может потребоваться сначала запустить yum install util-linux ), чтобы вывести список всех ваших блочных устройств, и вы сможете распознать по размеру диска.

После этого ваша система должна снова нормально загрузиться.

6
ответ дан 4 December 2019 в 11:15

Недавно у меня была аналогичная проблема. Я мог бы поправиться, следуя ответу здесь .
Я задокументировал шаги, которые я выполнил, в новом ответе.

Я скопировал свой ответ сюда для удобства:

У меня компьютер с Fedora 30. Загрузочный раздел находится на / dev / sda3 а корневой раздел находится на LVLM с именем Fedora-root . Я выполнил все команды с учетной записью root.

  1. Я загрузился с живого носителя Fedora (с USB-накопителя)

  2. Смонтируйте свой корневой раздел

     mount / dev / mapper / Fedora-root / mnt
     
  3. Смонтировать мой загрузочный раздел
     монтировать / dev / sda3 / mnt / boot
     
  4. Скопируйте ядро ​​из живого раздела в предполагаемый загрузочный раздел.
     cp / boot / vmlinuz - $ (uname -r) / mnt / boot /
     
  5. Смонтировать системные разделы
     монтировать --bind / dev / mnt / dev
    монтировать --bind / sys / mnt / sys
    монтировать --bind / proc / mnt / proc
     
  6. Измените корень на / mnt
     chroot / mnt
     
  7. Сгенерировать initramfs
     dracut / boot / initramfs - $ (uname -r) .img $ (uname -r) -v
     
  8. Переустановите grub и заново настройте его.
     grub2-mkconfig -o /boot/grub2/grub.cfg
     

По неизвестной мне причине создание initramfs происходило очень медленно и не могло завершиться в моей системе (шаг 6). Однако команда работала нормально, когда я не исказил файловую систему. Итак, я пропустил шаги с 3 и далее. Мне также пришлось изменить конфигурацию dracut , чтобы указать на корневую систему.

Итак, новые шаги:

  1. Укажите на корневую папку в конфигурации dracut
     echo "root = / dev / mapper / Fedora / root"> /etc/dracut.conf.d/kernel.conf
     
  2. Переустановите ядро ​​ и сгенерируйте initramfs
     dracut / dev / sda / initramfs - $ (uname -r) .img $ (uname -r) -v
     
  3. Затем я выполнил шаги 3–6 выше, чтобы восстановить конфигурацию grub (этот шаг может быть не нужен, я был слишком осторожен)
     монтировать / dev / mapper / Fedora-root / mnt`
    смонтировать / dev / sda3 / mnt / boot
    cp / boot / vmlinuz - $ (uname -r) / mnt / boot /
    монтировать --bind / dev / mnt / dev
    монтировать --bind / sys / mnt / sys
    монтировать --bind / proc / mnt / proc
    chroot / mnt
     
  4. Переустановите grub и заново настройте его.
     grub2-install / dev / sda
    grub2-mkconfig -o /boot/grub2/grub.cfg
     

Примечание для владельцев NVIDIA.
У меня есть графический процессор NVIDIA, и до инцидента у меня были установлены проприетарные драйверы.
Восстановленное ядро ​​с живого носителя использовало драйверы Nouveau (поскольку это драйвер по умолчанию в Fedora). Восстановленное ядро ​​тоже было не последней версии. Когда я впоследствии обновил ядро ​​ , используя графический интерфейс, оно использовало проприетарные драйверы NVIDIA.

0
ответ дан 4 December 2019 в 11:15

Теги

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