1

Я использую dd в Linux для извлечения данных с ленты (да, это действительно oldschool!) и у меня была проблема. Иногда, когда я извлекаю файл (из разных файлов на одной ленте), после очень долгого времени и действительно большого размера извлечения файла извлечение еще не завершено. Так что это проблема, потому что я знаю, что размер файла составляет около 10 МБ, а не 1 ГБ или более. Я знаю количество блоков в файле (например, 4092), поэтому я хотел бы остановить извлечение на этом количестве блоков. Вы знаете, возможно ли, например, остановить добычу на 4092 блоках?

Я долго искал в интернете и не нашел команды по этому поводу.

Я использую эту команду для извлечения файлов с ленты:

sudo mt -f /dev/nst0 of=file.out bs=512 conv=noerror,sync

1 ответ1

1

Вы можете использовать опцию "count" для dd, чтобы указать количество блоков для копирования; в сочетании с опцией размера блока "bs" это позволяет вам контролировать объем извлекаемых данных. Обратите внимание, что меньший размер блока также может привести к увеличению времени передачи, в зависимости от типа устройства.

Сначала разместите ленту по мере необходимости, например, в блоке 2048:

mt -f /dev/nst0 setblk 2048

Затем используйте команду dd для чтения с соответствующего устройства (примечание: может быть несколько похожих ленточных устройств, проверьте информацию о драйвере, чтобы найти устройство без перемотки, если вы хотите впоследствии прочитать другие файлы):

sudo dd if=/dev/nst0 of=file.out bs=1024 count=37 conv=noerror,sync

Это будет считывать 37 килобайт с начальной позиции блока 2048 в блоках (то есть в буферах) по 1024 байта каждый.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .