次のコマンドを使用して、Ubuntu Server 16.04.5 LTSを実行しているサーバーにUbuntu VMを作成しました。
sudo virt-install \
--name TEST \
--memory 2048 \
--vcpus 2 \
--location 'http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/' \
--os-variant ubuntu16.04 \
--disk path=/pools/pool0/images/vm/test,size=150,bus=virtio,sparse=no,format=qcow2 \
--filesystem type=mount,source=/pools/pool0/volumes/shared,target=shared,mode=mapped \
--network network=vms \
--graphics none \
--virt-type kvm \
--hvm \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'
shared
ゲストへの読み取りと書き込みを許可するために、マップされたアクセスを持つ共有フォルダを作成しました。
次に、次のコマンドを使用して仮想マシンを起動します。
virsh start TEST --console
ゲスト内で、/etc/fstab
次の行を使用して共有フォルダを自動的にマウントするように編集しました。ここで、UID 1000は私のユーザーであり、GID 1000は他のメンバーを持たない接続グループです。
shared /mnt 9p trans=virtio,version=9p2000.L,rw,uid=1000,gid=1000 0 0
/mnt
クライアントディレクトリで実行すると、ls -ln
次の出力が得られます。
$ ls -ln /mnt
total 42
drwxrwxr-x 8 1000 1000 8 Jul 28 23:52 Backups
drwxrwxr-x 6 1000 1000 6 Dec 28 00:15 Media
drwxrwxr-x 6 1000 1000 67 Mar 31 2018 Misc
drwxrwxr-x 2 1000 1000 4 Mar 31 2018 Recipes
ls -ln
ディレクトリのホストで実行すると同じ出力が得られます/pools/pool0/volumes/shared
。
$ ls -ln /pools/pool0/volumes/shared
total 42
drwxrwxr-x 8 1000 1000 8 Jul 28 23:52 Backups
drwxrwxr-x 6 1000 1000 6 Dec 28 00:15 Media
drwxrwxr-x 6 1000 1000 67 Mar 31 2018 Misc
drwxrwxr-x 2 1000 1000 4 Mar 31 2018 Recipes
ゲストでは、私と同じように(権限のないユーザー)ファイルとフォルダを作成および変更できます。
$ mkdir /mnt/Media/test-dir
$ touch /mnt/Media/test-file
$ ls -ln /mnt/Media
total 75
drwxrwxr-x 199 1000 1000 199 Dec 28 22:07 Movies
drwxrwxr-x 152 1000 1000 153 Dec 25 16:26 Music
drwxrwxr-x 75 1000 1000 75 Jul 16 21:02 Photos
drwxrwxr-x 2 1000 1000 2 Dec 29 20:30 test-dir
-rw-rw-r-- 1 1000 1000 0 Dec 29 20:31 test-file
drwxrwxr-x 15 1000 1000 15 Dec 18 15:40 TV Shows
ただし、ホストオペレーティングシステムでは、次のファイルとフォルダにルートアクセス権のみが付与されます。
$ ls -ln /pools/pool0/volumes/shared/Media
total 75
drwxrwxr-x 199 1000 1000 199 Dec 28 22:07 Movies
drwxrwxr-x 152 1000 1000 153 Dec 25 16:26 Music
drwxrwxr-x 75 1000 1000 75 Jul 16 21:02 Photos
drwx------ 2 0 0 2 Dec 29 20:30 test-dir
-rw------- 1 0 0 0 Dec 29 20:31 test-file
drwxrwxr-x 15 1000 1000 15 Dec 18 15:40 TV Shows
1000
サーバーで自動化スクリプトを実行しており、これらのスクリプトが機能するには、UID、GID 1000
、ディレクトリ権限(775)、およびファイル権限(664)を使用してrwxrwxr-x
これらのフォルダとディレクトリを作成する必要がありますrw-rw-r--
。新しいファイル/ディレクトリを作成するたびに手動で実行したくありませんchmod
。chown
sudo
仮想マシンを最初から再インストールせずにこの問題を解決する必要があります。
答え1
気になる人がいたら、私の問題に対する解決策を見つけることができませんでした。しかし、私はホスティングを通じてこれを行いました。サンバシェアホスト(dperson / samba dockerコンテナを使用)とゲストにcifs-utils
次の行をインストールし、次に追加しました\etc\fstab
。
//192.168.1.7/Shared /media/shared cifs guest,uid=1000,iocharset=utf8,vers=3.0 0 0
ここで、は192.168.1.7
ホストシステムのIPアドレス、Shared
はSamba共有の名前、およびは/media/shared
ゲストから共有をマウントした場所です。
答え2
mode=passthrough
代わりに使用する必要がありますmode=mapped
。ここでよく説明されています。https://rabexc.org/posts/p9-setup-in-libvirt。