Linux 如何创建使用mt命令的虚拟磁带设备?

Linux 如何创建使用mt命令的虚拟磁带设备?,linux,scsi,st,mt,Linux,Scsi,St,Mt,我在Centos7,我知道mhvtl。然而,我正在寻找一个更基本的过程来创建一个可以处理所有mt st IOCTL的“磁带”(例如st3(和nst3))。我一直在使用scsi_调试内核模块创建磁带设备,如下所示: modprobe scsi_debug ptype=1 这无疑成功地创建了所有适当的角色设备文件。“磁带”的初始状态检查看起来是正确的-如下所示: [hostname]# mt -f /dev/st3 status SCSI 2 tape drive: Fil

我在Centos7,我知道mhvtl。然而,我正在寻找一个更基本的过程来创建一个可以处理所有mt st IOCTL的“磁带”(例如st3(和nst3))。我一直在使用scsi_调试内核模块创建磁带设备,如下所示:

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命令交互

想法