我目前正在尝试使用以下方法将数据备份到 LTO-4 磁带上mt-st
和 gnu tar
1.32,但我想确保在磁带用完之前停止尝试复制内容! LTO-4名义上具有800G或1.6T压缩容量。tapeinfo -f /dev/nst0 | grep Comp
回报
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x1
DeCompType: 0x1
我认为这意味着压缩已启用?然后,我再次使用 向磁带添加存档mt-st -f /dev/nst0 eod ; tar -czf /dev/nst0 directoryname
,因此我还使用 gzip 压缩该存档。
简而言之,我不知道如何可视化磁带上的档案占用了多少数据,它们以块为单位进行测量,并且我不知道一个块包含多少数据。我已经将大约200G的数据复制到磁带上并mt-st -f /dev/nst0 eod ; mt-st -f /dev/nst0 status ; echo -e "\n" ; mt-st -f /dev/nst0 tell
返回:
SCSI 2 tape drive:
File number=1, block number=-1, partition=0.
Tape block size 0 bytes. Density code 0x46 (LTO-4).
Soft error count since last status=0
General status bits on (9010000):
EOD ONLINE IM_REP_EN
At block 18763534.
但tapeinfo -f | grep MaxBlock
归来MaxBlock: 16777215
。那么看来我已经超过了最大块?但mt-st -f /dev/nst0 rewind ; tar -tzvf /dev/nst0
确实返回了我复制到该存档中的所有文件的列表,并将磁带移至数据末尾,因此我不应该用完任何空间。通过查看mt
手册,我找不到一种方法可以在不先写的情况下转到磁带的末尾。
这是如果有帮助的话给出的其余部分tapeinfo
:
Vendor ID: 'HP '
Product ID: 'Ultrium 4-SCSI '
Revision: 'U57D'
Attached Changer API: No
SerialNumber: 'HU1104ERC3'
MinBlock: 1
MaxBlock: 16777215
SCSI ID: 0
SCSI LUN: 0
Ready: yes
BufferedMode: yes
Medium Type: Not Loaded
Density Code: 0x46
BlockSize: 0
Block Position: 18763534
Partition 0 Remaining Kbytes: 800226
Partition 0 Size in Kbytes: 800226
ActivePartition: 0
EarlyWarningSize: 0
NumPartitions: 0
MaxPartitions: 0
答案1
MaxBlock
fromtapeinfo
表示驱动器支持的最大块大小。例如,当您使用tar
命令时,您可以通过 tar 选项指定块大小-b
。这个大小是有上限的,这个上限对应的是MaxBlock
。另一方面,mt-st -f /dev/nst0 tell
显示磁带的位置。事实上,如果您查看Block Position
from tapeinfo
,这个数字与 from 的返回值一致mt-st tell
。
您可以尝试使用我创建的以下 bash 脚本来读取 LTO-CM 芯片的剩余容量。https://github.com/Kevin-Nakamoto/LTO-CM-Read