首页 > 解决方案 > 如何创建与 mt 命令一起使用的虚拟磁带设备?

问题描述

我在 Centos7 上,我知道 mhvtl。但是,我正在寻找一种更基本的程序来创建可以处理所有 mt-st ioctl 的“磁带”(例如 st3(和 nst3))。我一直在使用 scsi_debug 内核模块来创建一个磁带设备,如下所示:

modprobe scsi_debug ptype=1

这绝对成功地创建了所有适当的字符设备文件。“磁带”的初始状态检查看起来是正确的 - 如下所示:

    [hostname]# mt -f /dev/st3 status
    SCSI 2 tape drive:
    File number=0, block number=0, partition=0.
    Tape block size 0 bytes. Density code 0x0 (default).
    Soft error count since last status=0
    General status bits on (41010000):
    BOT ONLINE IM_REP_EN

但是,如果我第二次运行相同的状态,我会得到:

    [hostname]# mt -f /dev/st3 status
    SCSI 2 tape drive:
    File number=-1, block number=-1, partition=0.
    Tape block size 0 bytes. Density code 0x0 (default).
    Soft error count since last status=0
    General status bits on (10000):
    IM_REP_EN

看起来磁带是“加载”然后“卸载”的。日志中的反馈方式很少,任何交互尝试(倒带/加载/fsf/等)都会挂起并最终放弃 IO 错误。来自 dmesg:

[st3] Sense Key : Illegal Request [current]
[st3] Add. Sense: Invalid command operation code

mhvtl 很棒 - 但它对于我需要的东西来说太过分了。我只需要一个虚拟磁带设备(而不是整个库)就可以正确地与所有 mt 命令交互。

想法?

标签: linuxscsistmt

解决方案


推荐阅读