Что идет не так, как надо здесь (стирающий мой домашний раздел)

Я использую команду 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

Любая справка очень ценилась бы!

1
задан 12 October 2018 в 07:57

1 ответ

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
3
ответ дан 3 December 2019 в 07:22

Другие вопросы по тегам:

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