
Я ищу способ клонировать жесткие диски (в основном разделы Windows), оставаясь внутри ОС Ubuntu. Я не хочу создавать раздел на жестком диске для загрузки и не хочу использовать загрузочный CD. Единственное, что я могу придумать, что близко, это 32-битная версия Ghost, которая может запускаться с рабочего стола в Windows.
Это не обязательно должна быть clonezilla, но это единственное ПО для клонирования Linux, которое я использовал, и почти использовал его исключительно с тех пор, как я его обнаружил. Если нет возможности использовать clonezilla с рабочего стола, то я приму альтернативную программу. Главное, что она клонирует диски и работает из Ubuntu.
Спасибо за ваше время заранее.
решение1
Clonezilla использует dd
закулисные функции.
О дисках и разделах
Целый диск — это устройство, например /dev/sda
. Это первый диск, второй диск — /dev/sdb
, третий /dev/sdc
и т. д. Старые диски, подключенные через кабель IDE, называются как hda
, hdb
, ... Диск может иметь несколько разделов, например /dev/sda1
. Второй раздел на диске /dev/sda
— /dev/sda2
и т. д. Образ (буквальная копия байтов) может быть создан как из раздела, так и из диска. Обратите внимание, что первые 512 байт диска содержат MBR (главную загрузочную запись).
Раздел не следует монтировать при создании или восстановлении образов, в противном случае возможна потеря данных при чтении из него (создании образа) или непредвиденное поведение и повреждение данных при записи в него (восстановлении из образа).
В приведенных ниже примерах /dev/sda1
— это раздел, из которого следует создать образ.
Разделы и дисковые устройства доступны /dev
для записи только суперпользователю (root) и пользователям группы disk
. Мне не нравится запускать все как root, поэтому для безопасности (например, на случай, если вы допустили опечатку) я временно меняю группу на себя, чтобы иметь возможность читать и писать в нее:
sudo chgrp my_user_name /dev/sda1
Если вы пропустите указанную выше команду, вам необходимо добавить dd
к приведенным ниже командам префикс sudo
.
Основы
Основная команда для создания образа из раздела:
dd if=/dev/sda1 of=disk.img
if
означает "входной файл", of
означает "выходной файл". В Linux все является файлом, даже устройства.
Чтобы восстановить такой образ, выполните:
dd if=disk.img of=/dev/sda1
Порядок не имеет значения, вы могли бы написать dd of=/dev/sda1 if=disk.img
и так, как указано выше.
Сжатые изображения
Поскольку разделы, как правило, большие, рекомендуется сжимать данные перед записью их в образ:
dd if=/dev/sda1 | gzip > disk.img.gz
Это работает, потому что если of
опущено, вывод записывается в "стандартный вывод", который является каналом для программы сжатия gzip
. Вывод этого записывается в disk.img
.
Чтобы восстановить такой сжатый образ, выполните:
gunzip -c disk.img.gz | dd of=/dev/sda1
Здесь, gunzip
является обратной командой gzip. -c
заставляет вывод быть записанным в стандартный вывод, который является каналом для dd
команды. Поскольку if
опущено в dd
, ввод считывается из "стандартного ввода", который является выводом gunzip
.
Чтение с изображения без его восстановления
Несжатые образы можно монтировать, чтобы можно было читать с них. Если вы сжали образы разделов, сначала распакуйте их ( disk.img.gz
будут удалены, disk.img
будут созданы. Убедитесь, что у вас достаточно места!):
gunzip disk.img.gz
Либо распакуйте изображение, не трогая само изображение:
gunzip -c disk.img.gz > disk.img
Теперь создайте каталог, в который можно смонтировать диск, и смонтируйте образ только для чтения ( ro
):
sudo mkdir /mnt/wind
sudo mount -o ro disk.img /mnt/wind
Теперь вы можете просматривать свои файлы в /mnt/wind
. Когда закончите, размонтируйте его и удалите устаревшую точку монтирования:
sudo umount /mnt/wind
sudo rmdir /mnt/wind
Меньше размер, больше загрузка ЦП, больше времени на резервное копирование и восстановление
Если время не проблема и у вас мало места для хранения, вы можете использовать формат bzip2
сжатия. Просто замените gzip
на bzip2
в приведенном выше коде. Обычно расширение используют .bz2
для файлов, сжатых bzip2, так и сделайте.
решение2
Хотите клонировать один жесткий диск на другой? Есть несколько способов сделать это. Я обычно предпочитаю команду dd. Обратите внимание, что для использования этой команды вам понадобится доступ sudo.
Чтобы клонировать жесткий диск 1 на жесткий диск 2, обратите внимание, что жесткий диск 2 должен быть большего размера, чем жесткий диск 1. Если исходный жесткий диск — sda, а целевой жесткий диск — sdb, то вы можете скопировать все содержимое sda на sdb, используя следующую команду.
dd if=/dev/sda of=/dev/sdb
Чтобы клонировать весь жесткий диск 1 в образ, используйте следующую команду. Обратите внимание, что ~/disk1.img должен находиться на другом диске
dd if=/dev/sda of=~/disk1.img
Чтобы клонировать один раздел в образ, используйте следующую команду. Обратите внимание, что файл образа не должен находиться на том же разделе.
dd if=/dev/sda1 of=~/drive1.img
Для восстановления изображения используйте следующую команду.
dd if=drive1.img of=/dev/sda1 - For Partition dd if=disk1.img of=/dev/sda - For whole hard disk
Вы также можете сэкономить место, сжав файл изображения.
gzip disk1.img - This will generate disk1.img.gz bzip2 disk1.img - This will generate disk1.img.bz2
Учтивость:Резервное копирование Linux: клонирование жесткого диска с помощью «dd»