Linux:Рецепты/Восстановление незагружающейся системы из приглашения grub: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 6: Строка 6:
==Проблема==
==Проблема==


Загрузка системы останавливается на приглашении GRUB grub>. Необходимо загрузить систему и восстановить работоспособную конфигурацию.
Загрузка системы останавливается на приглашении GRUB '''grub>'''. Необходимо загрузить систему и восстановить работоспособную конфигурацию.


==Решение==
==Решение==


Если загрузка системы останавливается на приглашении grub>, значит загрузчик нашел каталог '''/boot/grub/''', но не может найти корневую файловую систему.
Если загрузка системы останавливается на приглашении '''grub>''', значит загрузчик нашел каталог '''/boot/grub/''', но не может найти корневую файловую систему.


Необходимо найти корневую файловую систему, ядро Linux и соответству­ющий файл initrd. В командной оболочке GRUB нам доступна вся файловая система.
Необходимо найти корневую файловую систему, ядро [[Linux]] и соответству­ющий файл initrd. В командной оболочке GRUB нам доступна вся файловая система.


Включим возможность перелистывания страниц, чтобы можно было просматривать длинный вывод, прокручивая его вверх и вниз:
Включим возможность перелистывания страниц, чтобы можно было просматривать длинный вывод, прокручивая его вверх и вниз:
Строка 20: Строка 20:
</syntaxhighlight>
</syntaxhighlight>


Выведим список доступных дисков и разделов. В GRUB свой способ идентификации жестких дисков и разделов. Он нумерует диски, начиная с 0, а разделы — с 1, и маркирует все жесткие диски как hd. В работающей системе Linux жесткие диски обозначаются как /dev/sda, /dev/sdb и т. д.
Выведим список доступных дисков и разделов. В GRUB свой способ идентификации жестких дисков и разделов. Он нумерует диски, начиная с 0, а разделы — с 1, и маркирует все жесткие диски как hd. В работающей системе Linux жесткие диски обозначаются как '''/dev/sda''', '''/dev/sdb''' и т. д.


Команда в следующем примере обнаружила два жестких диска, hd0 и hd1, которые соответствуют устройствам /dev/sda и /dev/sdb. Раздел hd0,gpt5 соответствует разделу /dev/sda5, а hd1,msdos1 — разделу /dev/sdb1:
Команда в следующем примере обнаружила два жестких диска, hd0 и hd1, которые соответствуют устройствам '''/dev/sda''' и '''/dev/sdb'''. Раздел hd0,gpt5 соответствует разделу '''/dev/sda5''', а hd1,msdos1 — разделу '''/dev/sdb1''':


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 43: Строка 43:
</syntaxhighlight>
</syntaxhighlight>


Вывод результата команды ls:
Вывод результата команды [[ls]]:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 51: Строка 51:
</syntaxhighlight>
</syntaxhighlight>


Нам нужно найти каталог /boot. Допустим, что он находится в корневой файловой системе во втором разделе. Косая черта после имени раздела означает «список всех файлов и каталогов в разделе»:
Нам нужно найти каталог '''/boot'''. Допустим, что он находится в корневой файловой системе во втором разделе. Косая черта после имени раздела означает «список всех файлов и каталогов в разделе»:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 57: Строка 57:
</syntaxhighlight>
</syntaxhighlight>


Все загрузочные файлы находятся в каталоге /boot:
Все загрузочные файлы находятся в каталоге '''/boot''':
 
<syntaxhighlight lang="bash">
ls (hd0,2)/boot
</syntaxhighlight>
 
Вывод результата команды [[ls]]:
 
<syntaxhighlight lang="bash">
efi/ grub/ System.map-5.3.18-lp152.57-default config-5.3.18-lp152.57-default
initrd-5.3.18-lp152.57-default vmlinuz vmlinuz-5.3.18-lp152.57-default
sysctl.conf-5.3.18-lp152.57-default vmlinux-5.3.18-lp152.57-default.gz
</syntaxhighlight>
 
