Глава 3. Режим восстановления

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

Что такое режим восстановления?

Режим восстановления даёт возможность загрузить небольшое окружение Linux с дискеты, CD-ROM, или каким-то другим способом.

Как и следует из имени, режим восстановления предусмотрен для восстановления в случае сбоя. В штатном режиме ваша система Red Hat Linux использует файлы, размещённые на жёстком диске компьютера для всего - запуска программ, хранения файлов и т.д.

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

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

Далее эти ситуации будут рассмотрены более подробно.

Загрузить Linux невозможно

Проблема часто возникает в результате установки другой операционной системы после установки Red Hat Linux. Некоторые другие операционные системы предполагают что никакие другие операционные системы на компьютере не установлены, и переписывают Master Boot Record (Главную Загрузочную Запись - MBR), до этого содержащую загрузчик GRUB или LILO. Если загрузчик был переписан таким образом, вы не сможете загрузить Red Hat Linux, если не воспользуетесь режимом восстановления.

Другая распространенная проблема возникает, если вы с помощью инструмента разбиения диска измените размер раздел или создадите новый раздел, используя свободное место, после установки, и это повлияет на порядок ваших разделов. Если номер раздела вашего каталога / изменяется, загрузчик не сможет найти его и подключить раздел. Чтобы исправить эту проблему, загрузитесь в режиме восстановления и измените /boot/grub/grub.conf, если вы используете GRUB или /etc/lilo.conf, если используется LILO.

Аппаратные/Программные проблемы

К этой категории относятся самые разные ситуации. Можно привести два примера: могли отказать жёсткие диски или вы могли позабыть запустить LILO, построив новое ядро (если вы используете LILO в качестве загрузчика). В обоих этих ситуациях вы не сможете загрузить Red Hat Linux. Если вы сможете загрузиться в режиме восстановления, вы сможете решить проблему или как минимум сделать копии самых важных ваших файлов.

Загрузка в режиме восстановления

Чтобы загрузить систему в безопасном режиме, загрузитесь с загрузочного диска Red Hat Linux или компакт-диска Red Hat Linux #1, и введите в приглашении программы установки следующую команду:

boot: linux rescue

Вы можете перейти к приглашении программы установки одним из следующих способов:

  • Загрузив систему с установочной загрузочной дискеты, сделанной из образа boot.img. Этот способ требует, чтобы компакт-диск Red Hat Linux #1 был вставлен в виде образа восстановления или образ восстановления находился на жёстком диске в виде образа ISO. [1]

  • Загрузив компьютер с компакт-диска Red Hat Linux #1.

  • Загрузившись с сетевого диска, сделанного из образа bootnet.img или загрузочного диска PCMCIA, сделанного из pcmcia.img. Вы можете сделать это, только если сетевое подключение исправно. Вам понадобится определить сетевой узел и тип передачи. Информацию о том, как это определить, вы можете найти в разделе Установка по сети в Официальном руководстве по установке Red Hat Linux .

Загрузившись с загрузочного диска или компакт-диска Red Hat Linux #1 и предоставив нужный образ восстановления, вы увидите следующее сообщение:

The rescue environment will now attempt to find your Red HatLinux installation and mount it under the directory

/mnt/sysimage.  You can then make any changes required to yoursystem.  If you want to proceed with this step choose

'Continue'.
If for some reason this process fails you can choose 'Skip' 
and this step will be skipped and you will go directly to a
command shell.

Если вы выберете Continue (Продолжить), система попытается подключить вашу файловую систему в точку /mnt/sysimage. Если это подключение не удастся, она сообщит вам. Если вы выберете Skip (Пропустить), ваша файловая система подключена не будет. Выберите Skip (Пропустить) если вы считаете, что файловая система повреждена.

Как только система окажется в режиме восстановления, на VC (виртуальной консоли) 1 и VC 2 появляется приглашение (используйте сочетание клавиш [Ctrl]-[Alt]-[F1] для перехода к VC 1 и сочетание [Ctrl]-[Alt]-[F2] для доступа к VC 2):

bash#

Если вы выберете Continue для автоматического подключения ваших разделов, вы оказываетесь в режиме одного пользователя.

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

mount -t ext3 /dev/hda5 /foo

В приведенной выше команде, /foo - созданный вами каталог, а /dev/hda5 раздел, который вы хотите подключить. Если раздел имеет тип ext2, замените ext3 на ext2.

Если вы не знаете названий ваших разделов, выполните следующую команду, чтобы просмотреть их:

