Как сделать образ диска с ext4
1. ubuntu — deb based система с широчайшей поддержкой и огромным количеством форумов;
2. xubuntu — легковесный вариант без рюшек и понтов, который не тормозит на машинах от 512Мб ОЗУ (есть в моём парке и такие динозаврики);
3. 14.04 — это LTS (Long Term Support) вариант c поддержкой до 2019 года.
Есть, конечно, варианты быстрее и поменьше, но по ряду тех или иных причин выбор был сделан и сожалений на протяжении года с небольшим не вызывает.
Забегая вперед, отмечу: чтобы повторить описанное потребуется настроенный vpn сервер или «конфиг-мониторинг-сервер» в локальной сети, пара виртуальных или реальных машин, пара часов свободного времени и внимание к деталям.
Итак, первое, подготовка образа. Все этапы важны, но первый — это фундамент. Устанавливаем систему с cd/dvd/usb/сети и выбираем разметку дисков. Важно понимать, что наш образ не будет поддерживать динамического ресайза ДО развёртывания. А после, скорее всего такой ресайз и не потребуется. Под корень имеет смысл отдать 6-10 Гб.
Больший объем оправдан в случае, когда заведомо известно, что а) диски на клиентских машинах не будут меньше этого объема и б) действительно будет установлено много разных нужных пакетов.
Разметим /home и, наконец, swap разделы. В совокупности все три раздела у автора не вылезают за 30Гб (чтобы спокойно разместиться на ssd 30 Gb, это минимальная конфигурация по диску для моих клиентов). В случае, если заранее известен минимальный объём диска — приемника, имеет смысл подгонять разделы под него. Своп рекомендую размечать сразу за корнем диска, /home сразу за свопом, чтобы в случае ресайза не «возить их по диску в консоли», а сделать изящно одной командой. Устанавливаем локаль, имя пользователя, пароль, hostname и заходим в новоиспеченный Linux. Для продолжения потребуются пакеты x11vnc, ssh, rsync, openvpn, mc (обожаю mcedit, он мне родной, как нортон из девяностых).
В базу я на свой вкус добавил skype, icedove (thunderbird), iceweasel(firefox), chromium-browser, rdesktop калькулятор, монитор ресурсов, viber, libre office, wine и пару windows-приложений (гореть мне, конечно, за это в аду, но аналогов нет и не предвидится). Настраиваем медленно и неторопливо всё это дело. Проверяем, что всё запускается и работает.
Настраиваем vpn. У меня сеть распределенная, по два-три компьютера на одну геолокацию, больше 50 локаций по России, не наездишься. Создаем ssh-ключ к серверу и на сервере к клиенту (кому надо вводить эти пароли, подробности, к примеру, тут). На сервере создаем каталог безусловной синхронизации (для меня это рабочие скрипты, ключи openvpn, клиентский cron, служебные скрипты на python, бинарники С++). В рабочем примере это /var/sync/in, /var/sync/in/cron, /var/sync/out. В out будут логи и любая нужная нам информация с клиентов: скриншоты, отчеты по процессам, итд. В in как раз и будут скрипты синхронизации, задания cron, скрипты хартбитов для мониторинга, многочисленные конфиги системных служб (того же cups или openvpn).
Подготовка всего этого дела к тиражированию займет не многим больше времени, чем установка системы одному пользователю, но тщательная проработка деталей может существенно уменьшить время, которое админ в будущем потратит на скрипты «допиливающие» все образы в бою. Настроим openvpn на клиенте и убедимся, что пользовательский ключ[и] работа[ею]т. Не лишним будет и настроить grub2.
Итак, всё шуршит, офис работает, калькулятор запускается, для rdp с сервером приложений уже есть ярлычок на рабочем столе.
Пришло время делать образ.
Разрешу себе отвлечься. Способов сделать образ с готовой системой под тираж я перепробовал немало. Данная статья не претендует на звание лучшего способа, скажу лишь, что способ лучший для меня и очень кратко прокомментирую другие способы и их минусы.
Clonezilla — отличная вещь, но в интерактивном режиме вводит в ступор любого эникейщика за триста миль от админа.
dd if=/dev/sda of=img.img — волшебная вещь, но вместе с данными мы получим мусор с пустой части диска, объём и скорость метода ужасают.
Norton ghost — не поддерживает ext4.
Partition copy из gparted — классная вещь, но, увы, тоже не для начинающих.
Я долго спрашивал себя, каким я вижу идеальное развертывание. Тут мы подходим к теме статьи, от которой уже порядком отвлеклись.
- Ахтунг1 Напоминаю, раздел файла в fat32 не должен быть более 4Гб, следите за объёмом образа или выбирайте ext4 раздел.
- Ахтунг2 NTFS раздел флешки под linux хоть и работает, но забирает огромное кол-во процессорного времени.
После загрузки монтируем наш диск (скорее всего /dev/sda1) и жмём прямо с него всю нашу систему, не забываем и про /home раздел:
Затем сделаем архив со всем содержимым нашего диска:
Тоже самое и для /home раздела:
Затем дампим таблицу разделов в файл на нашу суперфлешку:
Таким образом, на флешке у нас появятся архивы и файл с таблицей разделов эталонного образа.
Ну и на сладкое. Ниже скрипт c говорящим названием, который собирался по частям с разных уголков интернета буквально по строчке.
Комментарии автора прямо в тексте скрипта. Ничего сверхъестественного, просто как на уроке информатики, однако отлаживался с кровавыми слезами, разок даже убил домашнюю систему флешкой с этим скриптом. Не рекомендую оставлять как есть, т.к. это его безусловная неинтерактивная версия.
cat /pmagic/pmodules/scripts/kill_your_hdd_data.sh (путь для автозагрузочного скрипта в PartedMagic)
Вместо эпилога:
Данный метод используется в Urban Software для заливки информационных сенсорных киосков c веб-приложениями под управлением linux. Чаще всего это бесклавиатурные машины, которые разворачиваются десятками вдали от цивилизации нашей техподдержки, поэтому важно изначально не создать проблем при их мониторинге и вводе в работу.
P.S. Статья получилась большая. О том, как «встречать» только что развернутые компьютеры, управлять удаленным cron, синхронизировать скрипты и получать хартбиты мониторинга, будет написана вторая часть, если, конечно, первая когда-нибудь вылезет из песочницы.
Есть файловые системы, которые поддерживают сокращение своего размера до размера данных, т.е. можно в два клика сократить размер раздела, выкинув всё пустое пространство, оставив на разделе только данные.
Примеры таких систем (те что проверял сам):
Всё просто: перед снятием образа запустил gparted и сократил размер раздела до минимального, чтобы свободного места оставалось не более 1%.
Дальше скопировать разметку диска и сами разделы через dd или ddrescue . Будет гораздо быстрее, чем делать образ через тот же Acronis.
Но обо всем по порядку, начну с того, что для работы нужна загрузочная флешка Linux , лучше с GUI, диск с которого снимаем образ и диск куда образ записывать.
В моем примере про Windows я работал с домашнего Ubuntu Linux, снимал образ с соседнего диска на ФС своего Ubuntu Linux.
В примере про Linux - я это делал на очень слабеньком компьютере, загружался с USB-флешки Альт-Линукс, образ снимал и разворачивал с локального SATA диска, образ записывал на внешний USB HDD диск.
Но все эти работы можно выполнять с флешки, если на флешке достаточно места.
Перенос ОС копированием файловых систем (из образа ФС)
1. Перенос операционной системы копированием файловой системы выполняется с минимальными затратами времени и позволяет решать задачи администрирования:
- восстанавливать работоспособность системы после фатального сбоя;
- разворачивать объемные системы по числу компьютеров с похожей архитектурой и программным обеспечением;
- переносить систему при модернизации оборудования.
2. Для сравнения: установка операционной системы Альт-Линукс с базовыми настройками занимает не менее 30 минут на каждый экземпляр установки и требует интерактивного вмешательства администратора.
Перенос операционной системы копированием файловой системы занимает от пары минут и может выполняться одновременно (параллельно) на нескольких компьютерах одним администратором.
3. Перенос операционной системы копированием файловой системы выполняется в два этапа:
- создание образа файловой системы;
- восстановление операционной системы из образа.
4. Основные способы создания образа ФС:
- копирование раздела файловой системы (блочный метод);
- копирование файлов ОС и восстановление архитектуры ФС (файловый метод).
5. В инструкции представлены оба метода с применением к разным задачам. У каждого метода есть свои плюсы и минусы.
6. Блочный метод — копирует разметку диска и разделы диска целиком, он может быть применен к архивированию практически любой операционной системы и ее файловой системы, если файловая система поддерживает уменьшение своего размера, то этот метод один из лучших для применения в такой задаче.
Например, для файловой системы EXT4 или NTFS перед снятием архива размер раздела можно сократить до объема занимаемых данных, КПД метода в этом случае будет очень высок.
Но если исходная файловая система не может быть изменена в меньшую сторону, например XFS, то при наличии большого объема незанятого данными пространства, при архивировании - большая часть времени уйдет на сохранение пустого пространства раздела, КПД метода в этом случае будет не так хорош, как в предыдущем примере.
7. Файловый метод — очень зависит от Операционной системы и файловой системы, на которой она развернута. Для ОС Linux — это предпочтительный метод, т. к. он может быть применен фактически для любой файловой системы Linux.
XFS и EXT4 Linux лучше архивировать файловым методом.
8. Пример блочного архивирования файловой системы на примере переноса OS Windows NTFS.
8.1. Обычно для работы Windows использует два раздела — скрытый, размером от 512 Мб и системный, обычно это Диск С Windows. Дополнительные диски для копирования — не рассматриваем, т. к. их можно скопировать простым копированием файлов, они не влияют на работу ОС Windows и могут быть добавлены к системе в любой момент. При желании их так же можно скопировать блочным методом вместе с скрытым и системным разделами.
8.2. Этап создания образа ФС блочным методом.
8.2.1. Посмотреть разделы исходного диска с Windows fdisk
sudo fdisk -l
Диск /dev/sdb: 1,84 TiB, 2000398934016 байт, 3907029168 секторов
Disk model: Hitachi HUA72302
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xb75549a0
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdb1 * 63 1028159 1028097 502M 7 HPFS/NTFS/exFAT
/dev/sdb2 1028160 132102143 131073984 62,5G 7 HPFS/NTFS/exFAT
Идентификаторы разделов и их файловой системы узнать командой blkid
/dev/sdb1: LABEL="System Reserved" UUID="38143AA4143A6552" TYPE=" ntfs " PARTUUID="b75549a0-01"
/dev/sdb2: UUID="94ECB0E5ECB0C332" TYPE=" ntfs " PARTUUID="b75549a0-02"
8.2.2. В примере /dev/sdb1 — скрытый раздел Windows, /dev/sdb2 — системный раздел Windows.
8.2.3. Подключить системный раздел Windows в папку /mnt:
sudo mount -t ntfs /dev/sdb2 /mnt
8.2.4. Удалить файлы виртуальной и кэша памяти, можно на этом этапе удалить другие файлы - которые не понадобятся на новой системе и далее отключить системный раздел:
sudo umount /mnt
8.2.5. сократить раздел до минимального, не более 1-10% свободного места. Например к размеру данных добавить +200 МиБ. Для изменения размера задействовать графическую утилиту gparted (установка sudo apt-get install gparted):
Рано или поздно каждому приходится столкнуться с проблемой, когда операционную систему или какую-либо информацию нужно перенести на новый жесткий диск. Причины здесь разные, а ожидания одинаковые, каждый хочет, чтобы при переносе сохранилась вся информация в точно таком же порядке, как и была на старом жестком диске. Как раз для таких целей и подходят программы для создания образов жестких дисков, лучшие из которых представлены ниже.
Acronis
В Акронисе всё было просто и понятно: оконный интерфейс, подсказки и предшествующий опыт работы с образами компакт дисков делали процесс несложным. Снял образ, вставил новый винт, развернул образ на него — даже и рассказывать то не о чем. В случае с Линуксом процесс захлебнулся на этапе снятия образа — как это сделать было абсолютно неясно. Специальной программки с подсказками не нашлось, программки, которая добавляла в список устройств виртуальный DVD — наподобие Daemon Tools тоже. Да и сам список устройств оказался достаточно проблематичен, поэтому начать можно прямо с него.
Автоматическое создание файлов разделов при выполнении команды losetup
Вообще-то ядро (а конкретно модуль loop) уже достаточно давно умеет искать в файле образа таблицу разделов и создавать соответствующие файлы, но по умолчанию эта функция отключена.
Включается она если параметр модуля loop max_part не равен нулю. Задать этот параметр можно только при загрузке модуля, поэтому если система уже запущена, модуль надо выгрузить из памяти и загрузить снова с уже заданным параметром. Для этого нужно выполнить следующие две команды.
modprobe -r loop
modprobe loop max_part=63
Однако в некоторых дистрибутивах (напривер в Убунте) модуль loop вкомпилирован в ядро намертво и поэтому для установки параметра придётся вписать loop.max_part=63 в командную строку ядра и перезагрузить систему.
Просмотр содержимого образа раздела (логического диска)
Так как каждый раздел диска представлен файлом, можно предположить, что должен существовать штатный способ подключения файлов с образами к файловой системе. С определённой точки зрения так оно и есть. Конкретно для этого используется утилита mount, с помощью которой можно поместить дерево файлов, содержащееся в образе, в любую директорию на ваш выбор. Этот процесс называется монтированием.
Итак, у нас уже есть образ, снятый с диска C: операционной системы Windows 7. Мы назвали образ win_c.img и хотим увидеть его содержимое в заранее созданной директории /mnt/win_c. Для этого надо ввести команду mount -o loop win_c.img /mnt/win_c.
But we can go deeper.
Общие рекомендации
Образом диска мы обычно называем копию диска на уровне разделов или всего устройства. И если пользователь Windows в ответ на вопрос, как эту копию сделать, обычно слышит рекомендацию воспользоваться специализированным софтом, то в Линуксе всё не так.
Как я уже говорил, здесь каждый диск и каждый раздел диска представлен конкретным файлом. И, так как образ представляет из себя файл с копией диска, логично предположить, что операция снятия образа и операция копирования файла раздела — это одно и то же.
Так оно и есть. Пусть нам надо снять образ раздела /dev/sda2 (на нём Windows 7 обычно держит диск С:) и сохранить его в файл с названием win_c.img.
Для этого достаточно написать cp /dev/sda2 win_c.img. Или cat /dev/sda2 >win_c.img. Короче можно воспользоваться любой программой или комбинацией программ, которая осуществляет копирование файлов.
AOMEI Partition Assistant
AOMEI Partition Assistant Standard Edition можно бесплатно использовать как для домашних, так и для коммерческих целей. Принимая решение о копировании диска или отдельных разделов, мы сможем выбрать один из двух способов.
Первый позволяет выполнить быструю операцию, а второй точно копирует все сектора жесткого диска, а это значит, что придется долго ждать. AOMEI Partition Assistant Standard Edition поддерживает файловые системы FAT, FAT32, NTFS, EXT2/EXT3 и поддерживает диски, работающие с интерфейсами IDE, SATA, eSATA, SCSI, SSD, USB и FireWire, а также диски размером более 8 ТБ.
HDClone
HDClone Free Edition - это программа создания образа жесткого диска, хорошо известная многим пользователям. Используя приложение, мы сможем сделать точную резервную копию всего пространства хранения или отдельных разделов диска. Это не конец возможностей, предлагаемых бесплатной версией HDClone Free Edition.
У инструмента также есть возможность клонировать системный раздел, чтобы мы могли перенести используемую в настоящее время рабочую среду на новый жесткий диск или твердотельный накопитель. Недостатком HDClone Free Edition является ограничение производителем скорости передачи данных до 30 МБ/с.
Правильный способ
Как вы наверное уже догадываетесь, добиться желаемого можно не одним и даже не двумя, остроумными и не очень способами, но правильнее и проще всего на мой взгляд, использовать утилиту ddrescue. Что существенно важно — имеется в виду GNU ddrescue, а не давно уже устаревший оригинал.
Используется ddrescue следующим образом:
ddrescue
ddrescue не способна принимать входные данные с конвейра, или передавать на конвейр результат работы, что впрочем неудивительно. Возможность пропускать места с ошибками при первой итерации и возвращение к ним в последующих циклах подразумевает наличие файлов на выходе и входе.
Команда, которая выполнит операцию, аналогичную описанной выше, будет выглядеть так:
ddrescue /dev/sda2 win_c.img win_c.img.log
Кстати, в данный момент я молчаливо подразумеваю, что жёсткий диск, с которого мы снимаем копию более-менее исправен и фокусов не выкидывает. Если с диском есть серьёзные проблемы, то лучше предварительно ознакомиться с подробностями использования ddrescue, например тут. и применить эти знания при снятии образа.
Подготовка раздела или устройства к сжатию
Для того, чтобы воспользоваться этой возможностью в целях сжатия образа, нужно перед снятием записать в свободное место нули. Сделать это несложно — достаточно смонтировать файловую систему в директорию и создать в этой директории файл с бинарными нулями размер которого будет равен размеру свободного места на разделе.
Но выяснять количество свободного места и передавать его программе, создающей файл, к счастью не обязательно, да и искать программу, создающую файл с нулями, не понадобится. В директории /dev есть безразмерный файл zero, который, как нетрудно догадаться по названию, является неисчерпаемым источником бинарных нулей. Остаётся только скопировать его в нужное место.
Так как файл безразмерен, копирование будет продолжаться до тех пор, пока копия не заполнит всё доступное ей пространство, то есть все свободное место в разделе, что нам собственно и требовалось.
Про то, как копировать файлы стандартными средствами операцинной системы, здесь написано столько раз, что руководство вполне могло бы называться «Искусство копирования файлов в окружении GNU», но так как истина от повторения не тукснеет, я, пожалуй, напишу ещё раз.
Для создания файла с бинарными нулями можно выполнить команду cp /dev/zero zerofile или cat /dev/zero > zerofile.
Зачем нужен образ диска?
Как было сказано выше, что бы иметь цифровую версию диска. Например взяли вы диск у кого то, и хотите его копию, но с дисками заморачиваться не хочется и вы просто делаете образ диска, и диск потом отдаете обратно, вуаля, и у них и у вас есть копия, но помните о том что если это не личные видео материалы, а например кино или игры, наверное вы пиратите их, что не законно.
- Раньше было куча игрушек, которые для борьбы с пиратством интегрировали защитные системы по типу StarForce, и им нужен был один из установочных дисков, для того что бы запуститься, элементарно припомню PrinceofPersiaWarriorWithin , настоятельно рекомендую ознакомиться с данной игрой, а приобрести ее можно в стиме. Очень крутая и динамичная игра своего времени. Так вот она требовала 3 диск, чтобы играться. А в нее хотели поиграть многие, и тут появляются различные утилиты для того что бы копировать диск и создавать его образ.
Т акие программы как например: Alcohol, daemon tools, UltraISO.
Это самые наверное знаменитые программы того времени.
Просмотр содержимого образа физического диска
А вот с монтированием образа диска целиком всё не так просто. Ужасная правда состоит в том, что монтировать файлы из произвольного места файловой системы ядро не умеет и аргумент -o loop, команды mount, сигнализирует о том, что сначала надо связать образ с файлом виртуального устройства в директории /dev, и потом уже присоединить содержимое этого устройства к файловой системе.
Файлы виртуальных устройств создаются заранее (на этапе загрузки системы) и имеют названия 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.
losetup --partscan /dev/loop0 drive.img
mount /dev/loop0p2 /mnt/win_c
Те же, кому не так повезло с дистрибутивом, могут воспользоваться программой kpartx, которая сделает то же самое, но положит файлы соотвествующие разделaм не в директорию /dev, а в директорию /dev/mapper, откуда их можно монтировать и просматривать.
kpartx -a /dev/loop0 drive.img
mount /dev/mapper/loop0p2 /mnt/win_c
But we can go even deeper than that…
HDClone
HDClone Free Edition - это программа создания образа жесткого диска, хорошо известная многим пользователям. Используя приложение, мы сможем сделать точную резервную копию всего пространства хранения или отдельных разделов диска. Это не конец возможностей, предлагаемых бесплатной версией HDClone Free Edition.
У инструмента также есть возможность клонировать системный раздел, чтобы мы могли перенести используемую в настоящее время рабочую среду на новый жесткий диск или твердотельный накопитель. Недостатком HDClone Free Edition является ограничение производителем скорости передачи данных до 30 МБ/с.
Sparse файлы
Sparse файл это файл, в котором куски, содержащие нули, на диск не пишутся. То есть, если половина файла заполнена данными, а другая половина нулями — на диск будет записана только половина этого файла и ещё дополнительная информация об областях файла, заполненных нулями. Если область с нулями непрерывна и начинается в середине, то реально на диске файл будет заменять половину от своего теоретического объёма.
Как быть в случае сжатия образа повреждённого диска
Как известно, многие диски и в руки то брать страшно, какой уж может быть разговор о записывании туда многогигабайтных файлов. Если вам в руки попался именно такой диск, следует сначала снять образ, а потом уже сделать из него sparse файл. Для этого нужно смонтировать полученный образ, потом заполнить свободное место нулями и сделать с образа копию, которая уже будет полноценным sparse файлом. Исходный образ после этого можно удалить.
С копированием файла прекрасно справится cp, которая умеет делать sparse файлы не хуже ddrescue. cp --sparse win_c.img win_c_sparse.img
Конечно, для проведения этих операций потребуется много свободного пространства, но так всё-таки значительно лучше, чем вообще никак.
Развёртывание образа на физический носитель
А теперь о том, как собственно накатить образ на другой диск. Как и раньше надо руководствоваться тем, что диски и разделы представлены в виде файлов. И если для снятия образа нужно было создать копию файла устройства или раздела, то для того, чтобы закатать этот образ обратно надо провести операцию копирования в обратную сторону. То есть вместо cp /dev/sda2 win_c.img написать cp win_c.img /dev/sda2. Ну и лучше помнить о советах, изложенных в руководстве по снятию образа. А именно пользоваться ddrescue и не пользоваться dd.
ddrescue --force win_c.img /dev/sda2 win_c_restore.img.log
Конечно следует помнить, что раздел в который мы восстанавливаем образ (в данном случае /dev/sda2) должен быть не меньше файла с образом. Eсли же раздел окажется больше этого файла, то проблем при восстановлении не будет, но в разделе останется неразмеченное пространство. И придётся либо смириться с этим фактом, либо увеличить размер файловой системы до размера раздела каким-нибудь специализированным софтом (увеличивать, впрочем, обычно гораздо проще и быстрее, чем уменьшать).
Хорошо, так как это сделать?
Я пользуюсь программой UltraISO, и не вижу смысла переходить на другие аналоги, программа весьма проста в эксплуатации и работает безотказно.
Чтобы создать образ диска CD/DVD и потом его монтировать следует воспользоваться следующими инструментами:
Помимо там же можно и записать образ на другой диск с помощью функции " записать образ CD. ".
При создании образа предложат разные форматы вывода, рекомендую оставлять родной " .ISO " с ним проще всего взаимодействовать.
MiniTool Partition Wizard Free Edition
MiniTool Partition Wizard Free Edition - бесплатная программа, созданная с целью разметки жестких дисков. Тем не менее производитель оснастил свое приложение функцией, отвечающей за перенос на новый жесткий диск используемой операционной системы Windows.
Вся процедура миграции Windows на новый том выполняется с помощью удобного мастера, но прежде чем мы начнем процесс миграции нашей рабочей среды, мы должны сначала подготовить поверхность жесткого диска. Используя MiniTool Partition Wizard Free Edition, мы сможем создавать новые разделы диска, объединять, разделять, копировать, форматировать и удалять существующие тома.
Добрый день, всем читателям, рад всех приветствовать сегодня поведаю как скажем так "оцифровать" диск и создать его образ. Тема не новая, и кто знает что такое образ диска, в принципе в теме и он может лишь освежить память и поделиться своими наблюдениями, чего то нового и сверх крутого вы тут вряд-ли найдете.
WinToHDD Free
Если мы хотим выполнить очень быструю и эффективную миграцию установленной операционной системы Windows на новый жесткий диск, то нас должна заинтересовать программа WinToHDD. Благодаря эффективному механизму, включенному в приложение, которое отвечает за клонирование используемой рабочей среды, мы можем легко перенести операционные системы Windows Vista, 7, 8, 8.1 и 10 на новое запоминающее устройство, такое как сверхбыстрый твердотельный накопитель.
Создание sparse файла образа устройства или раздела
Большинство утилит для работы с файлами знают о существовании sparse файлов и умеют их создавать. Упомянутой ранее ddrescue, для того, чтобы образ оказался sparse файлом нужно передать ключ --sparse. Теперь результирующий файл будет занимать столько места, сколько ему необходимо, и не больше.
Снятие образа
Итак, устройство опознано и раздел, с которого нужно снять образ, найден. Теперь собственно процесс.
Просмотр перечня разделов на накопителе
Каждому разделу в директории dev тоже соотвествует файл. Его название строится из названия файла, соотвествующего накопителю и номера раздела. То есть для накопителя sda, на котором есть 2 раздела, в директории /dev будет создано 2 файла — sda1 и sda2. Посмотреть перечень разделов на накопителе sda можно командой ls -1 /dev/sda1 полный перечень разделов на всех устройствах получается на выводе команды ls -1 /dev/sd[a-z]4, а если есть необходимость включить в перечень и сами устройства, то можно просто написать ls -1 /dev/sd*, что значительно менее осмысленно, зато коротко и главное работает. Или, как подсказывают в комментариях, есть ещё вариант cat /proc/partitions
Часто владелец может опознать диск просто по такому перечню (это когда дисков у него не 452), но если этого недостаточно, то можно воспользоваться программой hdparm.
Конкретно hdparm -I /dev/sda выведет подробную информацию об устройстве /dev/sda.
Эту же информацию, но в рассеянном по разным файлам виде, можно найти в директории /sys/block/sda. Например модель диска находится в файле /dev/block/sda/device/model.
Если и этого недостаточно, то остается только по очереди монтировать устройства и смотреть что на них записано. Но это уже совсем другая история.
Что касается создания и записи образов жесткого диска:
Фактически можно создать архивную версию любого раздела в моем компьютере, в том числе флешек и внешних жестких дисков.
Для чего это нужно?
- Все просто, если вы работаете с различного рода мульти-загрузочными флешками, то многие файлы скрываются и потом искать что нужно, а что нет, что бы флешка завелась проблематично, а просто сделать копию и записать ее потом занятие более простое.
имеющий образ можно редактировать перед отправкой на запись, убрать ненужное и так далее в этой же программной среде UltraISO.
С тех пор как до меня дошла благая весть о существовании операционной системы под названием GNU/Linux, которую используют все настоящие программисты, я несколько раз пытался заменить ей детище Билла Гейтса и несколько раз потерпел неудачу.
Гуру поблизости отсутствовали, доступ к интернету был жёстко ограничен и потому любая нетривиальная задача становилась в те времена совершенно нерешаемой.
Потом, когда появился безлимитный интернет, вследствие чего с получением софта и знаний стало существенно легче, я настроил себе дуал бут и стал осваивать Убунту.
Основные сложности в процессе переезда создались в первую очередь из за необходимости бросить знакомые практически с самого детства программки, которые попросту отсутствуют в операционной системе для настоящих программистов.
В большинстве случаев это было не фатально. Вместо привычного foobar всегда можно послушать музыку на Rhythmbox. Вместо Microsoft Office есть OpenOffice. Да, его совместимость с продуктом корпорации зла порой оставляет желать лучшего, но им вполне можно пользоваться для решения повседневных задач среднестатистического пользователя. Обо всяких Файрфоксах, Операх и Хромах я вообще молчу.
Но в некоторых случаях приходилось перезагружать компьютер, выбирать в меню загрузчика пункт Microsoft Windows и делать всё по старинке. Такой задачей было например снятие образа логического диска в целях переноса на другой физический носитель, потому как текущий уже изрядно поистрепался.
Программой, которая использовалась в таких ситуациях, был Acronis. Интуиция подсказывала, что на выяснение того, как обойтись без него, уйдёт не меньше недели, а результат обычно был нужен край через полчаса, поэтому выяснение откладывалось, откладывалось и откладывалось.
Но после очередной дружеской шутки про никому не нужный и ничего не умеющий, а потому бесплатный Линукс, я решил, что в следующий раз для создания образа диска мне не понадобится ничего, кроме загрузочной флешки и командной строки. И отправился гуглить.
Гугл создавал чёткое впечатление, что как клонировать диски средствами опенсорсных ОС, знает каждая собака. Увы, чёткие инструкции по осуществлению общеизвестных и элементарных вещей найти как правило сложнее всего. Какие-то мануалы в результате упорных поисков в конце концов обнаружились, но всё равно с ними пришлось туговато, ибо их явно писали грамотные люди, которые возятся с темой не первый и даже не второй день, и просто не помнят, что знаниями, почитаемыми ими за необходимый минимум, владеют далеко не все.
Теперь, когда ужасы гугления позади, я понимаю, что всё действительно достаточно просто и хочу оформить результаты своих изысканий в виде краткого руководства по работе с образами дисков в GNU/Linux, обращённого в первую очередь к тем, кто привык к Акронису или другой подобной ему программе. Мне в свое время такой документ бы очень сильно помог, надеюсь, что он поможет и кому-то ещё.
Просмотр перечня накопителей
Для каждого подключенного накопителя (винчестера, флешки) в директории /dev можно найти соотвествующий ему файл. Его название состоит из букв sd и буквы, обозначающей номер устройства. То есть винчестеру, подключенному к первому каналу, будет соответствовать файл sda, второму sdb и так далее. Соответственно самый простой способ посмотреть список устройств — ls -1 /dev/sd[a-z]. Эта команда покажет список накопителей, но не даст нам никакой информации о них. А нам нужно хотя бы увидеть список разделов.
Что такое образ диска?
Образ диска - это файл, который содержит полную копию гибкого диска. При этом нет необходимости держать гибкий диск под рукой, можно воспользоваться образом.
Сжатие образа раздела (логического диска)
Особенно приятной чертой Акрониса является способность не писать в файл образа куски диска или раздела, которые не содержат файлов. Это позволяет ужать образ до реального объёма данных в разделе или на диске.
Изложенный ранее подход имеет принципиальные ограничения, не позволяющие реализовать такую фичу — программы посекторного копирования ничего не знают про структуру файловых систем и даже более того — не знают, что это вообще такое — файловая система.
Однако выход из положения есть. Правда для его использования файловая система, на которой будет храниться образ, должна поддерживать такую специфическую штуку, как sparse файлы.
EASEUS Todo Backup Free
Среди программ создания образов жесткого диска только одна может быть лидером, и это EASEUS Todo Backup Free. Приложение очень популярно во всем мире благодаря простому пользовательскому интерфейсу и отсутствию лишних фонтанов.
EASEUS Todo Backup Free позволяет быстро получить как полный образ каждого тома, так и раздел диска, на котором установлена операционная система Microsoft Windows. Конечно же, есть также функция, отвечающая за клонирование и перенос рабочей среды на новый жесткий диск. Большим преимуществом EASEUS Todo Backup Free является поддержка локальных и внешних жестких дисков емкостью до 16 ТБ, а также памяти, работающей с интерфейсами IDE, SATA, eSATA, SCSI, IEEE 1394 (FireWire), USB 1.0, 2.0 и 3.0 и массивами RAID.
Заключение
А теперь в сжатом виде о том, что можно почерпнуть из данного руководства.
Неправильный способ
Часто можно встретить рекомендации использовать для копирования файла устройства или раздела программу под названием dd. Как правило, для снятия образа предлагается сделать что-то вот такое:
dd if=/dev/sda2 of=win_c.img
Не делайте так! Хотя семантически подход верен (произойдёт копирование одного файла в другой), последствия могут быть очень печальны. Да, dd превосходит cp в том отношении, что при обнаружении ошибки cp прекратит работу, а dd не прекратит, но если на диске есть битые или просто плохо читаемые сектора, то dd будет продолжать попытки считать их содержимое пока из винчестера не повалит дым.
Да, у dd есть аргумент noerror, но при его использовании копирование может быть выполнено с ошибками, попыток восстановления которых предпринято не будет. ddrescue в аналогичной ситуации после первого прохода вернётся к пропущенным местам и попробует прочитать их маленькими кусочками. И оставит лог файл, с помощью которого можно будет продолжать попытки вычитать сбойные места в будущем.
Короче, используйте ddrescue. А если кроме dd ничего нет, не забывайте про аргумент noerror.
Описанная выше процедура может применяться например для того, чтобы сохранить образ диска с только что установленной операционной системой для последующего восстановления. Да, настоящий линуксоид так поступать не станет, но среди пользователей операционной системы с другим названием это достаточно распространённая практика. И для периодического вдумчивого ремонта регулярно ломающегося компьютера какой нибудь симпатичной девушки её смело могут применять даже любители пингвинов. А если девушек больше некоторого, сугубо индивидуального для каждого самоделкина, количества, то данный метод просто незаменим. Главное не перепутать названия файлов с образами.
Читайте также: