Как использовать GRUB Rescue для исправления Linux

Опубликовано: 2023-05-14
Начальный экран Ubuntu Linux на ноутбуке
Джордан Глор / How-To Geek
Если ваши оболочки GRUB показывают приглашение «grub>», вы можете использовать команды ls , set , linux и initrd для исправления вашей системы Linux. Если вместо этого вы видите подсказку «grub escape>», используйте команды set , insmod , linux и initrd для загрузки вашего ПК.

Если ваш компьютер с Linux не может загрузить свою операционную систему, вы, вероятно, обнаружите, что смотрите на приглашение в оболочке GRUB. Выполните следующие действия, чтобы восстановить сломанные процессы загрузки.

Оглавление

Когда ваш загрузчик не загружается
Использование оболочки GRUB
Использование спасательной оболочки GRUB
Другие возможные средства правовой защиты

Когда ваш загрузчик не загружается

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

Это может быть очень непрозрачной проблемой, и нет простого способа углубиться в первопричину. Без доступа к Linux вы не сможете использовать обычные диагностические инструменты и процессы, которые вы использовали бы для исследования проблемы. А не определив, в чем проблема, как ее исправить?

В Linux GRUB — это программное обеспечение, управляющее процессом загрузки. Если у вас установлено несколько операционных систем, вы можете выбрать ту, в которую хотите загрузиться.

GRUB управляется своей конфигурацией. Он также полагается на другие вспомогательные файлы для выполнения своих функций. Если какой-либо из них отсутствует или поврежден, GRUB не будет работать. Изменения жестких дисков и разделов вашего компьютера должны быть отражены в конфигурации GRUB. Если это не так, инструкции GRUB не будут иметь смысла, и ваш процесс загрузки не будет работать.

Как записать файл ISO на USB-накопитель в Linux
СВЯЗАННЫЕ С Как записать файл ISO на USB-накопитель в Linux

В качестве примечания: то, что мы все называем GRUB, на самом деле является GRUB 2. Это расширенная версия GRUB, выпущенная еще в 2012 году. Помимо других изменений, она изменила способ создания файла «grub.cfg» и загружаться со съемных носителей.

Если GRUB не может загрузить операционную систему, вы останетесь с приглашением в оболочке GRUB. Это минималистичная среда, которая позволит вам выполнять несколько действий. Однако, если все сделано правильно, эти шаги могут воскресить ваш компьютер.

Есть две разные оболочки GRUB. В зависимости от основной причины проблемы вы можете обнаружить приглашение оболочки GRUB:

 жратва>

или в командной строке спасательной оболочки GRUB:

 спасение личинки>

Оболочка восстановления GRUB еще более ограничена, чем оболочка GRUB, но все же обладает достаточной мощностью, чтобы ваш компьютер загрузился. Как только ваш компьютер загрузится, у вас будет гораздо больше возможностей для устранения основной причины.

Использование оболочки GRUB

Оболочка GRUB — это интерфейс командной строки, который позволяет вам использовать небольшое подмножество команд Linux. Если вы окажетесь здесь, а не на обычном экране входа в систему, это означает, что ваш процесс загрузки испорчен.

Приглашение оболочки GRUB

Команды, к которым у вас есть доступ, отличаются от обычных версий Linux. Например, команда ls оболочки GRUB не является командой Bash ls . С ним очень мало общего. Мы можем увидеть это, используя опцию --help .

 лс --помощь 

Использование параметра --help с версией ls оболочки GRUB

Он перечисляет только пять вариантов. Это далеко от десятков опций, поддерживаемых ls в Bash. Тем не менее, даже с нашей несколько приглушенной палитрой команд, мы все же можем исправить ситуацию.

В командной строке введите ls и нажмите «Enter».

 лс 

Вывод версии ls оболочки GRUB, показывающий диски и разделы

На этом компьютере в нем перечислены три элемента.

  • (hd0) — первый жесткий диск.
  • (hd0,gpt1) — это первый раздел на первом жестком диске.
  • (hd0,gpt2) — это второй раздел на первом жестком диске.

Метка «gpt» означает таблицу разделов GUID. Нам нужно включать скобки « () », когда мы ссылаемся на раздел, но мы можем опустить метку.

Чтобы просмотреть разделы по очереди, мы будем использовать ls .

 лс (hd0,1)
 лс (hd0,2) 

Использование версии ls оболочки GRUB для идентификации раздела Linux

Мы обнаружили, что на втором разделе есть файловая система Linux. Мы продолжим расследование, взглянув на корневой каталог этого раздела.

 лс (hd0,2)/ 

Использование версии ls оболочки GRUB для проверки определенного раздела

Ясно, что это раздел Linux с загрузочным каталогом на нем. Здесь хранятся файлы GRUB, загрузочные образы Linux и другие загрузочные файлы.

