LINUX.ORG.RU

Поясните за dd и xz непосвященному

 , , ,


0

2

Приветствую, дорогие мои старики!

  1. Объясните на примерах принцип работы dd.
  • У меня есть диск от 3 плойки, если я запишу его в образ, а потом накачу заново на этот же (или другой) диск, оно будет живо или нет? Параметр bs имеет значение? Я могу поставить самое большое значение, что копировалось (клонировалось?) как можно быстрее?
  • Или, например, я могу закатать в образ диск с личными архивами, а потом просто скопировать гиганский файл на другой диск, примонтировать и радоваться?
  1. Какое сжатие самое эффективное? Если мне не важна скорость, а важен предельно маленький размер. Я когда-то давно видел установщик для винды, который весил 3.5 GB до установки, а после установки 10+ гигов, нехилое сжатие…

С другой стороны, доверия к xz как-то поубавилось, после бекдора, даже несмотря на то, что это, вроде как, самый имбовый сжимальщик, судя по статьям в этих ваших интернетах…

  • Я могу сжать тот же образ dd, а потом его примонтировать?


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

закатать в образ диск с личными архивами

Можешь, но если он живой лучше переносить архив файлами, а не весь диск целиком.

диск от 3 плойки, если я запишу его в образ, а потом накачу заново на этот же (или другой) диск

Это нужно искать пиратов-динозавров. Емнип, во времена xbox360 образы снимались на минимальных скоростях и потом опять на минимально возможной скорости резались. Как, почему, зачем - не знаю, ни разу не занимался.

Объясните на примерах принцип работы dd.

dd if=/path/to/imageOS.iso of=/path/to/usbflash/in/dev bs=4M
Еще можно снять образ диска и творить с ним всякое (типо поика и восстановления случайно снесенной информации). Для спасения с сыпящихся дисков в горящем танке есть ddrescue.

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

Это нужно искать пиратов-динозавров. Емнип, во времена xbox360 образы снимались на минимальных скоростях и потом опять на минимально возможной скорости резались. Как, почему, зачем - не знаю, ни разу не занимался.

Упс, я имел в виду hdd от плойки, просто я время от времени его пользую, потом приходится всё ставить заново, вот и подумал, что dd может помочь. Хотя запись и дамп игр тоже вещь интересная)

Reptile
() автор топика
Ответ на: комментарий от Reptile

Да можно снять образ с диска dd и затем раскатать обратно.
Типо такого dd if=/dev/input/DEVICE-HERE of=/dev/OUTPUT/DEVICE-HERE bs=64K conv=noerror,sync.
bs указывать необязательно.
Еще можно сразу при снятии записывать сжатый образ (например, gzip'ом), легко гуглятся примеры.

sehellion ★★★★★
()

Ну а ближе к делу, конечно это
dd if=/dev/sdb | gzip -c > image.gz - сняли образ
gunzip image.gz -c | dd of=/dev/sdb - раскатали обратно.
С xz как-то аналогично. Можно ли примонтировать пожатый образ - не уверен. Играться с типами сжатия особого смысла кмк нет, т.к. пустые сектора (читай куча нулей) - справится любой хорошо, а со слабосжимаемыми данными - плюс\минус все страданут.
Вот еще старенькая статья по похожей теме http://nethuman.blogspot.com/2008/07/dd-gzip.html
Имея желание можно найти и посвежее и поподробнее. Или просто маны почитать.

sehellion ★★★★★
()

Я могу сжать тот же образ dd, а потом его примонтировать?

Тоже заинтересовался - нарыл в интернете, что можно сделать через squashfs. Монтировать сначала squashfs, затем образ с неё.

Я могу поставить самое большое значение, что копировалось (клонировалось?) как можно быстрее?

Слишком большие значения могут замедлить, съев весь кэш и/или озу. ИМХО.

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

проще файлы скопировать

NyXzOr ★★★★
()
Ответ на: комментарий от firkax

Я обычно указываю 1048576.

Там же можно суффиксы указывать:

N  and  BYTES  may  be  followed  by  the  following  multiplicative  suffixes:  c=1,  w=2,  b=512,  kB=1000,  K=1024, MB=1000*1000, M=1024*1024, xM=M, GB=1000*1000*1000, G=1024*1024*1024, and so on for T, P, E, Z, Y, R, Q.  Binary prefixes can be used, too: KiB=K, MiB=M, and so on.  If N ends in  'B', it counts bytes not blocks.
wandrien ★★
()

bs - это количество данных которые копируются за один раз. Если скажем указать 1M то будет куда быстрее чем с дефолтным bs=512 байт, но прямо слишком много тоже не стоит указывать. Если копируется не вся инфа, а часть, то bs имеет значение поскольку умножается на count. Например bs=1M count=1024 скопирует ровно один гигабайт данных, как и bs=4M count=256.

Xenius ★★★★★
()
Ответ на: комментарий от wandrien

Вроде не во всех реализациях dd они поддерживаются и мне лень запоминать где какая. Хотя сейчас проверил на фрибсд - тоже работают. Может где-то на старых версиях не работало или на какой другой ОС.

firkax ★★★★★
()

увеличение bs уменьшает количество файловых операций, чем увеличивает скорость копирования. но зависимость ~логарифимическая, т.е. увеличение bs выше «больших чисел» уже не даст прирост скорости.

с помощью dd копируют файловую систему со всеми заголовками, остатками данных, пустотами и прочим.
применяется там где надо сохранить фс со всеми её мелочами.
если таких требований нет - копируй файлами.

pfg ★★★★★
()
Ответ на: комментарий от Reptile

Лучше ddrescue для такого, dd может зависнуть на бед-блоке и долбить диск, пока не убъет: https://wiki.gentoo.org/wiki/Ddrescue#Disk_to_image

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

Vsevolod-linuxoid ★★★★★
()