Virtfs / 9p kök dosya sistemi olarak kullanılabilir mi?


11

Konuk içinde kök dosya sistemi olarak virtfs / 9p aracılığıyla ana bilgisayardan konuğa paylaşılan bir klasör kullanılabilir mi?

Önceki sorumla gevşek bir şekilde ilgili: virtfs / 9p aynı ana bilgisayar klasörünü birden fazla misafirle paylaşmak için kullanılabilir mi?


Asla 9p'yi kök FS olarak denemedim, ancak uygun initrd ile bunu yapmanıza engel olabilecek hiçbir şey olmadığını düşünüyorum.
Alexander Kudrevatykh

1
jor1k bunu yapıyor
Janus Troelsen

Güzel olan şey, / ve 9p montajı ile bindirmeleri alçak olarak kullanabilmemiz ve daha sonra içine almamızdır. Ancak çok yararlı olamıyor çünkü alçaklara yazma işlemleri tanımsız ... Ancak bence buna izin veren başka FUSER dosya sistemleri de var ama henüz ulaşmadım.
Ciro Santilli 法轮功 病毒 :01 六四 事件 法轮功

Yanıtlar:


9

Evet, örneğin ana makinenin FS'si ile VM'yi nasıl önyükleyeceğinize bakın:

9p modüllerini ana bilgisayara ekleyin initramfs(en zor yoldan da olsa en kolay yol, gerekli modüllere sahip olmak için):

printf '%s\n' 9p 9pnet 9pnet_virtio | sudo tee -a /etc/initramfs-tools/modules
sudo update-initramfs -u

qemu -kernel "/boot/vmlinuz-$(uname -r)" \
  -initrd "/boot/initrd.img-$(uname -r)" \
  -fsdev local,id=r,path=/,security_model=none \
  -device virtio-9p-pci,fsdev=r,mount_tag=r \
  -nographic \
  -append 'root=r ro rootfstype=9p rootflags=trans=virtio console=ttyS0 init=/bin/sh'

Normal bir kullanıcı olarak çalıştırırsanız, erişemeyeceği dosyalar vardır, ancak kabuk istemini alabilmeniz gerekir ve herhangi bir zarar vermez:

[    0.000000] Linux version 3.10-3-amd64 (debian-kernel@lists.debian.org) (gcc version 4.7.3 (Debian 4.7.3-7) ) #1 SMP Debian 3.10.11-1 (2013-09-10)
[    0.000000] Command line: root=r rootfstype=9p rootflags=trans=virtio console=ttyS0 init=/bin/sh
[...]
Loading, please wait...
[    0.564122] systemd-udevd[52]: starting version 204
[...]
Begin: Loading essential drivers ... [    1.007951] FS-Cache: Loaded
[    1.009958] 9p: Installing v9fs 9p2000 file system support
[    1.012880] FS-Cache: Netfs '9p' registered for caching
done.
Begin: Running /scripts/init-premount ... done.
[...]
sh-4.2# ls /
bin   home            lib32       media    opt   safe  tmp      vmlinuz.old
boot  initrd.img      lib64       mnt      proc  sbin  usr
dev   initrd.img.old  libx32      old      root  srv   var
etc   lib             lost+found  old-tmp  run   sys   vmlinuz
sh-4.2# poweroff -f
[   56.958724] ACPI: Preparing to enter system sleep state S5
[   56.960332] Power down.

2
Ayrıca, sahiplik ve diğer ayrıcalıklı dosya bilgilerini dosyanın genişletilmiş özniteliklerinde depoladığından, temel dosya sistemine tam olarak erişebilmek için 'security_model = mapped' komutunu kullanabilirsiniz. Bu aynı zamanda salt okunur yerine fs okuma-yazma bağlamanızı sağlar. Ayrıca bakınız bağlantı
Rutger Nijlunsing

Modern Linux "root = r" komut satırı seçeneğini yok sayıyor ve koşulsuz olarak mount_tag "/ dev / root" ifadesini arıyor. Cevabı yansıtmak için herhangi bir itiraz var mı?
R .. GitHub BUZA YARDIMCI DURDUR

4

İlk başta göründüğü kadar mantıklı bir fikir, bunu yapma. 9P şu anki durumunda bazı temel işlemleri gerçekleştiremez:

Şu anda 9P, üretimde kullanılacak uygun bir durumda değildir.

Kök dosya sistemi olarak 9P ile önyüklenebilir bir sistem oluşturabilirsiniz, ancak VM'yi çalıştırmak önemli bir kedere neden olacaktır - Debian kullanıyorsanız, yukarıda listelenen kusur apt-get yükseltmesinin çalışmasını önleyecektir. Bu sorunu giderecek yamalar yıllarca hiçbir yere gitmedi.

Bunu yapmakta ısrar ederseniz, rootflags "rootflags = trans = virtio, cache = mmap" olmalıdır, aksi takdirde okuma / yazma bellek eşlemesi çalışmaz (örneğin, MariaDB tarafından kullanılır).


Beğenmeme rağmen, girdi için teşekkürler. Şu anda uygun bir dosya kapsayıcısında önyükleme ve kök yerleştirme ve 9p paylaşılması gereken bazı veriler üzerinde duruyorum ...
0xC0000022L

1

Evet elbette. Çekirdek komut satırına ekle:

root=host rootfstype=9p rootflags=trans=virtio

Ve initrd olmadan önyükleme yapabilirsiniz (eğer 9P, modüller yerine çekirdeğe derlenmişse).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.