使用 /dev/sr0 设备虚拟挂载 ISO

使用 /dev/sr0 设备虚拟挂载 ISO

我正在研究如何虚拟安装 CD-ROM,我所能找到的只是使用循环设备进行安装。

mount -o loop disk1.iso /mount-point

这相当容易。

我知道这/dev/sr0是一个块设备,它指向内核中的某个缓冲区,内核设备驱动程序将文件系统(或者我不确定的任何内容)放入该缓冲区中,当我们使用mount它时,会将文件系统安装到指定的安装点。

但我想知道我们是否可以disk1.iso通过使用 SCSI CD-ROM 设备/dev/sr0(无需更改内核中的任何内容)来安装我们选择的 ISO(例如),就像在 Vmware 和 Virtualbox 中完成的那样,我们可以在其中指定 ISO,它会自动模拟硬件CD-ROM和ISO可以用/dev/sr0设备挂载吗?

我在这里看到的主要问题是如何/dev/sr0/链接到iso?

答案1

这里的事情是/dev/sr0链接到内核设备驱动程序。该设备驱动程序将允许访问物理 CDROM(如果可通过该节点获得);正如您提到的,VMWare 和 VirtualBox 模拟硬件,因此内核和设备驱动程序认为它们正在与硬件通信。

/dev/sr0并不直接指向某个缓冲区,它提供了一个块设备接口,允许用户空间进程访问硬件设备的内容。

如果您想让映像作为块设备可用,那么您唯一的选择(除了虚拟化和模拟硬件之外)就是使用循环设备losetup......或编写自己的替换设备驱动程序,但我认为这不是一个可行的选择目前。

如果您想让该映像可用/dev/sr0(我们正在谈论伪造一些需要访问该位置的 CDROM 的软件吗?),那么您可以将该文件移动到 例如,/dev/sr0.moved然后将相应的符号链接/dev/loopX/dev/sr0.当然,如果相关软件尝试仅适用于 CDROM 设备的特殊命令,那么这将不起作用。否则应该不成问题。

答案2

如果您使用 cdemu 而不是循环安装,它将给出所需的效果。它模拟 CD-ROM 设备。安装只是提供对文件的访问权限。它还可用于安装cue/bin 文件和其他图像类型。这使得能够安装具有多个轨道或数据/音乐轨道组合的图像。

相关内容