Если вы абсолютно уверены, что были заполненные нулями блоки, то причиной, по которой вы не сохранили места, был большой используемый буфер. От man dd
:
sparse
поиск, а не запись вывода для блоков ввода NUL
Вы использовали bs=32M
, поэтому вам нужно было все 32 МБ нулей с правым смещением, чтобы опция conv=sparse
выполняла свою работу хотя бы один раз.
Опция bs
устанавливает ibs
(размер входного блока) и obs
(размер выходного блока). В то время как в руководстве упоминаются блоки ввода, на самом деле имеет значение obs
.
Вот результаты некоторых тестов. (Поскольку я являюсь ОП, я провел тесты на том же устройстве.) Каждый файл назван в соответствии с <obs_used>.img
. Обратите внимание на первый столбец:
$ ls -hlst *.img
250M -rw-r--r-- 1 root root 250M Oct 18 22:02 4M.img
250M -rw-r--r-- 1 root root 250M Oct 18 22:02 2M.img
249M -rw-r--r-- 1 root root 250M Oct 18 22:02 1M.img
248M -rw-r--r-- 1 root root 250M Oct 18 22:01 512K.img
248M -rw-r--r-- 1 root root 250M Oct 18 22:01 256K.img
247M -rw-r--r-- 1 root root 250M Oct 18 22:00 128K.img
247M -rw-r--r-- 1 root root 250M Oct 18 21:57 64K.img
247M -rw-r--r-- 1 root root 250M Oct 18 21:56 32K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:55 16K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:54 8K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:53 4K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:52 2K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:51 1K.img
246M -rw-r--r-- 1 root root 250M Oct 18 21:44 512.img
Вывод: вы не должны использовать большие obs
с параметром conv=sparse
. Общий размер сектора составляет 512 байт, поэтому bs=512
кажется правильным. Ваша команда должна была быть:
dd if=/dev/sdb of=myusb.img conv=sparse bs=512