LXF169: Востановление данных SystemRescueCD
|
|
|
Восстановление данных. Запустите этот мощный Live-дистрибутив, спасая свою систему
Содержание |
System Rescue: Live-ремонт
Нейл Ботвик представляет небольшой полезный Live-дистрибутив, который придет к вам на помощь при серьезном кризисе в системе.
Обширное сообщество разработчиков Linux достойно благодарности за многие новшества. Одно из самых популярных, но, возможно, недооцененных – дистрибутив Live CD. С тех пор, как Клаус Кноппер [Klaus Knopper] выпустил свой первый Live CD Knoppix 13 лет назад, для запуска Linux без установки системы и даже без рабочего жесткого диска было достаточно вставить компакт-диск в подходящий привод и перезагрузиться. Теперь в большинстве дистрибутивов Live CD или DVD используется как основа для установки, но они также очень полезны, если что-то пошло наперекосяк и система перестала загружаться. Для этого можно обойтись и установочными дисками, но они громоздки и содержат массу лишнего, поэтому для них часто нужен DVD или объемистая флэшка. По-настоящему удобным был бы небольшой дистрибутив, который можно записать на компакт-диск или USB-брелок и всегда иметь под рукой на случай аварии.
Такой компакт-диск для спасения системы есть, и это SystemRescueCD! Это мой любимейший из многих Live-дистрибутивов (в противоположность дистрибутивам для установки систем на настольный компьютер). Последний ISO-образ для такого небольшого пакета весит 350 МБ. Он содержит массу полезных программ для восстановления систем Linux и Windows. И все это поместится на любой брелок, да еще останется достаточно места на более традиционное применение брелка – например, для переноса файлов между компьютерами.
Опции загрузки
Загрузите последнюю версию образа с www.sysresccd.org. На время написания статьи это 3.1.2, но System Rescue CD часто обновляется, и когда вы будете это читать, вероятно, будет уже более свежая версия. Запишите ее на компакт-диск как обычно, и загрузитесь с него, чтобы увидеть первоначальное меню загрузки. Опций загрузки многовато, но по умолчанию они вполне разумны. SystemRescueCD поставляется с 32-битным и 64-битным ядрами. 64-битную систему можно загрузить с обоих, так как все программы на диске 32-битные, но если вам нужно запускать из установленной системы 64-битные программы, например, изменить корневой каталог с chroot, чтобы решить какую-то проблему, воспользуйтесь 64-битным ядром. В последних версиях нужное ядро определяется автоматически по типу процессора, поэтому в большинстве случаев можно выбрать готовый вариант. Однако есть несколько дополнительных команд, которые можно добавить в процесс загрузки; чтобы увидеть все опции, нажимайте клавиши с F2 по F7.
Для каждого ядра есть два варианта загрузки – если стандартное ядро не загружается, попробуйте альтернативное. Среди интересных опций – docache, которая загружает весь образ в оперативную память, то есть после загрузки компьютера вы сможете извлечь диск и вставить другой для восстановления системы. С опцией setkmap вам не будут предлагать выбрать раскладку клавиатуры, а rootpass позволяет задать пароль root. Они особенно удобны в собственной версии дистрибутива (подробнее об этом позже), так как с ними вы сможете загрузить сервер без монитора с компакт-диска и подключиться к нему по SSH.
Лучшая оболочка
После загрузки системы вы попадете в командную строку (SystemRescueCD использует превосходную оболочку Zsh, но пользователи Bash почувствуют себя в ней как дома): ведь для диска восстановления системы нам не нужен графический интерфейс. Ах, нужен? Тогда наберите в командной строке startx, либо при загрузке выберите седьмой пункт меню. В нем к списку опций загрузки добавляется dostartx, и все так и сделается само.
Пользуетесь ли вы графическим интерфейсом или консолью, помните, что при загрузке системы вы заходите в нее полноправно, от имени root. Поэтому справедливы обычные предупреждения – вы сможете разрушить систему, и если сделаете это, любуйтесь на обломки. Это также значит, что каждый, у кого есть SystemRescueCD, может получить доступ администратора. Если компьютер находится в небезопасном месте, как большинство ноутбуков, отключите загрузку с USB или CD в BIOS и задайте пароль для BIOS, чтобы никто не мог эти настройки вернуть.
Компакт-диски несколько громоздки – флэшки гораздо удобнее, особенно если у вас тонкий ноутбук без оптического привода. Чтобы скопировать SystemRescueCD на USB-брелок, загрузитесь с компакт-диска, вставьте брелок подходящего объема и выполните команды
/livemnt/boot
./install.sh
Можно это сделать и без загрузки с компакт-диска (что удобно, если у вас нет оптического привода), смонтировав ISO-образ из обычного дистрибутива.
sudo mount -o loop systemrescuecd-x86-3.1.2.iso /mnt/tmp
cd /mnt/tmp
sudo ./usb_inst.sh
cd
sudo umount /mnt/tmp
Этот скрипт пишет данные в файловую систему USB-брелка. В отличие от утилит-аналогов, он оставляет все не нужное ему место доступным для обычного использования. Одно из преимуществ копирования на брелок в том, что здесь легко менять опции загрузки по умолчанию. Например, чтобы убрать паузу, возникающую, когда в процессе загрузки у вас запрашивается раскладка клавиатуры, откройте syslinux/syslinux.cfg на брелке и добавьте setkmap=uk (ну, или какая вам нужна раскладка) к опциям APPEND всех пунктов меню, которым вы будете пользоваться. Также можно изменить настройку MENU DEFAULT, чтобы по умолчанию выделялся другой пункт меню. Аналогично, изменив параметры TIMEOUT и ONTIMEOUT, можно изменить время отображения меню перед загрузкой пункта меню по умолчанию, и какой пункт меню будет выбираться. Параметр TIMEOUT задается в десятых долях секунды.
Из закона Мэрфи следует, что дисков восстановления системы никогда нет под рукой, когда они нужнее всего, а USB-брелок легко потерять. С SystemRescueCD можно быть всегда готовым к этой ситуации, так как его можно загрузить прямо из ISO-образа на жестком диске, если у вас Grub 2. Скопируйте файл ISO в /boot (/boot мы взяли, потому что это единственная часть файловой системы, гарантированно доступная при загрузке с Grub), затем создайте файл в /etc/grub.d, например, с именем 40_sysrescd, содержащий следующее:
menuentry “System Rescue CD - Std kernel” {
set sysresiso=/sysrescd.iso
loopback loop $sysresiso
linux (loop)/isolinux/rescue64 setkmap=uk
isoloop=$sysresiso
initrd (loop)/isolinux/initram.igz
}
Имя файла – это имя файла ISO-образа; я копирую файл в /boot и затем создаю символическую ссылку на sysrescd.iso, чтобы не менять меню Grub. Выберите в качестве ядра rescue32 или rescue64 – автоматическое определение [autodetection] здесь недоступно, да и не нужно. Затем сделайте файл исполняемым и скомандуйте
sudo update-grub2
Теперь у вас в меню загрузки есть SystemRescueCD. Подумайте о том, о чем мы говорили выше – бесконтрольном root-доступе к компьютеру, если он физически не защищен. Возможно, стоит добавить пароль в Grub, чтобы никто, кроме вас, не мог загрузить этот пункт меню.
Восстановление системы с chroot
Ранее мы упомянули о chroot; это способ изменения корневого каталога, так что можно работать внутри операционной системы, даже не загрузившись в нее. Например, предположим, что ваш друг забыл пароль root для своей системы. Это означает, что, ко всеобщему сожалению, вы не можете войти в систему и сбросить его. Можно загрузиться с Live CD, но напрямую изменить пароль не получится, поэтому загрузитесь с SystemRescueCD и выполните следующие команды (здесь /dev/sdxN содержит корневой раздел вашего дистрибутива):
mount /dev/sdxN /mnt/custom
mount -t proc none /mnt/custom/proc
mount --bind /dev /mnt/custom/dev
cp /etc/resolv.conf /mnt/custom/etc/
chroot /mnt/custom /bin/bash
Мы смонтировали ваш корневой каталог в /mnt/custom, сделали файловые системы /dev/ и /proc доступными в этом каталоге (программа с chroot-доступом не может обращаться к файлам вне chroot) и скопировали /etc/resolv.conf в chroot на случай, если вам понадобится интернет-доступ. Последняя команда заходит в chroot, запуская указанную команду для появления оболочки. Теперь вы по сути зашли в свой дистрибутив, не загрузив его, и можно выполнять большинство команд, таких как
passwd
для сброса пароля root. Закончив, наберите logout (или нажмите Ctrl + D) для выхода из chroot-оболочки, размонтируйте то, что смонтировали ранее – и перезагрузитесь.
Добавление собственных возможностей
Сайт SystemRescueCd, www.sysresccd.org, содержит массу информации по добавлению собственных возможностей, и на самом диске есть несколько скриптов, которые помогут в этом. Однако в большинстве случаев это, скорее всего, не понадобится. Программ, имеющихся на диске, достаточно для подавляющего большинства ситуаций, даже если у вас зашифрованные файловые системы в томах LVM в RAID-массиве. Вам может понадобиться добавить немного данных, а это проще сделать с USB-устройством. USB-брелки ныне достаточно дешевы, чтобы на одном можно было уместить систему восстановления и резервные копии. Все, что вам нужно – установить на брелок SystemRescueCD, это очистит брелок. Затем создайте на брелке каталог, скажем, data, чтобы файлы были отдельно, и скопируйте туда необходимые файлы. После загрузки в Live-окружение ваши файлы будут доступны в каталоге /livemnt/boot/data, если вы не пользовались опцией docache; в этом случае придется смонтировать брелок вручную самим.
Если при каждой загрузке с SystemRescueCD приходится выполнять одни и те же команды, поместите их в скрипт autorun в корне USB-брелка. Можно задать несколько таких файлов для различных ситуаций, привязав их к различным пунктам меню загрузки. Более подробно об этом и обо многих других аспектах использования и настройки SystemRescueCD см. на сайте. |