Как создавать образы дисков в Linux с помощью команды DD

DD обходит это, создавая идентичную копию всего жесткого диска или разделов. Поэтому, если вы восстановите эту резервную копию, ваша машина будет восстановлена ​​в исходное состояние. Вы снова получите доступ к своим папкам, играм, истории браузера, а иногда даже к настройкам устройства. Нам понадобится другой диск большей емкости, чем тот, который мы клонируем, чтобы реплицировать ваш диск. Скорее всего, для этой цели понадобится большой жесткий диск.

Форматируем диск в Linux

Сразу отметим, что перед началом форматирования вы должны убедиться в том, что выберите правильный накопитель. Это касается взаимодействия с «Терминалом», поскольку там приходится вручную вводить наименование накопителя. Данной теме посвящена отдельная статья, которую вы можете прочесть, нажав по указанной ниже ссылке. Мы же переходим к непосредственному разбору способов, взяв за пример Ubuntu. Если вы используете другой дистрибутив, то не найдете никаких различий, однако это не относится к третьему методу, потому что он подходит только для окружения Gnome.

Форматируем диск в Linux
Форматируем диск в Linux

Способ 1: Стандартная терминальная утилита mkfs

Форматируем диск в Linux
Форматируем диск в Linux

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

Форматируем диск в Linux
Форматируем диск в Linux

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

Форматируем диск в Linux
Форматируем диск в Linux

Способ 2: Программа Gparted

Форматируем диск в Linux
Форматируем диск в Linux

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

Форматируем диск в Linux
Форматируем диск в Linux
  1. Для начала потребуется установить приложение. Проще всего это сделать через консоль, поэтому запустите ее удобным методом.
  2. Введите команду sudo apt install gparted для запуска инсталляции. Обладателям дистрибутивов на RedHat команду следует немного изменить, чтобы ее внешний вид стал sudo yum install gparted.
  3. Напишите пароль от привилегированной учетной записи для подтверждения своих действий.
  4. Вы будете уведомлены о том, что началось скачивание и инсталляция архивов. После этого появится новая строка для ввода.
  5. Запустите рассматриваемую программу через «Терминал», написав там gparted, или отыщите ее значок в меню приложений.
  6. Подтвердите открытие повторным введением пароля.
  7. В списке выберите необходимый накопитель, который хотите форматировать. Отталкивайтесь от его размера или названия.
  8. Щелкните по строке с разделами ПКМ и выберите вариант «Отмонтировать».
  9. После этого станет активной кнопка «Форматировать в». Нажмите на нее, выберите подходящую файловую систему и следуйте инструкциям.
Форматируем диск в Linux
Форматируем диск в Linux

Если вдруг вы захотели остановиться на другом подобном решении, принцип форматирования от этого практически не изменится. Надо лишь сориентироваться в интерфейсе программного обеспечения и выбрать правильные параметры, чтобы создание новой файловой системы или очистка места на носителе прошла успешно.

Форматируем диск в Linux
Форматируем диск в Linux

Способ 3: Утилита «Диски» (только для Gnome)

Форматируем диск в Linux
Форматируем диск в Linux

Как уже было сказано ранее, последний метод подойдет только тем юзерам, кто использует графическое окружение Gnome. Однако стоит учитывать, что и в других средах рабочего стола есть похожие инструменты, но с определенными отличиями во встроенных функциях и реализации внешнего вида. Форматирование носителя через данную утилиту происходит так:

Форматируем диск в Linux
Форматируем диск в Linux
  1. Откройте меню приложений и отыщите там программу «Диски». Запустите ее путем нажатия по соответствующему значку.
  2. Здесь вам потребуется выбрать необходимый накопитель через меню слева.
  3. Нажмите на значок в виде черного квадрата, чтобы отмонтировать диск.
  4. Теперь щелкните на значок шестеренки и в открывшемся контекстном меню выберите «Форматировать раздел».
  5. Появится новая форма. Заполните ее в соответствии со своими желаниями и запустите процедуру конвертирования и очистки.
Читайте также:  Zip Linux — основные приемы архивирования файлов

Подготовка диска

Переходим к практике. Перед тем как начать непосредственно разметку, необходимо подготовить HDD с установленной Windows. Процесс, который мы будем выполнять, называется сжатие. Дело в том, что изначально неразмеченного пространства нет, поэтому нужно сделать его самостоятельно. Сжимать удобно средствами старой ОС, так как Ubuntu может запросто стереть все установленные файлы с диска C, а вместе с ними и систему.

На новых Windows часто предоставляется один диск C, а диска D нет вообще. Это не очень удобно, поскольку работая с этим разделом, вы рискуете оставить компьютер без операционных систем и уничтожить все данные. Поэтому перед началом всех действий стоит сделать резервную копию и сохранить её на диске или флешке. После этого можно спокойно приступать к сжатию.

