Ich mache eine Studie darüber, wie CD-ROM virtuell gemountet werden kann, und alles, was ich herausfinden konnte, war das Mounten mit Loop-Geräten.
mount -o loop disk1.iso /mount-point
Das ist ziemlich einfach.
Ich verstehe, dass dies /dev/sr0
ein Blockgerät ist und auf einen Puffer im Kernel verweist, und der Kernel-Gerätetreiber legt das Dateisystem (oder was auch immer ich nicht sicher bin) in diesen Puffer und wenn wir es verwenden mount
, hängt es das Dateisystem an dem angegebenen Einhängepunkt an .
Ich frage mich jedoch, ob wir eine ISO unserer Wahl (z. B. disk1.iso
) mithilfe eines SCSI-CD-ROM-Geräts /dev/sr0
(ohne Änderungen im Kernel) bereitstellen können, wie dies in VMware und Virtualbox der Fall ist, wo wir die ISO angeben und automatisch a emulieren können CD-ROM-Hardware und ISO können mit /dev/sr0
Gerät gemountet werden ?
Das Hauptproblem, das ich hier sehe, ist, wie /dev/sr0/
mit der ISO verbunden wird?
quelle
mknod
.Antworten:
Die Sache hier ist, dass
/dev/sr0
mit einem Kernel-Gerätetreiber verbunden ist. Dieser Gerätetreiber ermöglicht den Zugriff auf eine physische CD-ROM, sofern diese über diesen Knoten verfügbar ist. VMWare und VirtualBox emulieren Hardware, wie Sie bereits erwähnt haben, und daher glauben der Kernel und der Gerätetreiber, dass sie mit Hardware kommunizieren.Der
/dev/sr0
verweist nicht direkt auf einen bestimmten Puffer, sondern bietet eine Schnittstelle zur Blockgeräteschnittstelle, über die Userspace-Prozesse auf den Inhalt des Hardwaregeräts zugreifen können.Wenn Sie ein Image als Blockgerät verfügbar machen möchten, besteht Ihre einzige Wahl (neben Virtualisierung und Emulationshardware) darin, Loop-Geräte mit
losetup
... zu verwenden oder einen eigenen Ersatzgerätetreiber zu schreiben. Ich gehe jedoch davon aus, dass dies keine praktikable Option ist zur Zeit.Wenn Sie das Bild zur Verfügung stellen mögen , wie
/dev/sr0
(reden wir über einige Software fälscht aus , den Zugriff auf ein CD - ROM an dieser Stelle verlangt?) , Dann können Sie diese Datei zB bewegen/dev/sr0.moved
und Symlink dann die entsprechenden/dev/loopX
zu/dev/sr0
. Wenn die betreffende Software spezielle Befehle ausführt, die nur für CD-ROM-Geräte gelten, funktioniert dies natürlich nicht. Sonst sollte es kein Problem sein.quelle
/dev/sr0
für Ihre Zwecke verwenden! Sie benötigen ein Loop-Gerät. Wenn Sie darauf bestehen, dass das Bild verfügbar/dev/sr0
ist, ist dies der einzige Weg.Wenn Sie cdemu anstelle des Loop-Mount verwenden, wird der gewünschte Effekt erzielt. Es emuliert ein CD-ROM-Gerät. Wobei als Montage nur Zugriff auf die Dateien gewährt. Es kann auch zum Mounten von Cue / Bin-Dateien und anderen Bildtypen verwendet werden. Dies gibt die Möglichkeit, Bilder mit mehr als einer Spur oder Daten- / Musikspurkombinationen zu mounten.
quelle