Все, что нужно для загрузки системы, находится здесь. Установите раздел корневой файловой системы, ядро и образ initrd:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ls (hd0,2)/
set root=(hd0,2)
linux /boot/vmlinuz-5.3.18-lp152.57-default root=/dev/sda2
initrd /boot/initrd-5.3.18-lp152.57-default
boot
</syntaxhighlight>
</syntaxhighlight>
{{Примечание1|
* vmlinuz-5.3.18-lp152.57-default — сжатое ядро Linux.
* initrd-5.3.18-lp152.57-default — RAM-диск с временной корневой файловой системой, используемой только в начале запуска системы.
}}
{{Примечание1|
Сбой загрузки может быть вызван:
* повреждением файлов;
* добавлением, удалением или перемещением жестких дисков;
* установкой или удалением операционных систем;
* повторной разметкой диска.
}}


=См.также=
=См.также=

Текущая версия от 18:50, 13 августа 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


Восстановление незагружающейся системы из приглашения grub

Проблема

Загрузка системы останавливается на приглашении GRUB grub>. Необходимо загрузить систему и восстановить работоспособную конфигурацию.

Решение

Если загрузка системы останавливается на приглашении grub>, значит загрузчик нашел каталог /boot/grub/, но не может найти корневую файловую систему.

Необходимо найти корневую файловую систему, ядро Linux и соответству­ющий файл initrd. В командной оболочке GRUB нам доступна вся файловая система.

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

set pager=1

Выведим список доступных дисков и разделов. В GRUB свой способ идентификации жестких дисков и разделов. Он нумерует диски, начиная с 0, а разделы — с 1, и маркирует все жесткие диски как hd. В работающей системе Linux жесткие диски обозначаются как /dev/sda, /dev/sdb и т. д.

Команда в следующем примере обнаружила два жестких диска, hd0 и hd1, которые соответствуют устройствам /dev/sda и /dev/sdb. Раздел hd0,gpt5 соответствует разделу /dev/sda5, а hd1,msdos1 — разделу /dev/sdb1:

ls

Вывод результата команды ls:

(hd,0) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
(hd1) (hd1,msdos1)

Как можно заметить, диск hd0 имеет таблицу разделов gpt, а диск hd1 — таблицу разделов msdos. При использовании номеров разделов в командах метки gpt и msdos можно опустить.

GRUB может сообщить типы файловых систем, универсальные уникальные идентификаторы (Universally Unique IDentifier, UUID) и другую информацию о разделах:

ls (hd0,3)

Вывод результата команды ls:

Partition hd0,3: filesystem type ext* - Last modification time 2023-11-19
11:27:38 Tuesday, UUID 2b41c7b2-e34a-4464-8fa8-111363cd1bff - Partition start at 526336KiB - 
Total size 20444160KiB

Нам нужно найти каталог /boot. Допустим, что он находится в корневой файловой системе во втором разделе. Косая черта после имени раздела означает «список всех файлов и каталогов в разделе»:

ls (hd0,2)/

Все загрузочные файлы находятся в каталоге /boot:

ls (hd0,2)/boot

Вывод результата команды ls:

efi/ grub/ System.map-5.3.18-lp152.57-default config-5.3.18-lp152.57-default
initrd-5.3.18-lp152.57-default vmlinuz vmlinuz-5.3.18-lp152.57-default
sysctl.conf-5.3.18-lp152.57-default vmlinux-5.3.18-lp152.57-default.gz

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

set root=(hd0,2)
linux /boot/vmlinuz-5.3.18-lp152.57-default root=/dev/sda2
initrd /boot/initrd-5.3.18-lp152.57-default
boot
Примечание
  • vmlinuz-5.3.18-lp152.57-default — сжатое ядро Linux.
  • initrd-5.3.18-lp152.57-default — RAM-диск с временной корневой файловой системой, используемой только в начале запуска системы.
Примечание

Сбой загрузки может быть вызван:

  • повреждением файлов;
  • добавлением, удалением или перемещением жестких дисков;
  • установкой или удалением операционных систем;
  • повторной разметкой диска.

См.также

Внешние ссылки