На этом компьютере нам нужно будет ссылаться на раздел (hd0,2) при выполнении наших команд. На вашем компьютере вы бы использовали любой раздел, на котором вы найдете свою установку Linux.

Мы можем использовать команду cat для просмотра текстовых файлов, добавив путь к каталогу и имя файла к имени раздела, например:

 кошка (hd0,2)/etc/выпуск 

Просмотр версии Linux с помощью команды cat в оболочке GRUB

В многозагрузочных установках это полезный способ убедиться, что вы находитесь в правильном разделе. Это также отлично подходит для просмотра внутренних файлов конфигурации.

Здесь мы используем команду ls с параметрами -l (длинный) и -h (удобочитаемый размер) для вывода списка файлов в каталоге «/boot».

 ls -lh (hd0,2)/загрузка 

Список файлов в каталоге /boot с использованием версии ls для GURB

Чтобы этот компьютер загрузился, нам нужно сообщить GRUB, что наш недавно обнаруженный раздел Linux содержит загрузочные файлы.

 установить корень = (hd0,2)

Нам нужно указать, с какого ядра Linux следует загружаться. Мы делаем это с помощью команды linux . Обратите внимание, что мы также должны указать корневой каталог, используя обычную схему именования жестких дисков и разделов Linux.

 Linux /boot/vmlinuz-6.2.0-20-общий корень=/dev/sda2

На нашем примере компьютера мы используем (hd0) , который является первым жестким диском. В обычной номенклатуре Linux это называется sda . Мы обнаружили, что второй раздел — это раздел Linux, поэтому нам нужно указать sda2 .

Ваша машина может быть другой. Например, если ваш раздел Linux указан как (hd2,1) , это означает первый раздел на третьем жестком диске или sdc1 .

Нам также необходимо указать, какой образ файловой системы в ОЗУ использовать при загрузке компьютера. Это должно использовать тот же числовой компонент, что и ядро ​​Linux, которое мы используем.

 initrd /boot/initrd.img-6.2.0-20-общий 

Установка параметров загрузки в оболочке GRUB

Теперь, чтобы загрузить нашу систему, введите «boot» и нажмите «Enter».

Это должно загрузить ваш компьютер в Linux. Это заставило нас снова работать, но нам все еще нужно исправить GRUB, поэтому нам не нужно делать это каждый раз, когда мы запускаем наш компьютер.

Мы запустим update-grub . Это просканирует нашу систему, определит операционные системы и создаст новую конфигурацию GRUB. Нам нужно запустить это как пользователь root.

 sudo update-grub 

Запуск update-grub для восстановления файла grub.cfg

В редких случаях вам может понадобиться переустановить загрузчик GRUB, используя grub-install .

 sudo grub-install /dev/sda

Обратите внимание, что вам не нужно указывать, на какой раздел устанавливать, а только на какой диск. В обычных установках это тот же диск, на котором находится ваш Linux.

Доказательство пудинга приходит со следующей перезагрузкой. Ваш компьютер должен нормально перезагрузиться.

СВЯЗАННЫЕ С: Как настроить параметры загрузчика GRUB2

Использование спасательной оболочки GRUB

В зависимости от характера проблемы с загрузкой вы можете не попасть в оболочку GRUB. Вы можете остаться в режиме спасения GRUB. Если это так, ваше приглашение будет выглядеть так:

 спасение личинки>

Команды, которые нам нужно выполнить в этой оболочке, отличаются. Нам нужно использовать ls , чтобы найти раздел Linux, как если бы вы использовали оболочку GRUB. Определив раздел Linux, вы можете продолжить и ввести эти команды.

Не забудьте использовать идентификаторы дисков и номера версий ядра, которые подходят для вашего компьютера. Команда insmod загружает модули ядра.

 установить префикс=(hd0,2)/boot/grub
 установить корень = (hd0,2)
 инсмод нормальный
 инсмод линукс
 Linux /boot/vmlinuz-6.2.0-20-общий корень=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-общий 

Установка параметров загрузки в спасательной оболочке GRUB

Затем вы можете ввести «boot» и нажать «Enter», чтобы перезагрузить компьютер. После перезагрузки и входа в систему обновите GRUB с помощью команды update-grub .

Другие возможные средства правовой защиты

Если проблема заключается в отсутствии загрузочных файлов, таких как файлы «vmlinuz» и «initrd.img», вы можете загрузить компьютер с Live DVD или загрузочного USB-накопителя Linux и скопировать недостающие файлы на место.

Обратите внимание, что файлы «vmlinuz» и «initrd.img» должны иметь одинаковые номера версий, потому что они работают как согласованная пара.

СВЯЗАННЫЕ С: Как создать загрузочный Linux Live USB на вашем Mac