Я использую команду DD
sudo dd if=/dev/zero of=/dev/sda4 bs=10M
от Xubuntu живут USB. SDA4 является моим Домашним разделом, который был вытерт обычно прежде, чем попытаться использовать эту команду.
Это - ошибка, которую я возвращаю в терминале:
dd: error writing '/dev/sda4': No space left on device
28474+0 records in
28473+0 records out
298563141632 bytes (299 GB, 278 GiB) copied, 4957.43 s, 60.2 MB/s
Любая справка очень ценилась бы!
dd
продолжает писать, пока это не заполняет все устройство, ошибка "Никакое пространство, оставленное на устройстве", означает, что это полно. Это записало 298563141632 байта (299 ГБ, 278 гибибайт), и Вы сказали, что Ваш sda4 составляет 278 гибибайт, таким образом, Вы уже заполнили его нулями, это работало, и ничто не пошло не так, как надо.
Очевидно dd
не заботится так очень о записи полных блоков, она выписывает столько, сколько она может и сообщать о записи той меньшего количества блока, чем она читала.
Только для перепроверения я попробовал этот маленький эксперимент с 1M циклическое устройство:
fallocate -l 1M file1
sudo losetup /dev/loop1 file1
sudo hd /dev/loop1
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00100000
мои fallocate уже обнуляют заливки, таким образом готовые к записи dd в 2M и 700 000 блоков к 1 048 576 устройствам
$ dd if=/dev/zero bs=2M |tr '\0' x | sudo dd of=/dev/loop1 bs=2M
dd: error writing '/dev/loop1': No space left on device
0+121 records in
0+120 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0274112 s, 38.3 MB/s
Никакое пространство не оставило ошибку, но все еще записало x's в каждый байт/dev/loop1
$ sudo hd /dev/loop1
00000000 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 |xxxxxxxxxxxxxxxx|
*
00100000
$ sudo dd if=/dev/zero of=/dev/loop1 bs=700000
dd: error writing '/dev/loop1': No space left on device
2+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0148556 s, 70.6 MB/s
Снова с немного меньшим бакалавром наук, все еще заполнил устройство
$ sudo hd /dev/loop1
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00100000
Даже соответствие бакалавру наук к размеру устройства (в этом примере 1M) все еще дает ошибку
$ sudo dd if=/dev/zero bs=1M of=/dev/loop1
dd: error writing '/dev/loop1': No space left on device
2+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0164516 s, 63.7 MB/s
Если Вы не соответствуете размеру bs
& count
(после заполнения x's снова)
$ sudo dd if=/dev/zero of=/dev/loop1 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0213422 s, 49.1 MB/s