Подготовка диска
  1. Открываем утилиту управления дисками. Сделать это можно следующим образом: щёлкаем ПКМ по значку «Этот компьютер» и выбираем «Управление», оттуда открываем эту утилиту.
  2. В утилите выбираем том C, однако, если есть D (что важно), выбираем его. D перед этим стоит отформатировать. Если в процессе форматирования вы не хотите терять все файлы, перекиньте их на C или на внешний носитель. С диском C же так не поступишь, поскольку он системный.
  3. Выбираем C в окошке «Диск 1», жмём ПКМ и там щёлкаем «Сжать том». 
  4. Открывается новое окно. В поле «Размер сжимаемого пространства» ставим столько, сколько не жалко для Убунту, но при этом не в ущерб Windows, так как эти гигабайты потом трудно будет вернуть ей обратно. Оптимально будет освободить для новой системы от 40 ГБ и больше.
  5. После этого нажимаем «Сжать». Важно, чтобы во время сжатия ПК был подключён к сети и не произошло отключение питания. В противном случае винчестер можно потерять совсем.

Самый опасный этап пути пройден. Дальше будем работать с софтом Ubuntu.

Шаг Df

Среди основных команд в Linux есть команда df. Если ввести эту команду в консоли, она предоставит нам базовую информацию обо всех жестких дисках или о любых примонтированных дисках — CD, DVD или флешках. Обычно она используется для быстрого просмотра доступного пространства на наших дисках, поэтому буквы «df» обозначают слова disk free — «свободный диск».

kali> df

Обратите внимание, что наш виртуальный диск был определен системой как sda1, где

Шаг Df
  • sd = SATA-диск
  • a = первый жесткий диск
  • 1 = первый раздел этого диска

И наша 16-гигабайтная флешка обозначена sdb1, а внешний жесткий диск — sdc1.

Выбор файловой системы

Современные дистрибутивы кроме Ext2FS в качестве основной файловой системы могут использовать файловую систему Ext3FS (отличающуюся наличием журнала, что значительно уменьшает вероятность потери данных),  ReiserFS и ряд иных. Утверждают, что Ext3FS медленнее Ext2FS на 5…8%, но по моей субъективной оценке тормозит она несколько больше. ReiserFS является самой быстрой файловой системой при обработке мелких файлов, но считается менее надежной.

Начинающим пользователям Linux можно рекомендовать установку файловой системы Ext3FS на все разделы Linux.

Точки монтирования

Linux не назначает буквы каждому диску и разделу, как в Windows и DOS. Вместо этого вы должны задать точку монтирования для каждого диска и раздела. Linux работает по принципу иерархического дерева каталогов, где корневой каталог ( /) является основной точкой монтирования, в которую по умолчанию входят все остальные. В отличии от Windows в Linux все используемые разделы дисков монтируются в подкаталоги корня, а не как отдельные устройства (C:, D: …).

Читайте также:  Лучшие дистрибутивы Linux, основанные на загрузке Ubuntu

К примеру, в /home хранятся все ваши персональные файлы. Если вы хотите разместить эти данные в отдельном от корня разделе, то создадите новый раздел и установите точку монтирования на /home . Это можно сделать для любого подкаталога. Во время установки Ubuntu предоставляет возможность задать следующие точки монтирования: /boot (начальный загрузчик и заголовки ядра), /dev (драйверы и устройства), /home (пользовательские файлы), /opt (дополнительное программное обеспечение), /srv (системные сервисы) /tmp (временные файлы), /usr (приложения), /usr/local (данные, доступные всем пользователям) и /var (server spool и логи).

Для типичной настольной системы нет никакого смысла выделять собственные разделы для /dev , /opt , /srv , /tmp , /usr/local и /var . Если вы планируете запускать более двух операционных систем или использовать шифрование корневого раздела, то возможно потребуется отдельный раздел для /boot . Иногда стоит также создать раздел для /usr , но только если вы уже имеете чёткое представление о том, сколько места займут приложения. Желательно создать отдельный раздел для /home . Это предоставит вам дополнительные удобства при обновлении и переустановке системы.

Минимально можно ограничится только двумя разделами: «root» и «swap», тогда /boot , /home , /usr и все остальные будут просто храниться в корневом разделе ( /).

Создать образ клонированного диска

Теперь у вас есть почти вся информация о диске «/ dev / sda». Нажмите «q», чтобы выйти из командной темы. Теперь вы готовы создать образ диска с помощью команды DD. Итак, дайте себе понять, что команде DD всегда требуются привилегии sudo для выполнения. Как мы уже знаем из изображения выше, «/ dev / sda» имеет три раздела, и мы создадим образ одного из них. Итак, мы выбрали «sda1» для создания его клона. Вы должны выполнить приведенную ниже команду «DD», за которой следует путь «если» и путь «из». Путь «if» относится к входному диску, который предназначен для клонирования, а путь «of» — к диску устройства вывода, куда он будет скопирован как образ. Итак, из этого вы можете понять, что «» — это клонированный файл для диска, а sda1 — это фактический диск. Мы указали количество байтов в секунду для копирования из одного места в другое. Мы присвоили ему значение 1000. Команда выглядит следующим образом:

