Backup

dd 無法寫入磁帶機

  • April 1, 2014

我正在嘗試將我們的線上備份轉儲到磁帶;出於顯而易見的原因,我想加密磁帶上的數據,所以要寫入磁帶,我需要將所有內容壓縮,將其傳輸到 openssl 以對其進行加密,然後將其寫入磁帶:

tar c /etc | openssl aes-128-cbc -salt -pass "pass:Test123" | dd of=/dev/nst0

但是,似乎 dd 不喜歡這樣。從 tar 直接寫入磁帶可以正常工作:

svr-bup1 # tar cf /dev/nst0  /etc
tar: Removing leading `/' from member names
svr-bup1 #

將 dd 添加到鏈中併中斷:

svr-bup1 # tar c /etc | dd of=/dev/nst0
tar: /dev/nst0: Cannot open: Device or resource busy
tar: Error is not recoverable: exiting now
0+0 records in
0+0 records out
0 bytes (0 B) copied, 9.6274e-05 s, 0.0 kB/s

無論是否使用 openssl 命令,都會發生同樣的情況;我在上面省略了它以簡化測試。

mt 命令工作正常(設置了環境變數 TAPE):

svr-bup1 # mt status
SCSI 2 tape drive:
File number=6, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x46 (LTO-4).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
svr-bup1 # mt rewi
svr-bup1 # 

硬體是 HP 1720 LTO4 SAS 驅動器,在 CentOS 6 上使用 mpt2sas 驅動程序。

預設情況下,您的版本tar似乎正在嘗試寫入磁帶設備,而不是標準輸出。它似乎是 GNU tar自動檢測磁帶驅動器是 GNU tar 1.11.5 版本之前的預設設置,我懷疑你有這麼舊的版本。預設情況下,其他 UNIX 系統上的 tar 版本也可能會嘗試寫入磁帶設備。

f通過指定ile強制 tar 寫入標準輸出-

tar cf - /etc | dd of=/dev/nst0

引用自:https://serverfault.com/questions/585771