Grub перезагружает ПК, показывая только “Grub loading”.

Вопрос или проблема

У меня есть старый компьютер, который я использую для более экспериментальных операционных систем, и около месяца назад я установил на него Gentoo с загрузчиком GRUB2. Все работало нормально, но при каждой загрузке появлялась ошибка о /dev/sda2 (моем разделе загрузки grub), который не удавалось смонтировать из-за чего-то плохого (плохой суперблок, неправильный тип файловой системы и т.д.)

ИЗМЕНЕНИЕ: Я должен упомянуть порядок разделов (из-за переразбивки):
/dev/sda2 (/boot)
/dev/sda1 (/)
/dev/sda3 (swap)

Вчера я решил избавиться от этой ошибки, запустив e2fsck /dev/sda2. Было много неправильных вещей, но они повторялись для многих, если не всех, инодов, поэтому я решил дать e2fsck завершить работу и пропустил все, удерживая клавишу Enter.
В конце не было аномалий, возможно, упомянулось, сколько всего было исправлено.

Затем я попытался перезагрузиться, так как пытался заставить работать звук, перекомпилируя ядро с правильными драйверами. Когда система загрузилась, она показала обычный экран загрузки BIOS (со строкой загрузки), за которым следовал также обычный текстовый экран, на котором мне всегда нужно нажимать клавишу F1 для продолжения (я думаю, это потому, что мой единственный жесткий диск подключен через SATA вместо тогда (2004) обычного IDE). Появился текст “Grub loading.”, и затем произошла перезагрузка в бесконечный цикл (если бы не то, что мне нужно нажимать F1 в каждой последовательности загрузки). Мне не удалось это исправить.

Я загрузился с установочного диска Gentoo и переустановил GRUB2,
я отформатировал /dev/sda2 и перенастроил GRUB2,
я переориентировал свои разделы так, чтобы /dev/sda1 был разделом загрузки GRUB и находился в начале диска, и перенастроил GRUB,
я переместил все разделы на 10 ГиБ назад, чтобы убедиться, что первый раздел не находится в плохом секторе жесткого диска, и перенастроил GRUB2,
я изменил и попробовал все параметры BIOS, касающиеся загрузки,
я изо всех сил гуглил на своем основном ноутбуке о схожих проблемах,
я подумывал поджечь компьютер, получить поддельный паспорт и исчезнуть в Бельгии…

ИЗМЕНЕНИЕ: Я выяснил, что в некотором смысле GRUB (когда он все еще работал) был установлен в папку /boot, а не в раздел, потому что раздел не удавалось смонтировать.

ИЗМЕНЕНИЕ(2): Вот /etc/fstab:

# /etc/fstab: статическая информация о файловой системе.
#
# noatime отключает atimes для повышения производительности (atimes обычно не 
# нужны); notail увеличивает производительность ReiserFS (за счет эффективности 
# хранения). Можно безопасно отключить параметры noatime, если хотите, и 
# свободно переключаться между notail / tail.
#
# Корневая файловая система должна иметь номер прохода 0 или 1.
# Все другие файловые системы должны иметь номер прохода 0 или больше 1.
#
# Подробнее см. на man-странице fstab(5).
#

# <fs>          <место монтирования>    <тип>      <параметры>      <дамп/проход>

# ПРИМЕЧАНИЕ: Если ваш раздел BOOT - это ReiserFS, добавьте параметр notail в параметры.
/dev/sda2       /boot       ext4        noauto,noatime  1 2
/dev/sda1       /       ext4        noatime     0 1
/dev/sda3           none        swap        sw      0 0
/dev/cdrom      /mnt/cdrom  auto        noauto,ro,user  0 0
/dev/fb0        /mnt/floppy auto        noauto,user 0 0

Теперь я заметил, что sda1 и sda2 все еще поменяны местами, но не думаю, что это вызывает сбой при загрузке GRUB.

ИЗМЕНЕНИЕ(2.1): Я исправил fstab, но проблема остается.

ИЗМЕНЕНИЕ(3): Вот обновленный fstab:

# /etc/fstab: статическая информация о файловой системе.
#
# noatime отключает atimes для повышения производительности (atimes обычно не 
# нужны); notail увеличивает производительность ReiserFS (за счет эффективности 
# хранения). Можно безопасно отключить параметры noatime, если хотите, и 
# свободно переключаться между notail / tail.
#
# Корневая файловая система должна иметь номер прохода 0 или 1.
# Все другие файловые системы должны иметь номер прохода 0 или больше 1.
#
# Подробнее см. на man-странице fstab(5).
#

# <fs>          <место монтирования>    <тип>      <параметры>      <дамп/проход>

# ПРИМЕЧАНИЕ: Если ваш раздел BOOT - это ReiserFS, добавьте параметр notail в параметры.
/dev/sda1       /boot       ext4        noauto,noatime  1 2
/dev/sda2       /       ext4        noatime     0 1
/dev/sda3           none        swap        sw      0 0
/dev/cdrom      /mnt/cdrom  auto        noauto,ro,user  0 0
/dev/fb0        /mnt/floppy0    auto        noauto,user 0 0

