Following instructions on this page, the page showed в dd
command and в sync
option at the end. The command is the following:
xzcat ~/ubuntu.img.xz | sudo dd of=/dev/sdX bs=32M sync
I know what is dd
and how it works but гve never heard of or used the sync
option with it and its учебник page entry is like:
sync pad every input block with NULs to ibs-size; when used with
block or unblock, pad with spaces rather than NULs
What is NUL
and why is it padded to ibs-size
, and why bother padding the дата blocks and использовала the sync
option with the dd
command? Простой Why not keeping it and easy?
When I try to run sync
with the command эксперт it is with the appropriate location and оцени I get the following ошибка:
dd: unrecognized operand ‘sync’
Try 'dd --help' for more information.
Вы неправильно читаете команду. Это:
xzcat ~/ubuntu.img.xz | sudo dd of=/dev/sdX bs=32M
sync
sync
отдельная команда, здесь. См. man 1 sync
:
NAME
sync - flush file system buffers
SYNOPSIS
sync [OPTION]
DESCRIPTION
Force changed blocks to disk, update the super block.
Своего рода очевидное, почему это используется, как только Вы думаете о кэшировании.
Что касается dd
опция Вы читаете, это - значение для conv
опция :
Each CONV symbol may be:
ascii from EBCDIC to ASCII
...
sync pad every input block with NULs to ibs-size; when used with
block or unblock, pad with spaces rather than NULs
, Если это использовалось (который это не), это использовалось бы таким образом:
dd ... conv=sync
Я нашел, что система Linux, не dd, кэширует буферы. Поэтому, когда команда dd завершилась, я выполняю синхронизацию как
sudo dd if=my.downloaded.iso of=/dev/sd(?) bs=1M && sync
, я не использовал внутренней dd опции вызвать буферное сбрасывание. Обычно, хотя, когда я создаю версию USB распределения, я - единственный на компьютере, таким образом, у меня нет приступов растерянности о моем отправленном вреде причиняющего команды. Так как я выполняю синхронизацию как & & синхронизация сделана с sudo правами, и я уверен, что USB, который я создаю, завершен.
По умолчанию dd считает в данных один блок за один раз, возможно читая в более коротком блоке, чем определенный пользователь, или в конце файла или из-за поведения исходного устройства; это называют частичная запись . Это тогда выпишет блок, это - тот же размер как сумма, которую это считало.
Dd повторит это, пока указанное количество не будет достигнуто, или он видит eof на входе или ошибку на вводе или выводе. Когда это заканчивается, dd сообщает о количестве полных и частичных записей, которые это считало и записало.
Это поведение хорошо для копирования обычного файла в файловой системе или по сетевому соединению TCP, так как это рассмотрело поток байтов. Но другие объекты файловой системы, такие как необработанные DVD и магнитная лента, требуют размеров записи, которые являются в определенных диапазонах и являются раундом несколько из некоторой суммы (такие как 512 или 2 048 байтов). Например, если у Вас есть образ диска, который является 255 дорожками 63 512-байтовых секторов, и хотят записать в ленту, которая требует размера блока 1 024 байтов, необходимо было бы сделать что-то как
dd if=disk.img of=/dev/rmt0 bs=1k conv=sync
, чтобы удостовериться, что dd не пытается выписать 512-байтовый блок в конце. Более короткий блок в конце будет дополнен, обнуляет или очищает. Дополнение обнуляет, безопасный, общий выбор. Опция для dd для дополнения пробелами полезна в другой ситуации - преобразование файла, который имеет строки переменной длины одной со строками фиксированной длины.
Можно использовать sync
опция для вывода, который включен в dd
команда, oflag
символ:
xzcat ~/ubuntu.img.xz | sudo dd of=/dev/sdX bs=32M oflag=sync