1

如何在 Linux 中将 iso 文件公开为 iSCSI 目标。我尝试了以下,

mknod /dev/fake-dev1 b 7 201

losttup /dev/fake-dev1 1.iso

然后我修改了 ietd.conf 指向块设备,

Lun 0 路径=/dev/fake-dev1,Type=blockio,ScsiId=lun0,ScsiSN=lun0 IOMode=ro

然后重新启动iscsitarget。如果我从 Windows 连接,我只会看到它是未分配的驱动器而不是文件。当我插入 USB 驱动器并指向“路径=/dev/sdb”时,驱动器就会出现在 Windows 机器上。但我无法让它与 ISO 文件一起使用。请让我知道我在这里缺少什么。

4

1 回答 1

1

我不确定您为什么使用 mknod 和 losttup。他们不应该被需要。

只需设置一个“fileio”目标,您指向的文件就是ISO文件本身。

对我来说,这看起来像:

o- backstores .............................................................................................................. [...]  
  | o- block .................................................................................................. [Storage Objects: 0]  
  | o- fileio ................................................................................................. [Storage Objects: 2]  
  | | o- iso1 .......................... [/alt/ISO_Images/SLE-12-SP3-Server-DVD-x86_64-Beta2-DVD1.iso (3.2GiB) write-back activated]  
  | o- pscsi .................................................................................................. [Storage Objects: 0]  
  | o- ramdisk ................................................................................................ [Storage Objects: 0]  

对于存储的“后端”部分,然后像任何其他文件一样设置它,即分配一个 iSCSI 目标,将 LUN 设置为指向上面创建的 fileio 对象,然后为其设置 ACL 和门户。同样,我的看起来像:

  o- iscsi ............................................................................................................ [Targets: 2]  

  | o- iqn.2003-01.org.linux-iscsi.worklaptop.x8664:sn.c551a059614d ...................................................... [TPGs: 1]
  |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
  |     o- acls .......................................................................................................... [ACLs: 1]
  |     | o- iqn.1996-04.de.suse:01:919acd32c5a2 .................................................................. [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................................................................................. [lun0 fileio/iso1 (rw)]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ...................................... [fileio/iso1 (/alt/ISO_Images/SLE-12-SP3-Server-DVD-x86_64-Beta2-DVD1.iso)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 192.168.20.2:3260 ................................................................................................ [OK]

设置完成后,您会像发现任何其他 iSCSI 目标一样发现它。就我而言,我得到了“/dev/sdb”、“/dev/sdb1”和“/dev/sdb2”。首先显然是整个设备,包括分区表。第二个设备是第一个分区,在我的例子中是 UEFI 引导分区。第二个分区“/dev/sdb2”是 ISO,在我挂载它时以只读方式挂载。

于 2017-08-31T16:42:51.463 回答