fdisk -l

Если ваша система подключена и вы хотите сделать раздел вашей системы корневым, выполните команду chroot /mnt/sysimage. Это полезно, если вы хотите выполнять команды, такие как rpm, требующие, чтобы корневой раздел системы был подключен как /. Чтобы выйти из окружения chroot, введите команду exit, и вы вернетесь к приглашению bash#.

В приглашении bash#, вы можете выполнить много полезных команд, включая следующие:

anaconda          gzip        mkfs.ext2   ps
badblocks         head        mknod       python
bash              hwclock     mkraid      python1.5
cat               ifconfig    mkswap      raidstart
chattr            init        mlabel      raidstop
chmod             insmod      mmd         rcp
chroot            less        mmount      rlogin
clock             ln          mmove       rm
collage           loader      modprobe    rmmod
cp                ls          mount       route
cpio              lsattr      mpartition  rpm
dd                lsmod       mrd         rsh
ddcprobe          mattrib     mread       sed
depmode           mbadblocks  mren        sh
df                mcd         mshowfat    sync 
e2fsck            mcopy       mt          tac
fdisk             mdel        mtools      tail
fsck              mdeltree    mtype       tar
fsck.ext2         mdir        mv          touch
fsck.ext3         mdu         mzip        traceroute
ftp               mformat     open        umount
gnome-pty-helper  minfo       pico        uncpio
grep              mkdir       ping        uniq
gunzip            mke2fs      probe       zcat

Загрузка напрямую в режиме одного пользователя

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

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

  1. Если вы определяли пароль GRUB, нажмите p и введите пароль.

  2. Выберите систему Red Hat Linux с версией ядра, которую вы хотите загрузить и нажмите e для редактирования. Вы увидите список параметров файла конфигурации только что выбранной системы.

  3. Выберите строку, начинающуюся с kernel и нажмите e чтобы изменить её.

  4. Перейдите к концу строки и введите single в виде отдельного параметра (нажмите [пробел], а затем введите single). Нажмите [Enter] чтобы выйти из режима редактирования.

  5. Вернитесь к экрану GRUB и нажмите b чтобы загрузить систему в режиме одного пользователя.

Если вы используете LILO, укажите один из этих параметров в приглашении загрузчика LILO (если используется графический вариант LILO, нажмите [Ctrl]-[x] для выхода из графического режима и перехода к приглашению boot:):

boot: linux single
boot: linux emergency

В режиме одного пользователя ваш компьютер загружается до уровня выполнения 1. Локальные файловые системы будут подключены, но сеть запущена не будет. Тем не менее у вас будет полезная оболочка для обслуживания системы.

В аварийном (emergency) режиме, система будет загружена с минимальным окружением. Корневая файловая система будет подключена в режиме только-чтение и почти ничего не будет запущено. Основным преимуществом аварийного режима по сравнению с linux single, является то, что файлы init не загружаются. Если init поврежден и не работает, вы всё же можете подключить файловые системы чтобы восстановить данные, которые могут быть потеряны во время переустановки.

Перестраивали ли вы когда-либо ядро, и поспешив проверить сделанное, перегружались до запуска /sbin/lilo? Если вы не делали запись о старом ядре в файле lilo.conf, вы сталкивались с проблемой. Если вы хотите узнать решение этой проблемы, прочитайте этот раздел.

Скорее всего, вы сможете загрузить вашу систему Red Hat Linux с загрузочного диска Red Hat Linux [1] с подключенной файловой системой и приступить к решению. Вот как это делается:

Введите следующую команду в ответ на приглашение загрузчика boot::

linux single root=/dev/hdXX initrd=

Замените XX в /dev/hdXX буквой и числом, соответствующим корневому разделу.

Что эта команда делает? Сначала, она запускает процесс загрузки, установив корневой раздел в качестве корня "/". Параметр initrd без параметров указывает, что образ находится на загрузочном диске, в этом случае вы сразу попадаете в режим одного пользователя.

Если отрицательная сторона использования этого приёма? К сожалению, да. Так как в ядро на загрузочном диске Red Hat Linux встроена только поддержка IDE, если в вашем компьютере используется SCSI, вы не сможете сделать этого. В этом случае, вы сможете воспользоваться режимом восстановления, выполнив команду linux rescue как показано выше.

Замечания

[1]

Чтобы создать установочную дискету, вставьте пустой диск и, используя файл образа images/boot.img на компакт-диске Red Hat Linux #1, выполните команду dd if=boot.img of=/dev/fd0.