ls /boot/ не выдало никакого вывода, что странно – возможно, я допустил ошибку и раздел GRUB был все-таки смонтирован.

После монтирования /dev/sda1 в /boot/ это был вывод ls -Al /boot/:

 root@lubuntu 20:52:29 / # ls -al /boot
total 8941
-rw-r--r--  1 root root   96280 Jul 29 19:09 config-4.0.5-gentoo-2015-07-29-14-09
drwxr-xr-x  5 root root    1024 Jul 29 19:09 grub
drwx------  2 root root   12288 Jul 29 15:52 lost+found
-rw-r--r--  1 root root 2720318 Jul 29 19:09 System.map-4.0.5-gentoo-2015-07-29-14-09
-rw-r--r--  1 root root 6319104 Jul 29 19:09 vmlinuz-4.0.5-gentoo-2015-07-29-14-09

загрузитесь с помощью спасательного CD/USB. Затем выполните chroot в вашей установке, затем выполните

grub2-install /dev/sda
grub2-mkconfig /boot/grub2/grub.cfg

Ответ или решение

Для решения проблемы, связанной с постоянной перезагрузкой вашего компьютера с установленным Grub, где он остается в цикле ребутов после отображения сообщения "Grub loading", предлагаю вам следовать описанному ниже плану действий.

Теория

Ваша ситуация предполагает наличие нескольких потенциальных проблем:

  1. Проблемы с файловой системой: После использования e2fsck для восстановления файловой системы вашего загрузочного раздела (/dev/sda2), изменения могли некорректно повлиять на метаданные или саму структуру файлов, что теперь блокирует правильную загрузку Grub.

  2. Некорректная конфигурация Grub: Ошибки при установке или настройке Grub, которые могут возникнуть в результате изменения порядка разделов или неправильных путей во время установки. На это также указывает отсутствие выходных данных команды ls /boot, что указывает на возможные ошибки в монтировании.

  3. Проблемы с оборудованием: Нестабильная работа жесткого диска или иные аппаратные проблемы могут приводить к сбоям при чтении данных с него, что может вызывать перезагрузку системы.

Пример

В процессе устранения подобных ошибок, важно придерживаться последовательного подхода. Разберем каждую предполагаемую причину и дадим конкретные рекомендации по её устранению:

Применение

  1. Проверка файловой системы:

    • Используйте загрузочный диск (или USB-накопитель) с дистрибутивом Linux, чтобы получить доступ к вашим разделам. Вы можете использовать, например, системный диск Gentoo, с которого уже ранее пытались загружаться.

    • Проверьте файловую систему на всех используемых разделах, особенно на /dev/sda1 и /dev/sda2:

      e2fsck -f /dev/sda1
      e2fsck -f /dev/sda2
    • Если будут ещё обнаружены ошибки, аккуратно их исправьте. Удостоверьтесь в целостности суперблоков и инодов.

  2. Правильное монтирование разделов:

    • После загрузки с live CD/USB и перехода в chroot окружение (как вы уже делали), убедитесь в правильном монтировании разделов:

      mount /dev/sda2 /mnt/gentoo
      mount /dev/sda1 /mnt/gentoo/boot
  3. Переустановка Grub:

    • Прежде чем переустанавливать Grub, необходимо убедиться в корректной установке и конфигурации всех необходимых компонентов. Убедитесь, что все каталоги и файлы Grub присутствуют в /boot/grub (например, cd /mnt/gentoo/boot && ls -lah).

    • Переустановите загрузчик Grub:

      grub2-install /dev/sda
      grub2-mkconfig -o /boot/grub/grub.cfg
    • Проверьте, что в файле конфигурации Grub правильно указаны пути к ядру и initrd.

  4. Рассмотреть аппаратные проблемы:

    • Если вышеописанные шаги не привели к решению задачи, проверьте ваш жесткий диск с использованием инструмента вроде smartctl:

      smartctl -a /dev/sda
    • Это поможет выявить возможные аппаратные проблемы, такие как "bad sectors" или другие неисправности.

  5. Другие соображения по улучшению конфигурации:

    • Убедитесь, что BIOS/UEFI настроен для загрузки с нужного диска и всех изменений в порядке устройств.

    • Проверьте кабели SATA на наличие повреждений или плохих соединений. Попробуйте подключить HDD к другому порту.

Ваша цель — определить корень проблемы, последовательным исключением всех возможных причин. Иногда подобные ситуации требуют комбинированного подхода на уровне программного обеспечения и оборудования. Исключив общие конфигурационные проблемы, вы сможете уверенно заключить, что оборудованию или возрастанию ошибок данных требуется дополнительное внимание.

Оцените материал
Добавить комментарий

Капча загружается...