Hinweis:Diese Frage bezieht sich direkt aufDieses hierund insbesonderediese Antwort, aber es ist kein Duplikat.
Ich möchte einen Ordner vom Host mit dem Gast teilen, aber sicherstellen, dass das Stammverzeichnis des Gasts nicht versehentlich in diesen Ordner schreiben kann.
Der Ordner ist in meinem Fall /toolchains
, sowohl auf dem Host als auch auf dem Gast. Und er enthält eine Reihe von GCC-basierten Toolchains, die zum Ansprechen verschiedener Plattformen verwendet werden.
Nun ist das Teilen selbst trivial:
lxc config device add CONTAINER toolchains disk source=/toolchains path=toolchains
Technisch scheint es sich um ein Bind-Mount zu handeln. Innerhalb des Containers schlägt jedoch ein erneutes Mounten, um es schreibgeschützt zu machen, fehl:
# mount -o remount,ro /toolchains
mount: cannot mount /dev/sda1 read-only
Leider ist der Detailgrad nicht besonders hoch.
Sicherheitshalber habe ich auch diese Alternative ausprobiert:
# mount -o remount,ro,bind /toolchains
mount: cannot mount /dev/sda1 read-only
mount(8)
das unter mount --bind,ro foo foo
... erwähnt wurde .
Welche Möglichkeiten habe ich, um das zu erreichen, was ich will? D. h. den Host-Ordner schreibgeschützt für den Gast freigeben. Sollte ich hier eine Art Union FS verwenden oder ist meine einzige echte Chance, eine schreibgeschützte Einbindung zu erreichen, 1.) eine CIFS-Freigabe zu verwenden oder 2.) einen Hook zu verwenden, um den Host-Ordner über den mount
Befehl vom Host in das Stammverzeichnis des Gasts zu binden?
Ich verwende LXC 2.20.
Antwort1
Was passiert, wenn Sie Ihr Verzeichnis schreibgeschützt auf dem Host mounten und es dann mit dem LXC-Container teilen?
mount --bind /toolchains /toolchains-ro
mount -o remount,ro,bind /toolchains-ro
lxc config device add CONTAINER toolchains disk source=/toolchains-ro path=toolchains
Technisch gesehen sollte alles, was auf Hostebene schreibgeschützt ist, auch im Container schreibgeschützt bleiben.