Неделя восстановления: Rescue-режим и переустановка загрузчика Grub
08.12.2007

rescue modeКогда система настолько повреждена, что не удается загрузиться с жесткого диска, можно загрузиться с другого устройства. Установочный диск Fedora поддерживает режим rescue, при котором система загрузится с CD, а разделы жесткого диска можно будет примонтировать.

Для запуска режима rescue загрузитесь с установочного диска и выберите "Rescue installed system" («Восстановление установленной системы») из загрузочного меню, используя клавиши со стрелками и enter или нажав клавишу R (если вы хотите изменить параметры загрузки, например, для отключения ACPI, установите курсор на "Rescue installed system" и нажмите tab).

Ядро загрузится с CD и система попросит вас выбрать раскладку клавиатуры и язык  из списка. Возможно, получится также запустить сетевые интерфейсы. Для этого потребуется ввести настройки сети (IP-адрес и т.д.) или использовать DHCP.

rescue mode mount dialogДалее появиться диалоговое окно, сообщающее о найденном разделе с установленной системой Fedora, и нужно будет выбрать, что делать дальше. Если ваша файловая система не повреждена, и вам нужен к ней доступ, выбирайте Continue. Если вы думаете, что файловая система может быть повреждена и вы не хотите ничего менять, чтобы не повредить файлы, выберите Read-Only. Если файловая система повреждена, у вас установлено несколько операционных систем Fedora или вы будете выполнять такие операции, как, например, изменение размера раздела root, тогда выбирайте Skip. После нескольких сообщений вы попадете в root-консоль.

Если при загрузке вы выбрали Continue, файловая система будет подмонтированна в папку /mnt/sysimage. Например, файл /etc/passwd восстанавливаемой системы будет находиться здесь: /mnt/sysimage/etc/passwd.

Несмотря на то, что большинство программ вашей системы будет доступно на запуск, корректно они работать не будут из-за того, что изменилась точка монтирования root-раздела. Однако это можно обойти, выполнив команду:

chroot /mnt/sysimage

После чего адрес / будет означать корень восстанавливаемой системы, а не текущей, и вы уже не сможете посмотреть список подмонтированных систем в файле /etc/mtab, системные сообщения в /var/log/messages, и т.д., так как эти файлы теперь будут относиться к восстанавливаемой системе, а не к той, которая сейчас загружена. Но посмотреть системные сообщения можно также командой dmesg, а список подмонтированных разделов прочитать отсюда: /proc/mounts.

Если вы загрузились в rescue из-за того, что поврежден загрузчик Grub, вы можете его переустановить:

1. Запустите grub-шелл с помощью команды grub:
# grub
Probing devices to guess BIOS drives. This may take a long time.


GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub>


2. С помощью команды find найдите раздел, содержащий /grub/grub.conf (или /boot/grub/grub.conf, если не нашли /grub/grub.conf). Grub выдаст идентификатор раздела, используя свой собственный синтаксис:

grub> find /grub/grub.conf
(hd0,0)


3. Используя команду root, укажите загрузчику, в каком разделе искать загрузочные файлы (используйте идентификатор раздела, найденный в пункте 2):

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83


4. Идентификатор жесткого диска можно получить, отбросив скобки, запятую и номер раздела. Например, раздел (hd0,0) находится на жестком диске hd0. Используйте команду setup с идентификатором  жесткого диска для установки загрузчика:

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.


5. Выполните выход из grub-шелла с помощью команды quit:

grub> quit
#


Вы можете использовать режим rescue для смены root-пароля, создания новых аккаунтов, а также для изменения пароля загрузчика grub. Кроме восстановления системы, данный режим может быть использован злоумышленником для получения контроля над чужой системой. Чтобы усложнить ему эту задачу, в BIOS нужно разрешить загрузку только с жесткого диска, а на сам BIOS установить пароль. Однако даже при этом злоумышленник может сбросить настройки BIOS с помощью джампера на материнской плате. Вывод: если ваш компьютер не защищен физически, то он не защищен вообще.

После выполнения всех нужных действий с системой наберите exit или нажмите Ctrl+D дважды — компьютер перезагрузится.