将两个 tar 存档写入磁带后:
$ mt -f /dev/st0 rewind
$ tar cvf /dev/nst0 first
$ tar cvf /dev/nst0 second
为什么我需要读磁带三次阅读二档案?
$ mt -f /dev/st0 rewind
$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_EN
$ tar tvf /dev/nst0
drwxrwxr-x oskar/oskar 0 2017-03-23 11:35 first/
$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=10, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (1010000):
ONLINE IM_REP_EN
$ tar tvf /dev/nst0
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
$ tar tvf /dev/nst0
drwxrwxr-x oskar/oskar 0 2017-03-23 11:37 second/
$ mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=3, partition=0.
Tape block size 0 bytes. Density code 0x44 (LTO-3).
Soft error count since last status=0
General status bits on (1010000):
ONLINE IM_REP_EN
答案1
在第一个文件的末尾tar tvf
,磁带留在第一个文件的最后一个块上。第二个文件tar tvf
再次读取该内容,并抱怨,但这样做会将磁带保留在第二个文件的第一个块上,因此第三个文件tar tvf
可以工作。
当处理磁带上的多个文件时,您应该mt
在运行之前在文件之间移动tar
:
mt -f /dev/st0 rewind
tar tvf /dev/nst0
mt -f /dev/nst0 fsf 1
tar tvf /dev/nst0