как сделать образ диска с linux
Создание образа системы в Linux
Клонирование — создание точной копии исходного носителя.
В данном случае клонировать нужно корневую файловую систему Linux.
Клонированная копия и образ — одно и то же.
Зачем это надо?
Если вы администрируете парк компьютеров с одинаковой конфигурацией и хотите установить на них дистрибутив Линукс. Устанавливаем на одной машине, а на другие просто клонируем. Если система «накрылась», вы сможете восстановить её исходное состояние развертыванием образа, где всё уже установлено и настроено под ваши нужды
Как создать образ:
Во избежание недоразумений оговорим те разделы и диски, которые будем использовать
/dev/sda — жесткий диск с рабочей системой, его будем архивировать
/dev/sda1 — раздел, содержащий корневую фс
dev/sdb1 — раздел на внешнем жёстком диске для архивации
1.-Перезагрузитесь в однопользовательском режиме (single)
2.-Введите команду mount, чтобы узнать, какой раздел содержит корневую файловую систему (в примере используется /dev/sda1).Образ этого раздела и нужно сохранить на другом носителе. Например на внешнем жестком диске.
3.-Подмонтируйте внешний HDD
4.-Теперь перемонтируем корневую систему в режим «только для чтения» и создадим образ:
Как восстановить систему из созданного образа:
Нужно иметь под рукой: загрузочный компакт-диск любого дистрибутива Linux. При использовании простого диска (не LiveCD) для перехода на текстовую консоль нажмите Ctrl + Alt + F2.
При установке системы на пустой диск нужно создать разделы. При восстановлении после сбоя, ничего создавать не нужно. Лишь убедитесь в том, что раздел подкачки (Linux swap) создан.
Корнем становится каталог /install, к которому примонтирован новый HDD. В качестве командной оболочки выступает /bin/bash.
3.- Перезпишем загрузчик:
4.-Перезагрузим компьютер командой reboot. Копия системы восстановлена
Как создать образ жёсткого диска Linux
Создание образа жёсткого диска Linux удобно и быстро копирует систему и данные ОС Linux. Например, образ Linux Mint будет содержать не только саму ОС и приложения, но и все настройки. Handy Backup предлагает различные способы создания образов для Linux.
Методы создания образов Linux в Handy Backup из-под ОС Windows
Плагины Disk Image и System Recovery, в настоящий момент доступны для работы только из-под ОС Windows. Вы можете сделать образ диска Linux с помощью любого из этих плагинов, работая с ним из-под Windows, как с неактивным системным диском.
Плагин System Recovery
Этот плагин позволяет посекторно сделать для Linux образ диска со всеми разделами (включая раздел подкачки) в виде виртуального диска (VHD). Такой диск можно просмотреть, записать образ Linux на флешку, подключить к виртуальной машине и т.д.
Плагин Disk Image
С помощью этого плагина можно сохранять не только образ диска Linux, но и сведения об отдельных разделах, во внутреннем двоичном формате. Этот способ отлично подходит, чтобы выполнять для Linux создание образов разделов жёсткого диска, в т.ч. по сети.
Заинтересованы в плагинах System Recovery и Disk Image для Linux версии Handy Backup?
В настоящий момент в версии Handy Backup для Linux нет плагинов System Recovery и Disk Image. Заполните форму обратной связи и напишите ваши пожелания по поводу добавления данных плагинов в версию Handy Backup Linux, чтобы создавать образ диска с Linux непосредственно на локальной машине под управлением ОС Linux!
Заявка на добавление плагина для создания образа диска Linux
Утилита Handy Backup Disaster Recovery
Доступная для бесплатной загрузки во всех решениях Handy Backup, кроме Standard, утилита Disaster Recovery позволяет записать образ Linux на флешку, а затем восстановить этот образ на любой машине без участия загрузочной ОС или Handy Backup (т.н. восстановление «на голое железо»).
Примечание: утилита Disaster Recovery не требует для работы загрузки компьютера с жёсткого диска и использует собственный загрузочный диск ОС на базе Slax 9. Эта программа работает только на локальных компьютерах, требуя физического подключения USB диска.
Преимущества создания образа диска Linux с Handy Backup
Программа Handy Backup позволяет сделать образ диска Linux с использованием различных средств автоматизации работы, в том числе таких инструментов:
Узнать подробнее о функциях бэкапа и создания образа дисков Linux в Handy Backup.
Как создать образ системы Linux в Handy Backup из-под ОС Windows
Чтобы сделать образ диска Linux, пожалуйста, выполните следующую инструкцию:
* Машина и установленный на ней Сетевой Агент в момент создания образа жёсткого диска Linux должны находиться под управлением Windows, так же, как и для локальной версии.
Хранение образа диска Linux
Вы можете не только записать образ Linux на флешку, но и поместить его в любое современное хранилище данных (включая локальные и сетевые диски, устройства USB, серверы FTP/ SFTP/ FTPS, облачные сервисы с протоколом WebDAV, облака Amazon S3, Google Диск, Яндекс Диск и др.).
Предупреждение! Перед тем как сохранить образ системы Linux в хранилище, убедитесь, что выбранное хранилище имеет достаточно свободного места, чтобы вместить в себя файлы образа! Так, образ диска Linux Mint в рабочей системе может иметь размер от 15 до 50 Гб и более.
blog.smart-admin.ru
Блог системного администратора
Снимаем образ утилитой DD в Linux
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/sda1 27G 2,8G 23G 11% /
tmpfs 1005M 0 1005M 0% /dev/shm
2) снимаем образ загрузочного раздела:
# dd if=/dev/sda of=/home/user/moy-mbr.bak count=1 bs=512
3) снимаем образ самого диска:
# dd if=/dev/sda of=/home/user/moy-razdel.bak
# dd if=/home/user/moy-mdr.bak of=/dev/sda
# dd if=/home/user/moy-razdel.bak of=/dev/sda
Можно сразу добавить в архив:
И потом достать из архива:
Вариант 2 от Юрия Акимова
Создание образа жесткого диска при помощи утилиты dd в Unix
Для создания образа жесткого диск не обязательно использовать утилиты на подобии Acronis True Image или Norton Ghost, достаточно простой утилиты dd, которая входит в состав большинства Unix-подобных операционных систем (Linux, FreeBSD, Solaris и т.д.) В статье рассмотрен простой способ создания резервной копии образа жесткого диска при помощи dd. Первым делом необходимо подготовиться к резервному копированию. В данной статье введем следующие обозначения:
При необходимости нужно подставить собственные значения.
Подготовка к созданию образа жесткого диска
Первым делом необходимо загрузиться с любого доступного Live-CD диска, имеющего утилиту dd, и войти в командную строку в качестве суперпользователя. Создаем точку монтирования для проведения резервного копирования.
Монтируем жесткий диск на который необходимо сохранить образ.
Создание образа жесткого диска
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror
Для сокращения размера образа жесткого диска его можно сжать любым архиватором.
Восстановление образа жесткого диска
Для восстановления образа жесткого диска необходимо проделать процедуру обратную процедуре создания этого образа.
При использовании сжатия параллельно необходимо разархивировать образ.
Миграция системы на другой жесткий диск
Для миграции всей системы на другой жесткий диск необходимо, в качестве цели назначения задать расположение нового диска.
После чего при необходимости устанавливаем загрузку с данного жесткого диска. При условии, что новый жесткий диск больше старого, на нем останется неразмеченная область. Ее следует разметить и отформатировать согласно имеющимся требованиям.
Статистика копирования в dd
Главный минус в dd — это отсутствие наглядного представления статистики выполнения процедуры копирования. Однако этот минус можно легко обойти. Достаточно подключиться к другому терминалу.
Определить номер процесса, под которым запущена dd.
Создаем копию Linux и восстанавливаем её после сбоя с помощью Clonezilla
Давеча, решил я поставить себе Linux Debian, для этого выделил на жестком диске, свободное место, чтобы не навредить уже установленным версиям Windows. Опыт по установке, нескольких операционных систем уже был, поэтому не страшась приступил к делу. Проблем при установке практически не возникало, только установка длилась слишком долго, скачивались обновления и т.д., и т.п.
В общем загрузившись, начал первое знакомство, с терминалом, вводя разные команды, пробуя разные варианты из Интернета. Вспоминая свой предыдущий опыт работы с Linux, решил подстраховать себя от своих “кривых рук” создав рабочую копию (образ) раздела с операционной системой Linux.
Для создания и восстановления образа операционных систем семейства Windows, я использую программу Acronis True Image, однако для операционных систем семейства Linux она не годится.
Почитав в Интернете и опробовав несколько вариантов, я остановился на Clonezilla — это бесплатная программа, которая может создать точную копию (образ) жёсткого диска или его отдельного раздела. Программа работает и запускается в своей собственной загрузочной операционной среде, с помощью USB-диска, CD-ROM или DVD-ROM носителя.
Clonezilla поддерживает практически все файловые системы, имеет не высокие системные требования, сайт с подробной документацией и постоянные обновления.
Создаем и сохраняем образ раздела на внешний жесткий диск
1. Скачиваем ISO образ программы Clonezilla.
2. Скачиваем утилиту Tuxboot, для создания USB-носителя.
Предварительно USB-носитель необходимо отформатировать в файловую систему FAT32.
3. Вставляем USB-носитель в компьютер, запускаем утилиту Tuxboot, указываем путь к файлу ISO, затем выбираем в проводнике, предварительно отформатированный USB-носитель и нажимаем кнопку OK. Ждем окончания процесса копирования файлов и создания загрузчика на USB-носителе (Флешки).
4. Перезагружаем компьютер, предварительно выставив в BIOS, загрузку с USB-носителя.
В большинстве случаев, настройки по умолчанию самые оптимальные, но, если при загрузке Вы получаете ошибку попробуйте другие варианты.
5. Перед вами главное окно программы Clonezilla, если в течении 30 секунд, Вы не сделаете выбор, программа загрузится по умолчанию.
6. Выберите нужный язык, нажав клавишу Ввод (Enter) или нажмите кнопку OK мышкой.
7. Если вам необходимо, изменить конфигурацию клавиатуры, выберите “Сменить раскладку клавиатуры” и укажите нужную. В противном случае оставьте все по умолчанию, для продолжения нажмите кнопку OK.
8. Выберите “Запуск Clonezilla” и нажмите кнопку OK.
9. Для выбора режима работы утилиты Clonzilla, выделите нужный вариант и нажмите кнопку OK. Если необходимо выбрать несколько вариантов, нажмите клавишу пробел и выбранный пункт будет помечен звездочкой.
10. Для создания образа (копии) необходимо указать устройство, с которого и на который будут читать и сохранять данные. Например, это могут быть, внешние и внутренние жесткие диски, USB-носители и др.
Так как мы будем использовать внешний жесткий диск, то выбираем “local_dev” и нажимаем кнопку OK.
11. Теперь вы можете подключить USB-носитель к компьютеру, конечно если не сделали это заранее. После подключения, подождите несколько секунд и нажмите клавишу Ввод (Enter).
12. Перед вами устройства хранения данных, которые были обнаружены Clonezilla при сканировании. Для продолжения нажмите сочетание клавиш CTRL+C.
В моем примере это внешний жесткий диск «Transcend Samsung…640GB».
13. Теперь необходимо указать устройство или раздел, на котором будет создаваться (размещен) наш образ. Выделите нужное устройство и нажмите Ввод (Enter) или кнопку OK.
14. Если необходимо поместить создаваемый образ в какой-нибудь каталог, то перейдите в него и нажмите кнопку Done.
По умолчанию образ будет создан в корневом каталоге подключенного устройства или раздела жесткого диска.
15. Для продолжения нажмите Ввод (Enter).
Выбрав “Начальный уровень” мастера расширенных настроек, вы сразу приступите к созданию образа, приняв все настройки по умолчанию, пропустив дополнительные настройки и опции.
16. Но я всегда предпочитаю “Экспертный уровень”, он позволяет более гибко настроить систему. Итак, выбираем режим «Expert» и нажимаем кнопку OK.
17. Выбирайте режим saveparts – так как сохраняем один раздел с Linux как образ, на внешний жесткий диск.
Режим savedisk – позволяет создать образ всего жесткого диска (со всеми разделами).
18. Введите свое имя сохраняемого образа или оставьте все по умолчанию, для продолжения нажмите Ввод (Enter) или кнопку OK.
19. На снимке с экрана выше, вы видите все разделы моего жесткого диска, выбираю раздел ”sda10” с Linux нажав клавишу пробел и отметив звездочкой, для продолжения нажимайте кнопку OK или Ввод (Enter).
20. Выставить приоритет работы различных программы сохранения и восстановления данных вы можете здесь. Настройки по умолчанию оптимальны, для продолжения нажимайте кнопку OK или Ввод (Enter).
21. Включить дополнительные параметры по работе с разделами, вы можете здесь. Для простого копирования и восстановления настройки оптимальны, для продолжения нажимайте кнопку OK или Ввод (Enter).
22. Выбрать опции сжатия вы можете здесь, настройки по умолчанию оптимальны, для продолжения нажимайте кнопку OK или Ввод (Enter).
23. По умолчанию установлен размер образов 4096 Мбайт для файловой системы FAT32. Я предпочел не разбивать файл образа на несколько томов, поэтому указал размер 1 000 000, для продолжения нажимайте кнопку OK или Ввод (Enter).
24. Включить проверку и восстановление файловой системы Linux вы можете здесь. По умолчанию проверка пропускается, для продолжения нажимайте кнопку OK или Ввод (Enter).
25. Очень полезная функция проверки сохранённого образа, по умолчанию проверка включена, для продолжения нажимайте кнопку OK или Ввод (Enter).
26. Если вы заботитесь о конфиденциальности, то можете включить шифрование создаваемого образа, по умолчанию шифрование отключено, для продолжения нажимайте кнопку OK или Ввод (Enter).
27. Действие (ничего, перезагрузка, выключение) которые программа Clonezilla предпримет после создания или восстановления образа, по умолчанию действие отключено, для продолжения нажимайте кнопку OK или Ввод (Enter).
28. Все действия и настройки сохранены, программа Clonezilla выводит подробную информацию на экран и ждет подтверждения начало работы, для продолжения нажимайте Ввод (Enter), затем введите букву “y” и снова нажимайте Ввод (Enter).
29. Программа начнет свою работу, выводя на экран информацию о происходящем процессе, по окончанию которого вам будет предложено выбрать: Выключить питание, перезагрузить компьютер или начать все сначала.
И так, мы закончили создание образа одного из разделов жесткого диска на котором была установлена операционная система Linux Debian.
Восстанавливаем ранее созданный образ раздела с внешнего жесткого диска
Теперь, чтобы восстановить образ (копию) созданного раздела, необходимо повторить, до пункта 12 все шаги, описанные выше.
Если по каким-либо причинам, вы перенесли созданный образ на другой носитель, то его необходимо подключить к компьютеру и указать место размещения созданного образа.
13. Укажите путь к файлу с образом. Если вы поместили образ в папку, то перейдите в неё используя кнопку Browse, для продолжения нажимайте кнопку Done или Ввод (Enter).
14. Для продолжения нажмите Ввод (Enter).
15. Выбрав “Начальный уровень” мастера расширенных настроек, вы сразу приступите к восстановлению созданного образа, приняв все настройки по умолчанию.
Но я всегда предпочитаю “Экспертный уровень”, он позволяет более гибко настроить систему. Итак, выбираем нужный режим и нажимаем кнопку OK.
16. Для восстановления поврежденного раздела из ранее созданного образа, необходимо выбрать пункт “restoreparts”, затем нажимаем кнопку OK.
17. Если вы создавали несколько образов (копий) операционной системы, то выбираем нужный и нажимаем кнопку OK.
18. Программа Clonezilla показывает, какие разделы находятся в образе, выбираем нужный и нажимаем кнопку OK. Если вы сохраняли несколько разделов, то будут показаны все, не ошибитесь при выборе!
19. Внимание! Один из самых ответственных моментов восстановления. Здесь необходимо выбрать раздел, на который будет восстановлен ранее созданный образ.
Все данные на этом разделе будут уничтожены, поэтому рекомендую, обязательно запомнить имя устройства, размер и файловую систему при создании образа раздела. В моем случае это: имя устройства — sda10, размер — 17,7G, файловая система — ext4.
И так, выбираем нужный раздел и нажимаем кнопку OK.
20. Здесь вы можете добавить дополнительные параметры, при восстановлении образа. Если не знаете, что выбрать, оставьте все значения по умолчанию они оптимальны. Для продолжения нажимаем кнопку OK или Ввод (Enter).
21. Здесь вы можете добавить расширенные дополнительные параметры, при восстановлении образа. Если не знаете, что выбрать, оставьте все значения по умолчанию, они оптимальны. Для продолжения нажимаем кнопку OK или Ввод (Enter).
22. Ничего не меняем, для продолжения нажимаем кнопку OK или Ввод (Enter). В случае повреждения сохраненного образа, эта опция не даст вам его восстановить.
23. Выберите действие (ничего, перезагрузка, выключение) которые программа Clonezilla предпримет после создания или восстановления образа, по умолчанию действие отключено, для продолжения нажимайте кнопку OK или Ввод (Enter).
24. Все действия и настройки сохранены, программа Clonezilla выводит подробную информацию на экран и ждет подтверждения начало работы, для продолжения нажимайте Ввод (Enter), начнется проверка сохранённого образа, по окончании которой вам снова необходимо нажать Ввод (Enter).
Программа дважды спросит вашего разрешения о начале операции восстановления, поэтому дважды введите букву “y” и нажимайте Ввод (Enter).
Необходимость дважды подтверждать свои намерения связана, с удалением всех данных с указанных разделов и возможно перезаписи загрузчика, что может привести к невозможности нормальной загрузки компьютера.
Программа Clonezilla начнет свою работу, ход которой будет отображаться в текущем окне, в случае успешного завершения, будет выбрано действие, указанное вами в шаге 19.
Работа программы проверена мной лично на ноутбуке с несколькими ОС, сначала была установлена операционная система Linux на выделенный раздел, затем был создана копия (образ) этого раздела, через некоторое время сохранённая копия была успешно восстановлена.
Копирование разделов жёсткого диска средствами GNU/Linux: как обойтись загрузочной флешкой там, где раньше нужен был Акронис
С тех пор как до меня дошла благая весть о существовании операционной системы под названием GNU/Linux, которую используют все настоящие программисты, я несколько раз пытался заменить ей детище Билла Гейтса и несколько раз потерпел неудачу.
Гуру поблизости отсутствовали, доступ к интернету был жёстко ограничен и потому любая нетривиальная задача становилась в те времена совершенно нерешаемой.
Потом, когда появился безлимитный интернет, вследствие чего с получением софта и знаний стало существенно легче, я настроил себе дуал бут и стал осваивать Убунту.
Основные сложности в процессе переезда создались в первую очередь из за необходимости бросить знакомые практически с самого детства программки, которые попросту отсутствуют в операционной системе для настоящих программистов.
В большинстве случаев это было не фатально. Вместо привычного foobar всегда можно послушать музыку на Rhythmbox. Вместо Microsoft Office есть OpenOffice. Да, его совместимость с продуктом корпорации зла порой оставляет желать лучшего, но им вполне можно пользоваться для решения повседневных задач среднестатистического пользователя. Обо всяких Файрфоксах, Операх и Хромах я вообще молчу.
Но в некоторых случаях приходилось перезагружать компьютер, выбирать в меню загрузчика пункт Microsoft Windows и делать всё по старинке. Такой задачей было например снятие образа логического диска в целях переноса на другой физический носитель, потому как текущий уже изрядно поистрепался.
Программой, которая использовалась в таких ситуациях, был Acronis. Интуиция подсказывала, что на выяснение того, как обойтись без него, уйдёт не меньше недели, а результат обычно был нужен край через полчаса, поэтому выяснение откладывалось, откладывалось и откладывалось.
Но после очередной дружеской шутки про никому не нужный и ничего не умеющий, а потому бесплатный Линукс, я решил, что в следующий раз для создания образа диска мне не понадобится ничего, кроме загрузочной флешки и командной строки. И отправился гуглить.
Гугл создавал чёткое впечатление, что как клонировать диски средствами опенсорсных ОС, знает каждая собака. Увы, чёткие инструкции по осуществлению общеизвестных и элементарных вещей найти как правило сложнее всего. Какие-то мануалы в результате упорных поисков в конце концов обнаружились, но всё равно с ними пришлось туговато, ибо их явно писали грамотные люди, которые возятся с темой не первый и даже не второй день, и просто не помнят, что знаниями, почитаемыми ими за необходимый минимум, владеют далеко не все.
Теперь, когда ужасы гугления позади, я понимаю, что всё действительно достаточно просто и хочу оформить результаты своих изысканий в виде краткого руководства по работе с образами дисков в GNU/Linux, обращённого в первую очередь к тем, кто привык к Акронису или другой подобной ему программе. Мне в свое время такой документ бы очень сильно помог, надеюсь, что он поможет и кому-то ещё.
Acronis
В Акронисе всё было просто и понятно: оконный интерфейс, подсказки и предшествующий опыт работы с образами компакт дисков делали процесс несложным. Снял образ, вставил новый винт, развернул образ на него — даже и рассказывать то не о чем. В случае с Линуксом процесс захлебнулся на этапе снятия образа — как это сделать было абсолютно неясно. Специальной программки с подсказками не нашлось, программки, которая добавляла в список устройств виртуальный DVD — наподобие Daemon Tools тоже. Да и сам список устройств оказался достаточно проблематичен, поэтому начать можно прямо с него.
Просмотр перечня накопителей
Просмотр перечня разделов на накопителе
Часто владелец может опознать диск просто по такому перечню (это когда дисков у него не 452), но если этого недостаточно, то можно воспользоваться программой hdparm.
Эту же информацию, но в рассеянном по разным файлам виде, можно найти в директории /sys/block/sda. Например модель диска находится в файле /dev/block/sda/device/model.
Если и этого недостаточно, то остается только по очереди монтировать устройства и смотреть что на них записано. Но это уже совсем другая история.
Снятие образа
Итак, устройство опознано и раздел, с которого нужно снять образ, найден. Теперь собственно процесс.
Общие рекомендации
Образом диска мы обычно называем копию диска на уровне разделов или всего устройства. И если пользователь Windows в ответ на вопрос, как эту копию сделать, обычно слышит рекомендацию воспользоваться специализированным софтом, то в Линуксе всё не так.
Как я уже говорил, здесь каждый диск и каждый раздел диска представлен конкретным файлом. И, так как образ представляет из себя файл с копией диска, логично предположить, что операция снятия образа и операция копирования файла раздела — это одно и то же.
Так оно и есть. Пусть нам надо снять образ раздела /dev/sda2 (на нём Windows 7 обычно держит диск С:) и сохранить его в файл с названием win_c.img.
Для этого достаточно написать cp /dev/sda2 win_c.img. Или cat /dev/sda2 >win_c.img. Короче можно воспользоваться любой программой или комбинацией программ, которая осуществляет копирование файлов.
Правильный способ
Как вы наверное уже догадываетесь, добиться желаемого можно не одним и даже не двумя, остроумными и не очень способами, но правильнее и проще всего на мой взгляд, использовать утилиту ddrescue. Что существенно важно — имеется в виду GNU ddrescue, а не давно уже устаревший оригинал.
Она, также как и cp, занимается копированием файлов, но в случае нахождения ошибок, ddrescue не прервёт работу с радостным сообщением о том, что пациент скорее мёртв, чем жив, а запомнит место с ошибкой, чтобы вернуться к нему позже и попробовать прочитать заново. Теперь уже медленно и нежно.
Используется ddrescue следующим образом:
ddrescue
ddrescue не способна принимать входные данные с конвейра, или передавать на конвейр результат работы, что впрочем неудивительно. Возможность пропускать места с ошибками при первой итерации и возвращение к ним в последующих циклах подразумевает наличие файлов на выходе и входе.
Команда, которая выполнит операцию, аналогичную описанной выше, будет выглядеть так:
ddrescue /dev/sda2 win_c.img win_c.img.log
Кстати, в данный момент я молчаливо подразумеваю, что жёсткий диск, с которого мы снимаем копию более-менее исправен и фокусов не выкидывает. Если с диском есть серьёзные проблемы, то лучше предварительно ознакомиться с подробностями использования ddrescue, например тут. и применить эти знания при снятии образа.
Неправильный способ
Часто можно встретить рекомендации использовать для копирования файла устройства или раздела программу под названием dd. Как правило, для снятия образа предлагается сделать что-то вот такое:
dd if=/dev/sda2 of=win_c.img
Не делайте так! Хотя семантически подход верен (произойдёт копирование одного файла в другой), последствия могут быть очень печальны. Да, dd превосходит cp в том отношении, что при обнаружении ошибки cp прекратит работу, а dd не прекратит, но если на диске есть битые или просто плохо читаемые сектора, то dd будет продолжать попытки считать их содержимое пока из винчестера не повалит дым.
Да, у dd есть аргумент noerror, но при его использовании копирование может быть выполнено с ошибками, попыток восстановления которых предпринято не будет. ddrescue в аналогичной ситуации после первого прохода вернётся к пропущенным местам и попробует прочитать их маленькими кусочками. И оставит лог файл, с помощью которого можно будет продолжать попытки вычитать сбойные места в будущем.
Короче, используйте ddrescue. А если кроме dd ничего нет, не забывайте про аргумент noerror.
Описанная выше процедура может применяться например для того, чтобы сохранить образ диска с только что установленной операционной системой для последующего восстановления. Да, настоящий линуксоид так поступать не станет, но среди пользователей операционной системы с другим названием это достаточно распространённая практика. И для периодического вдумчивого ремонта регулярно ломающегося компьютера какой нибудь симпатичной девушки её смело могут применять даже любители пингвинов. А если девушек больше некоторого, сугубо индивидуального для каждого самоделкина, количества, то данный метод просто незаменим. Главное не перепутать названия файлов с образами.
Просмотр содержимого образа раздела (логического диска)
Так как каждый раздел диска представлен файлом, можно предположить, что должен существовать штатный способ подключения файлов с образами к файловой системе. С определённой точки зрения так оно и есть. Конкретно для этого используется утилита mount, с помощью которой можно поместить дерево файлов, содержащееся в образе, в любую директорию на ваш выбор. Этот процесс называется монтированием.
Вот так можно убедиться, что образ, который вы собираетесь накатить на винчестер очередного розового ноутбука, является образом именного того диска C: который ожидается увидеть на данной конкретной машине. Ну, или можно просто скопировать с него файлы без которых никак нельзя обойтись и отправить этот образ во внешнюю тьму. А на ноутбук поставить последнюю Убунту или Федору.
But we can go deeper.
Просмотр содержимого образа физического диска
Файлы виртуальных устройств создаются заранее (на этапе загрузки системы) и имеют названия loop0, loop1, loop2 и так далее по нарастающей.
Связать образ раздела с одним из этих файлов можно командой losetup. Команда mount из предыдущего раздела на самом деле эквивалентна следующим двум командам.
losetup /dev/loop0 win_c.img
mount /dev/loop0 /mnt/win_c
Но вот для того, чтобы посмотреть содержимое образа в котором есть несколько разделов, этого недостаточно. Дело в том, что если выполнить команду losetup для такого файла, то с устройством /dev/loop0 будет связан весь образ целиком. То есть это устройство будет эквивалентом /dev/sda, а нам нужны эквиваленты /dev/sda1 и /dev/sda2.
Обладатели свежих версий программы losetup (читай гентушники и арчеводы) могут выполнить losetup c аргументом —partscan, что приведёт к автоматическому созданию в директории /dev файлов, соответствующих разделам образа. То есть /dev/loop0p1, /dev/loop0p2 и так далее до самого горизонта. И вот уже эти файлы можно отдавать команде mount.
Те же, кому не так повезло с дистрибутивом, могут воспользоваться программой kpartx, которая сделает то же самое, но положит файлы соотвествующие разделaм не в директорию /dev, а в директорию /dev/mapper, откуда их можно монтировать и просматривать.
But we can go even deeper than that…
Автоматическое создание файлов разделов при выполнении команды losetup
Вообще-то ядро (а конкретно модуль loop) уже достаточно давно умеет искать в файле образа таблицу разделов и создавать соответствующие файлы, но по умолчанию эта функция отключена.
Включается она если параметр модуля loop max_part не равен нулю. Задать этот параметр можно только при загрузке модуля, поэтому если система уже запущена, модуль надо выгрузить из памяти и загрузить снова с уже заданным параметром. Для этого нужно выполнить следующие две команды.
Однако в некоторых дистрибутивах (напривер в Убунте) модуль loop вкомпилирован в ядро намертво и поэтому для установки параметра придётся вписать loop.max_part=63 в командную строку ядра и перезагрузить систему.
Развёртывание образа на физический носитель
А теперь о том, как собственно накатить образ на другой диск. Как и раньше надо руководствоваться тем, что диски и разделы представлены в виде файлов. И если для снятия образа нужно было создать копию файла устройства или раздела, то для того, чтобы закатать этот образ обратно надо провести операцию копирования в обратную сторону. То есть вместо cp /dev/sda2 win_c.img написать cp win_c.img /dev/sda2. Ну и лучше помнить о советах, изложенных в руководстве по снятию образа. А именно пользоваться ddrescue и не пользоваться dd.
Сжатие образа раздела (логического диска)
Особенно приятной чертой Акрониса является способность не писать в файл образа куски диска или раздела, которые не содержат файлов. Это позволяет ужать образ до реального объёма данных в разделе или на диске.
Изложенный ранее подход имеет принципиальные ограничения, не позволяющие реализовать такую фичу — программы посекторного копирования ничего не знают про структуру файловых систем и даже более того — не знают, что это вообще такое — файловая система.
Однако выход из положения есть. Правда для его использования файловая система, на которой будет храниться образ, должна поддерживать такую специфическую штуку, как sparse файлы.
Sparse файлы
Sparse файл это файл, в котором куски, содержащие нули, на диск не пишутся. То есть, если половина файла заполнена данными, а другая половина нулями — на диск будет записана только половина этого файла и ещё дополнительная информация об областях файла, заполненных нулями. Если область с нулями непрерывна и начинается в середине, то реально на диске файл будет заменять половину от своего теоретического объёма.
Подготовка раздела или устройства к сжатию
Для того, чтобы воспользоваться этой возможностью в целях сжатия образа, нужно перед снятием записать в свободное место нули. Сделать это несложно — достаточно смонтировать файловую систему в директорию и создать в этой директории файл с бинарными нулями размер которого будет равен размеру свободного места на разделе.
Но выяснять количество свободного места и передавать его программе, создающей файл, к счастью не обязательно, да и искать программу, создающую файл с нулями, не понадобится. В директории /dev есть безразмерный файл zero, который, как нетрудно догадаться по названию, является неисчерпаемым источником бинарных нулей. Остаётся только скопировать его в нужное место.
Так как файл безразмерен, копирование будет продолжаться до тех пор, пока копия не заполнит всё доступное ей пространство, то есть все свободное место в разделе, что нам собственно и требовалось.
Про то, как копировать файлы стандартными средствами операцинной системы, здесь написано столько раз, что руководство вполне могло бы называться «Искусство копирования файлов в окружении GNU», но так как истина от повторения не тукснеет, я, пожалуй, напишу ещё раз.
Для создания файла с бинарными нулями можно выполнить команду cp /dev/zero zerofile или cat /dev/zero > zerofile.
Создание sparse файла образа устройства или раздела
Большинство утилит для работы с файлами знают о существовании sparse файлов и умеют их создавать. Упомянутой ранее ddrescue, для того, чтобы образ оказался sparse файлом нужно передать ключ —sparse. Теперь результирующий файл будет занимать столько места, сколько ему необходимо, и не больше.
Как быть в случае сжатия образа повреждённого диска
Как известно, многие диски и в руки то брать страшно, какой уж может быть разговор о записывании туда многогигабайтных файлов. Если вам в руки попался именно такой диск, следует сначала снять образ, а потом уже сделать из него sparse файл. Для этого нужно смонтировать полученный образ, потом заполнить свободное место нулями и сделать с образа копию, которая уже будет полноценным sparse файлом. Исходный образ после этого можно удалить.
Конечно, для проведения этих операций потребуется много свободного пространства, но так всё-таки значительно лучше, чем вообще никак.
Заключение
А теперь в сжатом виде о том, что можно почерпнуть из данного руководства.