LINUX.ORG.RU

склонировать диск, но частями

 ,


0

1

Имеется ноутбук, 2 HDD объёмом 1Tb, usb-hdd box одна штука и где-то 400Gb свободного места на ноутбуке.
Надо склонировать один HDD на другой. Даже с сжатием образ диска явно не влезает в имеющееся свободное место.

Я правильно понимаю, что я могу делать частями примерно вот так (сжатие и перенаправление в файл посредник пропустил)

  • dd if=/dev/sda bs=1M count=400000 ...
  • подключаю второй HDD вместо первого
  • dd of=/dev/sda
  • опять подключаю первый HDD
  • dd if=/dev/sda bs=1M skip=400000 count=400000 ...
  • подключаю второй HDD вместо первого
  • dd of=/dev/sda skip=400000 ...

И так далее пока не перенесу все части?

Вроде выглядит просто и логично, но что-то меня заставляет думать что где-то у меня смещения не сойдутся и данные «поедут».
Плюс беглый поиск ничего по теме не выдал

★★

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/storage_administration_guide/ext4backup

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/storage_administration_guide/xfsbackuprestore

У LVM тоже есть варианты, если нужно.

Или данных на ФС на диске так много, что если копировать только её, все равно не влезет?

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)

Вроде выглядит просто и логично

в принципе да, только для output флаг seek вместо skip.

После копирования можно сравнить sha512 от копии и оригинала.

MirandaUser2
()
Ответ на: комментарий от Vsevolod-linuxoid

Увы, мне это бесполезно. В моём случае там условно один большой ext4 забитый под завязку.

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

Flotsky ★★
() автор топика

если диски разные (фирма, серия и тп), то, скорее всего, размеры разные. Если источник больше приемника, то конец не влезет, а в конце часто всё самое интересное (важное).

anonymous
()
Ответ на: комментарий от aol

о, пардоньте, под usb-hdd box я подразумеваю коробку с внешним питанием в которую можно воткнуть SATA HDD диск. Такая у меня одна. А HDD дисков 2. И более нет способов как либо подключить диски

Flotsky ★★
() автор топика

Все ты верно мыслишь. Я бы сделал только чуть-чуть оптимальней (имхо).

dd if=/dev/sda bs=1M | zstd - -o /path/file.img.z

zstd -d /path/file.img.z | dd of=/dev/sda bs=1M

В сводке dd тебе скажет сколько блоков он отправил и в следующей итерации вставит соответствующий skip=XXX Я бы откатил это число на пару блоков.

dd if=/dev/sda bs=1M skip=XXX | zstd - -o /path/file.img.z

zstd -d /path/file.img.z | dd of=/dev/sda bs=1M skip=XXX

Если повезет и образ хорошо сожжмется, итераций будет заметно меньше пяти…

usermod
()
Ответ на: комментарий от Flotsky

У тебя компа что ли нету? Так то твой способ полностью рабочий, но очень сложно представить как ты мог оказаться в такой ситуации.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Разбей с помощью 7z или rar, нужно будет алгоритм сжатия только подобрать чтобы соотношение CPU и скорости интерфейса было оптимальным.
И проверить легко потом, символьные ссылки на части архива с разных дисков в tmpfs создать и проверить. Можно тоже в несколько архивов, а не просто архив по частям.
Но главная проблема это если сеть отпадёт, то не хочется потом сначала всё начинать, тут я не знаю что делать.

drl
()

Увы не уверен в результате. Распаковка упала, значения записанных байтиков явно не сходятся

# dd if=/dev/sdb status=progress bs=1M skip=490000 | zstd > ./disk_dd_bs\=1M_skip\=490000.img.zstd 
486402646016 bytes (486 GB, 453 GiB) copied, 11521,6 s, 42,2 MB/s
# zstdcat ./disk_dd_bs\=1M_skip\=490000.img.zstd | dd of=/dev/sdb status=progress bs=1M seek=490000
486375555072 bytes (486 GB, 453 GiB) copied, 11199 s, 43,4 MB/sskip=490000.img.zstd : Decoding error (36) : Restored data doesn't match checksum 
486402555904 bytes (486 GB, 453 GiB) copied, 11272,8 s, 43,1 MB/s

Не смотря на это ФС монтируется, файлики вроде есть. Но мой внутренний параноик не позволит мне этим пользоваться.

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

Flotsky ★★
() автор топика