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

Tej*_*dra 7 iso mount devices block-device loop-device

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

mount -o loop disk1.iso /mount-point
Run Code Online (Sandbox Code Playgroud)

这相当容易。

我知道这/dev/sr0是一个块设备,它指向内核中的某个缓冲区,内核设备驱动程序将文件系统(不管它放了什么我不确定)放在那个缓冲区中,当我们使用mount它时,将文件系统挂载到指定的挂载点.

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

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

wur*_*tel 5

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

/dev/sr0不指向一定的缓冲直接,将其提供给块设备接口,它允许用户空间的进程到ACCES硬件设备中的内容的接口。

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

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