команда dd параметр bs в конце диска

  1. Ваш пользователь должен иметь, по крайней мере, разрешения на запись и выполнение в целевой директории любым способом (т.е. если ваш пользователь является владельцем, по крайней мере, разрешения 300, если ваш пользователь не является владельцем, но входит в группу, по крайней мере, разрешения 030, и если ваш пользователь не является владельцем и не входит в группу, по крайней мере, разрешения 003)

  2. Ваш пользователь должен иметь, по крайней мере, разрешения на чтение и выполнение в исходном каталоге любым способом (т.е. если ваш пользователь является владельцем, по крайней мере, разрешения 500, если ваш пользователь не является владельцем, но входит в группу, по крайней мере, разрешения 050, и если ваш пользователь не является владельцем и не входит в группу, по крайней мере, разрешения 005)

Причина, по которой ему необходимо иметь разрешение на запись (в первом случае) и разрешение на чтение (во втором случае), довольно очевидна; Причина, по которой необходимо иметь права на выполнение в обоих случаях, заключается в том, что для записи / чтения файлов необходимо иметь доступ к каталогу, который разрешен только в том случае, если пользователь имеет права на выполнение на целевой каталог / исходный.

10
17.03.2018, 14:07
2 ответа

Все устройство вывода стирается независимо от того, кратен ли его размер размеру блока, который вы передаете в ddили нет.

Флаг notruncне действует, когда выходным файлом является файл устройства, поскольку усечение файла устройства не имеет никакого эффекта. Если бы вывод был обычным файлом, это привело бы к тому, что выходной файл не усекается перед записью, что в некоторых файловых системах означает, что старые данные перезаписываются (, а не записываются новые блоки данных, а остальные остаются неприкрепленными. ), однако это было бы бесполезно, поскольку это свойство не гарантируется всеми файловыми системами, и, кроме того, команда не только перезапишет файл, но и продолжит запись, пока он не заполнит выходной диск (или не произойдет какая-либо другая ошибка ).

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

cat /dev/zero >/dev/sdX

Вопреки распространенному в сети мнению, в ddнет абсолютно никакой магии, которая делала бы его лучше подходящим для записи на диск. Магия находится в файлах /dev. Любой инструмент, который может работать с двоичными данными, например любой современный catили head, может выполнять ту же работу, что и dd, если вы не передаете флаги, такие как seekили skip.

Обратите внимание, что проблема, общая для ddи cat, заключается в том, что при успешной операции они выдают ошибку «Нет места на устройстве» (ENOSPC ). Если вы поместите это в сценарий, вам нужно либо убедиться, что ошибка ENOSPC, либо использовать другой метод. Более надежный метод заключается в том, чтобы сначала определить размер устройства (, т.е. используя /proc/partitionsпод Linux ), затем запишите точное количество байтов с помощью такого инструмента, как head.

size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX
12
27.01.2020, 20:00

Нет проблем — ddзаписывает в самый конец (No space left on device), если не исчерпан ввод, ограничен count=xили возникает другая ошибка (, например. плохие сектора, плохой кабель и т. д. ).

Если вашей целью является перезапись всего блочного устройства, проще использовать shred.

shred -v -n 1 /dev/deleteme     # pseudorandom data
shred -v -n 0 -z /dev/deleteme  # zeroes

Илиcryptsetupдля случайных данных с шагом проверки (нули шифруются в случайные данные; случайные данные расшифровываются до нуля ).

илиblkdiscardдля твердотельных накопителей.

Или wipefs, если речь идет о том, чтобы начать с нуля, а не о принудительном избавлении от всего, что вы когда-либо хранили на диске.

8
27.01.2020, 20:00

Теги

Похожие вопросы