【ZORIN OS(Ubuntu)】【KVM/QEMU】SambaによるゲストOS(Windows11)とのファイル連携

1.はじめに

QEMUVMのカスタマイズ画面からファイル連携の設定をしようとしましたが、わけがわからないので、ホストOSとして動いているZORIN OS(17.3)にSambaを入れてファイル共有を可能にし、ゲストOSのWIndow11のほうは「ネットワークの場所を追加する」でファイルアクセスするようにします。

2.ホストOS(ZORIN OS)の設定

2−1.共有フォルダの指定

適当にフォルダを作り、右クリックから「ローカルネットワーク共有」を押下

「このフォルダーを共有する」にチェックを入れ、共有名を適当に入れます。
ただしこの共有名は後ほどWindowsの設定の方でも使います。 
「このフォルダー内での」ファイルの作成・削除を他のユーザに許可する」もチェックを入れておきます。

これで[共有を変更]を押しますが、Sambaが入っていなければインストールを促されるため、そのまま出てきたウィンドウに従ってインストールをします。

'net usershare' がエラー 255 を返しました: net usershare add: cannot share path /mnt/1.8TB as we are restricted to only sharing directories we own.
Ask the administrator to add the line "usershare owner only = false"
to the [global] section of the smb.conf to allow this.

というメッセージが出た場合は、/etc/samba/smb.confの記載を変更。

$ sudo vi smb.conf
[global]
usershare owner only = false

2−2.Samba用ユーザの作成

以下のコマンドで作成

$ sudo pdbedit -a ''hogehoge''
new password:
retype new password:

3.ゲストOS(Windows11)の設定

エクスプローラ画面で右クリックをし、「ネットワークの場所を追加する」を押下。

接続先を設定します。
設定内容は
\\[ZORIN OSのデバイス名]\[2-1項の共有ファイル設定をした際の共有名]
です。
バイス名は、ZORIN OSのスタートメニューの設定から飛んで表示できます。

私の場合はマザボの型番。

具体的にはこうなります。

\\X870-Steel-Legend-WiFi\qemu_data

 
Sambaと通信できれば次に進みます。
名前を好きに決められますが、一応ホストOS側の共有名と一緒にします。

 
作成が完了したら、エクスプローラに表示されます。

 
「ネットワークドライブの割り当て」でも同じような感じで設定すれば接続できます。そちらのほうが空き容量が見えるし、ドライブとして振る舞うのでアプリケーションとも連携しやすいため、ネットワークドライブ化したほうが扱いやすいかも

4.Samba経由のファイル通信の速度向上

ファイル転送してみたら35MB/sぐらいしか出ておらず、流石に遅すぎるので、海外兄貴たちのやりとりの内容を基にSambaの設定を変更しました。

■参考:https://www.reddit.com/r/OpenMediaVault/comments/11gwi1g/significant_samba_speedperformance_improvement_by/?tl=ja

$ sudo vi /etc/samba/smb.conf
[global]の直下に以下を設定。
socket options = TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=131072 SO_SNDBUF=131072
acl allow execute always = true
acl map full control = yes
deadtime = 60
getwd cache = true
min receivefile size = 16384
strict sync = no
sync always = no
use sendfile = true

$ sudo systemctl status smbd.service

で、Sambaを再起動すれば適用されるだろう、と思ったらそうでもありませんでした。
なので、PCごと再起動を実施。

これで転送速度が300MB/s〜450MB/sに跳ね上がりました。すごい。