libvirt / 9p / kvm mount di fstab gagal untuk me-mount pada saat boot

18

Saya mencoba me-mount folder bersama menggunakan qemu-kvm / 9p dan gagal berfungsi jika saya menambahkannya ke file fstab. Saya mendapatkan kesalahan saat boot bahwa perangkat tidak dapat dipasang, namun setelah mulai jika saya menjalankan "mount -a" perangkat akan dipasang.

baris fstab:

src_mnt /src 9p trans=virtio 0 0

Dari dmesg saya bisa melihat:

[    7.606258] 9p: Could not find request transport: virtio

Dan beberapa baris kemudian saya melihat entri "virtio-pci". Saya tidak jelas tentang bagaimana saya akan menunda pemasangan sampai perangkat itu tersedia.

edA-qa mort-ora-y
sumber

Jawaban:

24

Tidak tahu apakah itu solusi yang ideal, tetapi pada tamu Ubuntu 12.04 saya membuatnya bekerja dengan menambahkan modul 9p ke initramfs.

Ditambahkan ke / etc / initramfs-tools / modules:

9p
9pnet
9pnet_virtio

Kemudian:

sudo update-initramfs -u
bhassel
sumber
Terima kasih - saya pikir masuk akal untuk mengatakan ini idealsolusinya. Masalahnya adalah bahwa modul tidak dipasang selama mount sistem file, solusi Anda adalah menambahkannya ke daftar modul yang dimuat saat mount.
Greg
Mengapa ini ideal?
lindhe
4

Di Ubuntu 14.04 hanya 9pnet_virtiomodul yang membutuhkan preloading sesuai jawaban bhassel .

Dmesg beberapa baris sebelum yang dikutip menunjukkan bahwa dua lainnya sudah dimuat tetapi tidak dapat menemukan transportasi yang diperlukan.

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 

Diuji dengan Ubuntu 14,04 tamu pada qemu / KVM pada openSUSE 13.2.

Tim N
sumber
Hai Tim, dan selamat datang di situs ini. Ingatlah bahwa urutan jawaban dapat berubah baik dengan pemungutan suara komunitas maupun preferensi pengguna, jadi cobalah untuk selalu eksplisit tentang jawaban yang Anda maksud. Saya telah memperbaikinya untuk saat ini di pos Anda; tolong lakukan sendiri di masa depan. Terima kasih!
CVn
Ini berfungsi di ubuntu 16.04 juga.
stalet
Ini juga berfungsi di Ubuntu 18.04
jackkamm
1

Masalahnya di sini adalah bagaimana virtio mount diatur pada tuan rumah. Ada dua cara untuk memperbaiki masalah ini.

Solusi 1: Gunakan pemetaan bukan transportasi

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

Ini berfungsi, tetapi semua file akan dimiliki oleh libvirt pengguna yang sedang berjalan. Ini tidak berfungsi dengan baik untuk sistem file tmp atau log.

Solusi 2: Jalankan libvirt sebagai root dan gunakan passthrough

vi /etc/libvirt/qemu.conf

Kemudian batalkan komentar atau tambahkan:

user=root
group=root

Nyalakan ulang host atau mulai ulang semua proses libvirt dan qemu / kvm, dan gunakan passthrough:

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

Walaupun mungkin ada beberapa implikasi keamanan untuk host, ini membuat uid: gid file pada host sama seperti pada tamu, yang berfungsi dengan baik untuk sistem file log dan tmp. Ini kebetulan yang saya lakukan dalam situasi ini.

Fstst
sumber