SystemRescueCD
System Rescue CD — основанный на Gentoo (?) Linux LiveCD для восстановления системы и сопутствующих задач.
- 32 или 64 бита (для chroot в испорченную систему)
- memtest
- ntpasswd — сброс пароля Windows
- freedos
- gag boot manager
- ranish partition manager
- aida hardware diagnostic tool
- очистка диска dban
- низкоуровневая проверка диска mhdd
- netboot/etherboot
При загрузке предлагается выбрать раскладку клавиатуры. В случае выбора русской раскладки (в версии 1.6.3), загружается русская и английская, переключение между языками ввода, через Ctrl+Shift.
Грузится в консоль, запуск графической среды — скриптом wizard.
- gparted
- текстовый редактор (geany)
- файловый менеджер (emelFM2)
- эмуляторы терминала (xfce-terminal, mrxvt-terminal)
- запись CD (xfburn)
- firefox
- xfce settings
- gvim
- gtk+ lshw
- testdisk в терминале
- partimage
- midnight commander
- просмотр pdf
- архиватор (xarchiver)
- xfce или jwm
На что способен дистрибутив SystemRescueCd Linux
Итак, еще даже не загрузив Gentoo, мы уже получили богатый набор утилит различного назначения. Даже пользователь, не искушенный в Linux, легко сможет воспользоваться данным Live-CD, так как большинство утилит содержат интуитивный понятный интерфейс (чаще всего из псевдографики). Перейдем к обзору основной системы.
Выбрав удобный видеорежим, запустите систему. Во время загрузки вас спросят, какую кодовую страницу следует использовать (русская за номером 31). Добравшись до строки приглашения, можно будет увидеть небольшие подсказки по работе с системой (рис. 2), работа ведется по умолчанию от пользователя root.
Рисунок 2. Строка приглашения c основными подсказками
После загрузки будет доступно 1388 команд (полноценный Linux, это вам не busybox). Никаких графических оболочек типа KDE или GNOME нет (кроме Midnight Commander), хотя, собственно, зачем они нужны на административном диске? В качестве командного интерпретатора (шелла) используется zsh версии 4.2.0, любители bash смогут найти последний по стандартному пути /bin/bash.
При беглом обзоре стандартных утилит хотелось бы выделить их разнообразие:
- Редакторы текста – vim, nano, zile, joe и графический qtinyeditor.
- Архиваторы – gzip, zip, rar, tar, arj, dar.
- Утилиты для записи CD и DVD – cdrecord, cdrtools, dvd-rw-tools.
- Веб-браузеры – links и lynx.
- Сканер Nmap (версии 3.55).
- Пакет утилит для работы с файлами ОС DOS – Mtools (mmount, mformat. ).
- Набор утилит – ntfstools (ntfsclone, ntfsresize. ).
- Антивирус ClamAV (версии 0.75.1, обновление баз от 26 февраля 2006 г.).
- Утилиты для работы с партициями – GNU Parted, Qtparted, Partimage.
Как видно из списка выше, для решения различных задач можно выбирать инструменты, которые удобнее, привычнее или функциональнее.
Так как дистрибутив ориентирован на задачи для работы с жесткими дисками, были приведены скриншоты утилит с графическим интерфейсом GNU Parted (рис. 3), Qtparted (рис. 4) и Partimage (рис. 5) для ознакомления с ними.
Рисунок 3. Интерфейс GNU Parted
Рисунок 4. Инферфейс Qtparted
Рисунок 5. Интерфейс Partimage
Первые две – программы для создания/удаления партиций (намного функциональнее fdisk), поддерживают файловые системы ext2/3, raiserfs, FAT, NTFS. Замечу лишь то, что GNU Parted не имеет возможности отката действий. Как видно, интерфейсы у них подобные Partition Magic и очень простые.
PartImage – утилита для создания клонов копий партиций (аналог ghost и arcronix), очень жаль, что у данной утилиты поддержка NTFS на экспериментальной стадии, и разработчики предупреждают нас о возможных проблемах при клонировании ntfs дисков, но данную функцию можно выполнить и утилитой ntfsclone.
Не буду останавливаться на описании всех стандартных утилит, думаю, большинство пользователей уже знакомы с mtools, сканером nmap и другими программами. Но рассматривая далее задачу по пересборке дистрибутива, мы все же коснемся нескольких примеров работы различных утилит.
Меня дистрибутив устраивал во многом, но все же нужно было добавить один скрипт для автоматизации клонирования рабочих станций. Многие из нас пересобирали дистрибутивы, основанные на Knoppix, и знают, что эта задача не совсем тривиальна и занимает много времени. Чаще всего в начале нужно создать образ дистрибутива, распаковать его, найти в нем корневую файловую систему (очень часто это небольшой gzip-архив) и заархивированный образ системы (Cloopfs). В SystemRescueCd Linux основной архив находится в корне диска, его объем около 100 Мб (sysrcd.dat запакован Cloop) для работы с ним нам поможет скрипт sysresccd-custom. Итак, рассмотрим подробно разборку и сборку дистрибутива.
Загрузим Gentoo и выделим место на жестком диске для распаковки cloop-образа системы, для этого примонтируем партицию командой:
mount /dev/hda1 /mnt/temp1
Создадим образ с файловой системой ext2:
dd if=/dev/zero of=/mnt/temp1/fs.iso bs=1M count=1200
Примонтируем созданную файловую систему в /mnt/custom, должен заметить, что образ нужно монтировать именно в эту директорию (она уже имеется на диске):
mount -o loop /mnt/temp1/fd.iso /mnt/custom
Теперь распакуем файл-архив sysrcd.dat:
Процесс распаковки, как уже упоминалось, занимает долгое время, с этим, к сожалению, ничего поделать нельзя. После распаковки, зайдя в директорию /mnt/custom/, мы увидим нашу систему, которую можно уже изменять. В качестве примера добавим скрипт MyLanCloon в папку bin. Сам скрипт рассмотрим далее.
Теперь снова запакуем систему (в cloopfs) командой:
sysrescue-costom cloop 300 20000
Должен заметить, что процесс запаковки идет еще дольше, чем распаковка.
Разработчики приготовили для нас еще один сюрприз, после архивирования в cloop мы можем создать файл autorun в папке /mnt/custom/customcd/isoroot/, который выполнится при загрузке системы. Это может быть удобно для установки каких-либо небольших параметров, например установки сети:
ifconfig eth0 192.168.1.200 netmask 255.255.255.0
route add default gw 192.168.1.1
mount -t nfs 192.168.1.10:/home/users /mnt/temp1/
В данном примере мы устанавливаем сетевую оснастку и по протоколу nfs подключаемся к нашему файловому серверу (к домашней папке нужного пользователя).
Удобна установка кодовой страницы в системе на стадии загрузки, если помните, ее необходимо вводить каждый раз (номер 31). Чтобы задать русскую кодовую страницу для нашего будущего дистрибутива, выполним команду:
sysresccd-custom setkmap ru
Теперь создадим главный iso-образ, который позже мы запишем на диск:
sysresccd-custom isogen mysyscd
mysyscd – метка тома будущего диска. Образ и его md5-хеш будут расположены в папке /mnt/custom/customcd/isofile/.
Все готово, можно записывать образ на CD и грузиться в систему. Все данные операции можно было выполнить и стандартными утилитами cloop-util и cdrtool, но это заняло бы больше времени плюс, как уже упоминалось, без соответствующих навыков неопытные пользователи столкнулись бы с проблемами. Если все же любопытно, что делает скрипт sysresccd-custom, его можно найти в папке /usr/sbin/.
Я специально вынес скрипт в отдельный раздел, во-первых, из-за его большого размера, а во-вторых, из-за необходимости рассмотреть его подробнее.
Задача: написать скрипт для автоматизации процесса создания и копирования iso-образов клиентских машин на файловый сервер. Копирование будет производиться по протоколу SMB, идентификация образов рабочих станций будет по их MAC-адресу.
Задача тривиальна, и многие используют для её решения большие и зачастую дорогие программные комплексы (Acronix, Ghost…), но скрипт во многом заменяет подобные программы и обладает замечательным свойством – бесконечной расширяемостью. Так как SystemRescueCd Linux обладает богатым инструментарием для работы с партициями и файловыми системами, наши возможности будут ограничены только фантазией (в *nix-области).
# Установка параметров сети
ifconfig eth0 192.168.1.200 netmask 255.255.255.0
route add default gw 192.168.1.1
# Монтирование сетевой папки
mount.smb //192.168.1.10:/Files/ /mnt/temp1/
echo «Mac addres is $»
# Определение файловых систем
dd if=/dev/hda1 bs=512 count=1 | strings | grep FAT
if [ $? -eq 0 ]; then
dd if=/dev/hda1 bs=512 count=1 | strings | grep NTFS
if [ $? -eq 0 ]; then
# Процедура сохранения образа
if [ $FS -eq 1 ]; then
partimage -z1 -o -b -d save /dev/hda1 /mnt/temp1/arhiv/$
if [ $FS -eq 2 ]; then
ntfsclone —save-image /dev/hda1 -o /mnt/temp1/arhiv/$
# Процедура загрузки образа
if [ $FS -eq 1 ]; then
partimage -b restore /dev/hda1 /mnt/temp1/arhiv/$.000
if [ $FS -eq 2 ]; then
ntfsclone —restore-image -O /dev/hda1 /mnt/temp1/arhiv/$
Итак, рассмотрим скрипт подробнее.
Установка параметров сети – стандартными командами ifconfig и route задаем IP-адреса локальной машины и роутера.
Монтирование сетевой папки – монтирование происходит по протоколу smb, сделано это из соображений совместимости с Windows-сетевыми ресурсами, так как файловый сервер может быть и не под управлением ОС Linux. Желающие могут выбрать nfs-протокол, конечно же, если данный сервер установлен в сети. Если требуется обеспечить безопасность при копировании iso-образов, можно задействовать lufs (Linux users file system) и производить монтирование сетевой папки по ssh-протоколу. Также по lufs можно монтировать папки ftp-серверов. Выбирать есть из чего, все зависит от доступных средств, организации сети и ваших предпочтений.
Определение MAC-адреса – как я уже говорил, для идентификации образов рабочих станций мы будем использовать их MAC-адреса. В переменную MACADDRES заносится MAC рабочей станции, впоследствии задействуем его.
Определение файловых систем – так как мы точно не знаем, какая файловая система используется Windows, для начала определим ее. Зная, что в первых 512 байтах жесткого диска (цилиндр 0, головка 0, сектор 1) находится Master Boot Record, проверим, FAT ли это или NTFS. Должен заметить, я исходил из предположения, что на рабочих станциях установлена одна ОС и находится на hda1 (диске C), если установлено 2-3 или более ОС, следует редактировать скрипт либо для выбора конкретной ОС, либо для клонирования всего диска (если необходимо сохранить все операционные системы).
FAT и NTFS – проверяем, какая файловая система на устройстве hda1. Если FAT, то в переменную FS будет занесено значение 1, если NTFS – 2. В дальнейшем это значение нам понадобится для выбора утилит клонирования.
Процедура сохранения образа – как уже упоминалось выше, partimage работает стабильно только с FAT-файловыми системами (FAT12, FAT16 и FAT32) ОС Windows, но при этом обладает большими возможностями. Собственно из-за этого скрипт и разделен на две части: для работы с FAT или NTFS. Из интересных возможностей Partimage стоит выделить то, что он определяет занятое пространство на диске и копирует только его, а не диск целиком (как dd), при этом может очень эффективно архивировать iso-образ (в среднем компрессия составляла 50%).
Сохранение FAT-образа – утилитой partimage сохраняем FAT-образ. Рассмотрим подробно ключи:
partimage -z1 -o -b -d save /dev/hda1 /mnt/temp1/arhiv/$
- z1 – уровень компрессии (z0 – быстрая запаковка, но «слабая» компрессия, z2 – максимальная компрессия, но длительное время запаковки);
- o – если файл с данным именем существует, перезаписать его;
- b – не запрашивать параметры у пользователя в интерактивном меню;
- d – не запрашивать у пользователя дополнительное описание для образа;
- save – указываем partimage, что необходимо копировать информацию с устройства в файл;
- /dev/hda1 – это наш жесткий диск. И последний параметр – имя файла образа, оно будет равно значению переменной MACADDRES.
Сохранение NTFS-образа – для создания образов дисков с файловой системой ntfs воспользуемся утилитой ntfsclone из состава ntfstools. О параметрах ntfsclone:
ntfsclone —save-image /dev/hda1 -o /mnt/temp1/arhiv/$
- save-image – сохранение образа;
- /dev/hda1 – наш жесткий диск;
- o – путь и имя файла образа (будьте внимательны, параметр «-о» в нижнем регистре).
Должен отметить, что ntfsclone, хоть и копирует только занятое пространство на диске, не умеет сжимать образ. В данном случае можно прямо в потоке произвести запаковку, используя gzip, но эта операция займет дополнительное время.
Процедура загрузки образа – распаковывает образ системы. Опять же задействуем для развертывания образов обе утилиты: partimage для FAT-разделов и ntfsclone для NTFS.
Загрузка FAT-образа:
partimage -b restore /dev/hda1 /mnt/temp1/arhiv/$.000
- b – не запрашивать параметры у пользователя в интерактивном меню;
- restore – восстановление образа;
- /dev/hda1 – жесткий диск. Последний параметр – путь до образа, имя файла будет равно значению переменной MACADDRES, плюс расширение «.000».
Загрузка NTFS-образа:
ntfsclone —restore-image -O /dev/hda1 /mnt/temp1/arhiv/$
- restore-image – восстановление образа;
- O – путь до устройства для образа (будьте внимательны, параметр «-O» в верхнем регистре);
- /dev/hda1 – наш жесткий диск. И как всегда, последний параметр – путь до файла образа нашей системы.
Основная функция – основной оператор выбора case: если в консоли выполнить скрипт с параметром save – выполнится рассматриваемая выше процедура сохранения образа, если load – сработает процедура загрузки образ. Примеры: «MyLanCloon save» или «MyLanCloon load».
Все, скрипт готов к работе в составе SystemRescueCd Linux для автоматизации работы по клонированию образов операционных систем рабочих станций. Конечно, скрипт далек от идеального – не хватает проверок на существование файлов, подтверждений на выполняемые действия и других «красивых» процедур. Например, можно расширить основную функцию case вот таким образом:
В этом случае уже не будет иметь значения, в каком регистре набираются параметры save и load. Еще одной очень полезной функцией было бы создание процедуры для установки мастер-образа на «чистый» жесткий диск. Но скрипт получился и так громоздким, мы бы совсем отвлеклись от основного обзора дистрибутива SystemRescueCd Linux и его утилит. Если у вас есть желание доработать скрипт, но не хватает опыта в подобных вещах, очень рекомендую документ «Advanced Bash Scripting» на русском языке, расположенный по адресу.
SystemRescueCd Linux – функциональный, быстрый, современный дистрибутив, подходящий для работы как с домашними машинами, так и в небольших корпоративных сетях (после необходимых доработок).
Форум проекта поддерживается на протяжении всего существования дистрибутива, несмотря на некоторые «паузы» в выпуске новых релизов.
К положительным моментам относится наличие скрипта sysresccd-custom, который позволяет легко пересобрать дистрибутив.
Как многие, наверное, успели заметить, размер дистрибутива (121 Мб) позволяет хранить на диске мастер-образ Windows-системы (до ~580 Мб, что вполне достаточно), также из-за компактности SystemRescueCd Linux можно записать на miniCD, что добавляет дистрибутиву еще один плюс.
На этом все, удачной работы!
Альтернативы SystemRescueCd Linux
Emergencu CD [4] – спасательный дистрибутив, основанный на Gentoo Linux версии ядра 2.4.22. Cодержит графический интерфейс IceWM, достаточно компактен (~180 Мб), но последний релиз от 28 октября 2003 г. Поддерживает большинство наиболее распространенных файловых систем (FAT, ext2/3, NTFS, . ) и сетевых служб (smb, nfs, ssh. ). Программы для работы с партициями Partimage и gpart. Дистрибутив в принципе богат утилитами и компактен, но за 3 прошедших года, к сожалению, успел устареть.
INSERT LiveCD [5] – основанный на Knoppix 4.0.2 версии ядра Linux kernel 2.6.12.5. Последняя доступная версия 1.3.6 от 24 февраля 2006 года. Дистрибутив поддерживает файловые системы ext2/3, reiserfs, FAT, NTFS (для режима записи используется captive или ntfstools) и другие. Включены сетевые службы nfs, smb, cifs, ssh и afs. Дистрибутив – наиболее близкий конкурент SystemRescueCd Linux, но есть одна странность. На официальном сайте, в ChangeLog говорится о выпуске версии 1.3.8 от 10.10.2006, но на ftp дистрибутива данной версии нет. Возможно, это ошибка, а, может быть, когда вы будете держать журнал в руках, версия дистрибутива и «объявится»?
- http://www.sysresccd.org – официальный сайт дистрибутива Sysrescuecd Linux.
- Максимов И. FreeDos – новый взгляд на старые вещи. //«Системный администратор», №2, февраль 2006 г. – C. 32-37.
- http://gazette.linux.ru.net/rus/articles/abs-guide/index.html – «Advanced Bash-Scripting Guide. Искусство программирования на языке сценариев командной оболочки».
- http://emergencycd2.sourceforge.net/index.ru.html – официальный сайт Cool Linux CD и Emergency CD.
- http://www.inside-security.de – официальный сайт дистрибутива INSERT LiveCD.
LXF169: Востановление данных SystemRescueCD
Наш эксперт. У Нейла Ботвика по компьютеру в каждой комнате, но по соображениям безопасности он ни за что не скажет вам, где находится центральный сервер.
Обширное сообщество разработчиков 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-брелок, загрузитесь с компакт-диска, вставьте брелок подходящего объема и выполните команды
Можно это сделать и без загрузки с компакт-диска (что удобно, если у вас нет оптического привода), смонтировав ISO-образ из обычного дистрибутива.
sudo mount -o loop systemrescuecd-x86-3.1.2.iso /mnt/tmp
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”
loopback loop $sysresiso
linux (loop)/isolinux/rescue64 setkmap=uk
Имя файла – это имя файла ISO-образа; я копирую файл в /boot и затем создаю символическую ссылку на sysrescd.iso, чтобы не менять меню Grub. Выберите в качестве ядра rescue32 или rescue64 – автоматическое определение [autodetection] здесь недоступно, да и не нужно. Затем сделайте файл исполняемым и скомандуйте
Теперь у вас в меню загрузки есть 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, запуская указанную команду для появления оболочки. Теперь вы по сути зашли в свой дистрибутив, не загрузив его, и можно выполнять большинство команд, таких как
для сброса пароля root. Закончив, наберите logout (или нажмите Ctrl + D) для выхода из chroot-оболочки, размонтируйте то, что смонтировали ранее – и перезагрузитесь.
Добавление собственных возможностей
Сайт SystemRescueCd, www.sysresccd.org, содержит массу информации по добавлению собственных возможностей, и на самом диске есть несколько скриптов, которые помогут в этом. Однако в большинстве случаев это, скорее всего, не понадобится. Программ, имеющихся на диске, достаточно для подавляющего большинства ситуаций, даже если у вас зашифрованные файловые системы в томах LVM в RAID-массиве. Вам может понадобиться добавить немного данных, а это проще сделать с USB-устройством. USB-брелки ныне достаточно дешевы, чтобы на одном можно было уместить систему восстановления и резервные копии. Все, что вам нужно – установить на брелок SystemRescueCD, это очистит брелок. Затем создайте на брелке каталог, скажем, data, чтобы файлы были отдельно, и скопируйте туда необходимые файлы. После загрузки в Live-окружение ваши файлы будут доступны в каталоге /livemnt/boot/data, если вы не пользовались опцией docache; в этом случае придется смонтировать брелок вручную самим.
Если при каждой загрузке с SystemRescueCD приходится выполнять одни и те же команды, поместите их в скрипт autorun в корне USB-брелка. Можно задать несколько таких файлов для различных ситуаций, привязав их к различным пунктам меню загрузки. Более подробно об этом и обо многих других аспектах использования и настройки SystemRescueCD см. на сайте. |
Восстановите данные с помощью инструментальных средств Linux
Оригинал: Get Your Data Back with Linux-Based Data Recovery Tools
Автор: Jack Wallen
Дата публикации: 12 February 2015
Перевод: Н.Ромоданов
Дата перевода: апрель 2015 г.
Данные имеют решающее значение в нашей личной и профессиональной жизни. Без данных мы могли бы потеряться в огромном пространстве небытия. Таблицы, электронная почта, документы, контакты, базы данных, файлы, папки — список можно продолжать и продолжать. В идеальном мире, каждый байт локального хранилища должен иметь резервную копию на внешнем жестком диске или в облачном сервисе.
Мы не всегда живем в идеальном мире.
Иногда данные требуется восстанавливать. Когда случается подобная трагедия, то хорошо бы знать, что у вас под рукой есть инструменты, с помощью которых можно выполнить такую работу. К счастью, для восстановления данных достаточно часто используется Linux. В самом деле, есть ряд надежных инструментальных средств, которыми вы можете воспользоваться для восстановления потерянных данных. Я хочу познакомить вас с некоторыми из них, которые позволят вам выполнить восстановление данных.
Конечно, как и в любой ситуации, связанной с восстановлением потерянных данных ─ нет ничего идеального. Вы можете перепробовать все возможности лишь с тем, чтобы узнать, что данные восстановить не удается. Таковы особенности цифровой эпохи. Поэтому, в случаях, когда у вас начинают возникать проблемы с системой, сделайте все, чтобы у вас есть надежная и самая свежая резервная копия.
SystemRescueCD
Давайте сначала начнем с тех инструментальных средств, которые помогут вам восстановить данные с машины, у которой возникли проблемы с файловой системой или с разделами. С такими инструментальными средствами работать, как правило, проще, поскольку у них сразу «все включено». Среди таких инструментов моим любимым является спасательный диск SystemRescueCD . Этот спасательный диск поддерживает работу с большинством известных форматов разделов, включает в себя все, что необходимо для восстановления данных (в том числе ssfdisk, Gparted, TestDisk, PhotoRec, FSArchiver, а также многое другое), а также в своем составе много других удобных в работе инструментальных средств.
Как и в случае большинства спасательных дисков, работа с системой SystemRescueCD начинается с загрузки с компакт-диска или с устройства USB, после чего можно начинать использовать инструменты, предназначенные для работы с файловой системой. В отличие от многих других аналогичных спасательных дисков, в SystemRescueCD предоставляется графическая среда, которая поможет вам при восстановлении данных (рис.1).
Рис.1: Графическая среда системы SystemRescueCD
Если вы переносите восстанавливаемые данные с одного компьютера на другой, вам потребуется подключить к системе внешний жесткий диск для того, чтобы можно было на него переносить восстановленные данные (или вы можете воспользоваться встроенной поддержкой Samba и копировать данные в каталог, расположенные в локальной сети). Даже если задача состоит в восстановлении или в приведении в порядок таблицы разделов, я в любом случае настоятельно рекомендую скопировать конфиденциальные данные ─ на тот случай, если таблица разделов или файловая система будут еще больше повреждены.
Есть и другие системы восстановления, которые по своим возможностям похожи на SystemRescueCD. У каждой из них есть свои плюсы и минусы, но, в конце концов, с их помощью можно выполнить необходимую работу. К числу некоторых моих любимых дистрибутивов/систем восстановления данных относятся следующие:
- Trinity Rescue Kit
- Knoppix
- Ultimate Boot CD
Отдельные инструменты восстановления данных
После того, как у вас уже будет дистрибутив с комплектом инструментальных средств, вы перейдете к изучению отдельных инструментов, предназначенных для восстановления данных. В системе Linux есть почти любой инструментарий, которые потребуется для выполнения этой задачи. Давайте рассмотрим некоторые из них.
Ddrescue
Если вы ищете инструментальное средство командной строки, которое будет копировать данные с одного файла или блочного устройства на другое, то вам необходимо приложение Ddrescue. Есть несколько особенностей, которые вы должны знать об использовании Ddrescue:
- Никогда не используйте этот инструмент для чтения/записи смонтированного устройства или раздела.
- Не пытайтесь восстановить файловую систему, имеющую ошибки ввода/вывода.
- То место, куда будет осуществляться копирование, будет затерто ─ поэтому убедитесь, что там не записаны какие-либо важные данные.
Этот инструмент отлично подходит для переноса данных с неисправного диска на внешнее устройство. Сначала его необходимо будет установить в вашей рабочей системе, подключить через USB неисправный диск и диск, на который данные будут сохраняться, а затем использовать его для извлечения необходимых данных.
Установку этого инструмента в системе Ubuntu можно выполнить с помощью следующей команды:
sudo apt-get install gddrescue
Структура команда Ddrescue следующая:
ddrescue [параметры] входной_файл выходной_файл [журнальный_файл]
Давайте воспользуемся программой Ddrescue для копирования раздела с диска /dev/sdg на диск /dev/sdb. Команда (работает в системе с использованием команды sudo) будет выглядеть следующим образом:
sudo ddrescue /dev/sdg /dev/sdb
Указанная выше команда скопирует все с неисправного устройства на целое. Данные восстановлены!
Testdisk
На самом деле это инструментальное средство восстановления данных не пытается копировать данные. Вместо этого делается попытка исправить проблемы на уровне разделов, из-за которых вы не можете получить доступ или не можете восстановить данные. Testdisk может:
- Восстановить потерянные разделы
- Сделать диски снова загружаемыми
- Исправить таблицу разделов
- Восстановить главную загрузочную запись
- Восстановить загрузочные сектора
- Восстановить таблицы файловых систем
- Восстановить файлы, удаленные в файловых системах NTFS, FAT, exFAT и ext2
- Копировать файлы из удаленных файловых систем NTFS, FAT, exFAT и ext2/3/4
Testdisk является инструментальным средством ncurses, работающим в терминале (рис.2).
Рис.2: Работа приложения testdisk с внешним диском.
Чтобы в системе Ubuntu установить приложение Testdisk, выполните следующую команду:
sudo apt-get install testdisk
С помощью команды sudo testdisk запустите этот инструмент и воспользуйтесь простым мастером для начала работы с подключенных внешним диском.
Photorec
Если вам нужно восстановить потерянные файлы, фотографии, видео и т. д., то приложение Photorec является именно тем, что вам необходимо. Этот инструмент является частью приложения Testdisk, поэтому после того, вы установите TestDisk, также можно будет использовать приложение Photorec. Этот инструмент полностью игнорирует файловую систему и ищет непосредственно исходные данные. Это означает, что даже если ваша файловая система повреждена, есть шанс восстановить данные.
Чтобы запустить приложение Photorec, выполните следующую команду:
sudo photorec
Интерфейс Photorec аналогичен интерфейсу приложения Testdisk. По мере работы Photorec интерфейс будет отображать восстанавливаемые файлов в режиме реального времени (рис.3).
Рис.3: Photorec в действии
Вам необходимо убедиться в том, что на диске, на который будет происходить копирование, достаточно места для сохранения спасенных данных (вы можете копировать данные на внутреннее устройство хранения данных или на внешнее устройство).
Если вам нужны инструменты, которые помогут вам восстанавливать данные в системе Linux, то таких инструментов достаточно много. В данной статье рассматриваются те из них, которыми обычно пользуются администраторы — от полностью укомплектованных дисков восстановления и до отдельных инструментов. Есть много других средств, которые смогут помочь вам восстановить данные.
Подробную информацию о подобных средствах можно найти на форуме System Management Forum , где вы можете поговорить с вашими коллегами и узнать еще больше сведений о восстановлении данных.