Я прочитал много руководств и сообщений на форуме , описывающие , как использовать dd
, но одна вещь , которую я заметил, что люди всегда используют различные значения для bs=
, count=
и seek=
переключатели.
Кто-нибудь может объяснить, что именно делают эти переключатели (справочная страница не очень подробная), и объяснить, какие настройки для них лучше всего подходят для различных задач, таких как создание файлов из / dev / random или / dev / zero и перезапись перегородки и внешние накопители.
Ответы:
Я действительно не знаю, как объяснить это лучше, чем справочная страница.
bs=
устанавливает размер блока, напримерbs=1M
, будет размер блока 1 МБ.count=
копирует только это количество блоков (по умолчанию dd продолжает работать вечно или пока не закончится ввод). В идеале блоки имеютbs=
размер, но могут иметь место неполные операции чтения, поэтому, если вы используетеcount=
для копирования определенный объем данных (count*bs
), вы также должны предоставитьiflag=fullblock
.seek=
ищет это количество блоков в выводе вместо записи в самое начало устройства вывода.Так, например, это копирует 1MiB
y\n
на 8MiB выходного файла. Таким образом, общий размер файла составит 9 МБ.Поскольку вы упоминаете
/dev/random
и перезаписываете разделы ... это займет вечность, так/dev/random
как (а также/dev/urandom
) слишком медленный. Вы можете просто использоватьshred -v -n 1
вместо этого, это быстро и обычно доступно где угодно.источник
Хорошо, вы сказали, что справочные страницы не детализированы, поэтому я объясню, что они имеют в виду, с помощью простых для понимания метафор о движущемся парне (так называется имя
dd
):dd
поднимает что-то (коробки, вазы, кровати, рис и т. д.), перемещается туда, где это необходимо, и бросает. Пока он не уронит груз, он больше ничего не выберет. Теперь, когда вам нужно точно сказать ему, сколько объектов он должен выбрать за путешествие, это то, чтоbs
нужно сделать. Вы устанавливаете количество данных, которые он будет читать и записывать. Это почти обязательно во всех полезных и общих командах.Это определит общее количество ящиков, которые он будет перемещать. Коробки в этом контексте - это блоки на диске . Вы говорите ему переместить 5 коробок, он перемещает только 5 коробок, даже если имеется более 5 коробок (если меньше 5 коробок, он возьмет вазу, которую он обнаружит, кроме коробок, чтобы сложить ее). Если вы скажете ,
dd
чтобыcount
только 5, и записать его куда - нибудь, он будет копировать первые 5 блоков , которые он видит и записать их , где вы хотите.Парень обычно находит первое доступное место для сброса нагрузки, это обычно в начале (на диске) и продолжает заполняться до конца. Ну, с этим вы говорите,
dd
чтобы начать дальше, скажем, вместо зала, начните в одной из комнат дальше внутри. Это просто «пропустить» стартовые блоки.Теперь, в зависимости от того, что вы делаете, вам потребуются разные комбинации в зависимости от источника и места назначения, а также формата, в котором они будут читаться и записываться. Я рекомендую вам искать их отдельно.
источник