カテゴリー「VirtFS」の2件の記事

2019年9月 6日 (金)

ネットワーク切断設定時限定 〜 VirtFS の自動マウント設定こぼれ話

 

ホストOS:Debian10 KDE
ゲストOS:Debian7 KDE

の環境にて。

ゲスト側の Debian7 KDE のネットワーク切断をデフォルトの設定にした場合、ゲストOSの「/etc/fstab」に

(ターゲットパス)(ゲストOSの共有用ディレクトリのパス)9p trans=virtio,version=9p2000.L,nobootwait,rw,_netdev 0 0

を追記しても、自動マウントしない。

ネットワークが生きていないと、VirtFSは使えないのかと思ったが、ネットワーク切断時でも

# mount -t 9p -o trans=virtio (ターゲットパス)(ゲストOSの共有用ディレクトリのパス)

では、マウントができる。

ちなみに、ゲストがDebian10の場合は全く問題がない。上記のfstabの設定で自動マウントとなる。

 

で、Debian7の場合での解決策としては、fstabのオプションの「_netdev」を削って、

(ターゲットパス)(ゲストOSの共有用ディレクトリのパス)9p trans=virtio,version=9p2000.L,nobootwait,rw 0 0

としたら、自動マウントができるようになる。

 

ただし、ゲストがDebian10の場合だと、今度はこちらはうまくいかない。

Debian10とDebian7では、systemdとinitの大きな違いがあるが、原因はそこらへんにあるものなのか?

とりあえず理由はわからないが、一応はこれで解決できる。

 

 

 

〔関連ページ〕
 ・virt-manager:VirtFS でホスト・ゲスト間のファイル共有  

 

 

 

 

 

 

 

2019年8月27日 (火)

virt-manager:VirtFS でホスト・ゲスト間のファイル共有

V007_cr

VirtFSを利用してホスト・ゲスト間でファイル共有、読み書きができたのでメモ。厳密にはファイルの共有というよりは、ディレクトリ(フォルダ)の共有により、同一ファイルを扱うことができる、といった方が正しいかもしれませんが。どちらにせよ、共有できるのと、できないのでは利便性が断然変わりますね。

ということで今回はその手順を整理したのですが、とりあえず作業環境は

ホストOS: Debian GNU/Linux 10 KDE
 ホスト側ユーザ名:ruser10
 仮想環境: QEMU/KVM 3.1.0:virt-manager 2.0.0:libvirt 5.0.0
ゲストOS: Debian GNU/Linux 7 KDE
 ゲスト側ユーザ名:vuser7

となります。

なお、virt-manager は通常「root権限での使用」となりますが、「一般ユーザ権限」でやった方がオススメ。というかすべき。
理由は後述。一般ユーザ権限での使用に関しては、「virt-manager を一般ユーザ権限で使用できたの巻」をどうぞ。


大まかな手順は以下になります。

(1)ホストOSにて、「ファイル共有のためのディレクトリ」を作成(メインのディレクトリ)
(2)対象のゲストOSにて「ファイルシステムを作成」(ターゲットパス等の設定)
(3)ゲストOSにて、マウント用のディレクトリを作成
(4)共有用のディレクトリをマウント(これ以後、共有開始可♪)
(*)/etc/fstabによるマウント自動化

ではいきます。

 

【(1)ホストOSにて、「ファイル共有のためのディレクトリ」を作成  

まず、「ファイル共有のためのディレクトリ」をホストOS上に作成します。(このディレクトリがメインのディレクトリとなります。ゲストOS側はこのディレクトリの中身を共有することになります。)

V001_

今回はホームディレクトリ下に共有用の「shareF」というディレクトリを作成しました。

 

 

【(2)対象のゲストOSにて「ファイルシステムを作成  

下図のように、対象のゲストOSの詳細の画面から「ハードウェアを追加」を選択。

V002_

 

次に、「ファイルシステム」を選択し、「ドライバー」と「モード」は「Default」、「ソースパス」は「ホストOS上にてファイル共有用に作ったディレクトリのパス」を入力。「ターゲットパス」は任意に自分でテキトーに指定。この「ターゲットパス」はゲストOSからマウントする際に後で使用します。

V003_

  ↓

V004_r

(ファイルシステム作成完了の図♪)

 

*おまけ

V031_r

(virsh でいじるならば「# virsh edit ゲストOS」で。上図は一例。確認だけなら、「# cat /etc/libvirt/qemu/ゲストOS.xml」でも良い。)

 

 

【(3)ゲストOSにて、マウント用のディレクトリを作成  

対象のゲストOSを起動。

今度は「ゲスト側でマウントするためのディレクトリ」をゲストOS内に作成します。

V005_

ゲストOSにて、今回は「shareP」というマウント用のディレクトリを作成しました。

以上で、下準備は終わりです。

今回の事例の設定値を整理をすると、

ホストOSの共有用のディレクトリのパス
 「/home/ruser10/shareF/」
ターゲットパス名
 「SharePoint
ゲストOSの共有用のディレクトリのパス
 「/home/vuser7/shareP/

です。

 

【(4)共有用のディレクトリをマウント  

V006_

ゲストOSの端末にて、

# mount -t 9p -o trans=virtio (ターゲットパス)(ゲストOSの共有用ディレクトリのパス)
(今回は、「# mount -t 9p -o trans=virtio SharePoint /home/vuser7/shareP/」)

とすればマウントが完了する。

以後、ファイルの共有が可となる。

V007_cr2

ちなみに、ファイルが保存されている実際の場所は、ホスト側の方になります。(終)

 

※ virt-manager の「一般ユーザ権限」化をしなかった場合、下図のようにゲストOS側からは書き込みができない。

V011_cr2

ということで「一般ユーザ権限」化をば。

 

 

 

 

【(※)おまけ 〜 /etc/fstab によるマウントの自動化  

(4)までの手順で設定を終わらせた場合、ゲストOSを終了するとマウントは解除されるため、ゲストOSを起動するごとに、(4)のマウント作業が必要となってしまう。

そこで、ゲストOSの /etc/fstab を編集し、このマウント作業を自動化させる。

ゲストOSの「/etc/fstab」に

(ターゲットパス)(ゲストOSの共有用ディレクトリのパス)9p trans=virtio,version=9p2000.L,nobootwait,rw,_netdev 0 0

を追記する。

(今回は、

SharePoint /home/vuser7/shareP/ 9p trans=virtio,version=9p2000.L,nobootwait,rw,_netdev 0 0」

V008_cr2

以上で終了。

次回の起動からは自動でマウントされます。以後、(4)の手動によるマウント作業は不要です。(終)

 

 

 

【外部サイト】
 ・KVM:VirtFS 
 ・Documentation/9psetup - QEMU 
 ・Seesaa wiki:VirtFS 
 ・Arch:fstab  
 ・9p, ubuntu 14 and fstab 
   /etc/fstab の書式を参考に。
 ・VirshコマンドによるKVMゲストOSの管理 
 ・FreeBSD:VirtFS  

 ・Virtio-fs 
  

 

 

〔関連ページ〕
 ・virt-manager 超入門! in 2018 
 ・virt-manager:USBリダイレクトの無効化・制限 
 ・virt-manager でリモートアクセス(SSH-一般ユーザ接続:公開鍵認証) 
 ・Linuxでファイル暗号化(1)〜 USBメモリをgocryptfsで守る♪   
 ・ネットワーク切断設定時限定 〜 VirtFS の自動マウント設定こぼれ話  

 

 

 

 

 

 

2021年5月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