計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
Ubuntu 18.04 に CIFS マウントした Windows ファイルシステムを NFS に載せる
問題
CIFS で Ubuntu にマウントした Windows ファイルシステムは exportfs で直接 NFS クライアントに提供することはできない.
そこで, 本来はファイルシステムの文字コードを一括変換するプログラムである convmvfs を使って, 一旦ユーザランドファイルシステムに変換してやる.
準備
sudo apt install autofs
sudo apt install cifs-util
sudo apt install fuse-convmvfs
設定
【A】まず CIFS で <SERVER> 上の Windows ファイルシステムをリモートマウントする.
(ここでは autofs による自動マウントを行う)
1. /smb ディレクトリを作成
sudo mkdir /smb
2. /etc/auto.master に下記の一行を追加
/smb /etc/auto.smb --timeout=300
3. /etc/auto.smb を次のように編集 (opts に vers=1.0 と sec=ntlm を加える)
*** /etc/auto.smb.orig 2019-01-30 14:19:08.721611961 +0900
--- /etc/auto.smb 2019-01-30 14:08:38.446064895 +0900
***************
*** 38,44 ****
}
key="$1"
! opts="-fstype=cifs"
for P in /bin /sbin /usr/bin /usr/sbin
do
--- 38,44 ----
}
key="$1"
! opts="-fstype=cifs,vers=1.0,sec=ntlm"
for P in /bin /sbin /usr/bin /usr/sbin
do
4. /etc/creds ディレクトリを作成し, 共有サーバ名 SERVER の名のファイルを作る
sudo mkdir /etc/creds
(echo username=USER; echo password=PASSWORD;) | sudo cat > /etc/creds/SERVER
sudo chmod 600 /etc/creds/SERVER
5. autofs を起動
sudo systemctl enable autofs
sudo systemctl start autofs
6. これで SERVER の共有フォルダ FOLDER に /smb/SERVER/FOLDER としてアクセスできるようになった.
【B】convmvfs を使ってユーザランドファイルシステムに変換する.
1. マウントポイントを適当な箇所に作成(ここでは /export/FOLDER とする)
sudo mkdir /export/FOLDER
2. convmvfs の実行スクリプト /root/bin/autoconvmvfs.sh を次のように作成
#!/bin/sh
convmvfs /export/FOLDER -o srcdir=/smb/SERVER/FOLDER,allow_other;
exit 0;
3. 実行パーミッションを付加
sudo chmod +x /root/bin/autoconvmvfs.sh
4. 実行
/root/bin/autoconvmvfs.sh
これで NFS でエクスポート可能な /export/FOLDER ができる.
5. 起動時に自動実行するように設定(rc.localを設定)
sudo vi /etc/rc.local
#!/bin/sh
/root/bin/autoconvmvfs.sh
sudo chmod 755 /etc/rc.local
【C】NFSサーバに登録する
1. /etc/exports
/export/FOLDER CLIENT(rw,sync,no_subtree_check,no_root_squash,fsid=0) ...
2. NFSサーバ再起動
sudo startctl restart nfs-server.service
計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)