sudo dd if=/dev/sda1 of=/tmp/ bs=1k conv=noerror

Выходные данные показывают количество записей, введенных и выведенных из двух мест, например, из источника и назначения. Он также показывает количество байтов с указанием времени в секундах, скопированных в место назначения в МБ. Это означает, что клон был успешно выполнен.

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

ls –lh /tmp/

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

Чтобы увидеть дополнительную информацию о файле образа диска, вы должны попробовать следующую команду «fdisk». За которой следует флаг «-l», как показано ниже.

fdisk –l /tmp/

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

Клонирование и перенос данных

С изменениями и объединениями разделов разобрались, но что делать, если ты купил новый хард и хочешь перенести имеющиеся ОС и данные на него? На самом деле все просто, Linux – гибкая ОС, которую достаточно легко перенести на другой диск. И способов сделать это есть как минимум два: вручную перенести файлы ОС на другой диск, либо скопировать весь жесткий диск/раздел (что удобно при клонировании одной инсталляции на множество машин).

Читайте также:  Команда grep – полезные ключи и примеры использования

Рассмотрим первый способ, взяв за основу дистрибутив Ubuntu Чтобы скопировать его на другой диск, не нужно ничего, кроме диска и набора стандартных утилит командной строки. Вот пошаговое описание всей операции:

1. Подцепляем второй жесткий диск к компу и загружаемся с LiveCD.

2. Определяемся с разделами, которые следует перенести. Обычно Ubuntu установлен либо в один раздел (плюс swap), либо в два: корень и раздел /home. Создаем на новом диске те же разделы (с помощью cfdisk или gparted это сделать легко) и swap. Не забываем сделать корневой раздел загрузочным.

3. Создаем точки монтирования и подключаем к ним разделы старого и нового дисков (/dev/sda – старый диск, /dev/sdb – новый):

# mkdir /mnt/{root1,root2,home1,home2} # mount /dev/sda1 /mnt/root1 # mount /dev/sdb1 /mnt/root2 # mount /dev/sda2 /mnt/home1 # mount /dev/sdb2 /mnt/home2

В командах монтирования подставляем нужные номера разделов.

4. Копируем файлы на новый диск:

# cp -ax /mnt/root1/* /mnt/root2 # cp -ax /mnt/home1/* /mnt/home2

5. Далее выполняем chroot в каталог /mnt/root2, исправляем /mnt/root2/etc/fstab и устанавливаем grub. Но чтобы сделать это, следует смонтировать каталоги /dev и /proc к /mnt/root2:

# mount —bind /dev /mnt/root2/dev # mount —bind /proc /mnt/root2/proc

6. Переходим в песочницу (chroot /mnt/root2) и редактируем /etc/fstab:

# vi /etc/fstab

/dev/sda1 / ext4 errors=remount-ro 0 1 /dev/sda2 /home ext4 defaults 0 2 /dev/sda3 none swap sw 0 0

Указываем нужные имена разделов вместо /dev/sda1, /dev/sda2 и /dev/sda3. Не забываем, что если мы собираемся поставить новый диск на место старого, то его имя будет /dev/sda (а не /dev/sdb, как сейчас).

7. Устанавливаем grub (все описанное актуально только для grub2):

# grub-mkdevicemap # grub-mkconfig > /boot/grub/ # sudo grub-install /dev/sdb

8. Командой exit выходим из chroot, выключаем машину, вынимаем старый диск, ставим на его место новый, включаем машину.

Так называемое клонирование диска, когда вместо отдельных файлов на новый диск переносится образ всего диска или раздела, сделать гораздо проще. Для этого можно использовать штатную утилиту dd:

# dd if=/dev/sda of=/dev/sdb bs=4k

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

Устранение неполадок в таблице разделов

После удаления одного или нескольких разделов диска Linux не случайно найти сообщение «раздел не в порядке». Это может произойти в системе с четырьмя разделами, где номер 3 удален. Вы можете ожидать, что сможете создать новое число 3, но на самом деле происходит то, что число 4 автоматически переименовывается в 3, а свободное место перемещается в конец.

Это приводит к сообщению об ошибке «Записи таблицы разделов не в порядке дисков».

Чтобы это исправить, выберите диск и введите x, чтобы использовать дополнительные функции (см. Список выше).

fdisk /dev/sda

После этого введите команду f, чтобы исправить порядок таблицы разделов.

Снова завершите это, введя w, чтобы записать обновленную таблицу на диск и выйти.