tar/dd — Ошибка записи на ленточный накопитель — Устройство или ресурс заняты

Я попытался передать tar на dd и использовать dd для записи на ленту, чтобы добиться прогресса:

      export TAPE=/dev/nst0
tar -b 128 -c *| dd of=$TAPE bs=65536 status=progress

Однако я получил ошибку

      tar: /dev/nst0: Cannot open: Device or resource busy
tar: Error is not recoverable: exiting now

tar dd сами по себе прекрасно записывают на диск.

1 ответ

Ключ к этой проблеме кроется в сообщении об ошибке. Оно начинается с «tar». Tar должен, как всегда, писать на стандартный вывод, а не на диск. dd выполняет запись на диск. Оказывается, если установлена ​​переменная TAPE, tar предпочитает записывать на ленточный накопитель, а не в канал. Поэтому я исправил это, передав '-f -':

      tar -b 128 -c -f - *| dd of=$TAPE bs=65536 status=progress
Другие вопросы по тегам