我有一个 SCSI 磁带 (/dev/st0),我想获取有关其使用量的信息。
我怎样才能做到这一点,最好使用命令?
答案1
如果是 LTO 或其他带有辅助存储器的磁带:
sg_logs -a /dev/sgX
其中 sgX 是与您的磁带驱动器相对应的 SCSI 通用设备(sg_map
或者sg_scan
可以帮助您找到它,如果您还不知道,例如通过磁带警报检查)
答案2
现代磁带机的工作方式是,如果不读取磁带,您就无法知道磁带已使用了多少。
磁带是具有倒带功能的简单字符设备,因此在写入时,磁带会在写入完成后放置一个 EOM 标记,然后倒带。读取时,它会倒带,然后简单地读取整个磁带,直到到达 EOM。
所以你可以做一个
dd if=/dev/st0 of=/dev/null
当dd
完成时(有一个错误,因为它会尝试读取超过 EOM),它会告诉您它读取的数据量。
如果您知道磁带有兆字节的数据,并且愿意减少一兆字节,那么添加bs=1M
将使速度更快 - 它会尝试一次读取 1M,而不是一次读取一个字节。
答案3
现代/LTO 磁带具有 CM(盒式存储器)。你可以从中读到这样的信息。https://en.wikipedia.org/wiki/Linear_Tape-Open#Cartridge_memory