【Azure】Linux VM に Azure Files(SMB)をマウントする手順と、ハマりやすい 3 つのポイント
Azure 上の Linux 仮想マシン(Ubuntu など)から Azure Files を SMB でマウントする手順をまとめます。
Azure ポータルから取得できるマウント用スクリプトをそのまま実行しても、一応接続はできます。
ただ、実際に使い始めると、たとえばこんなところでハマりがちです。
- 一般ユーザーでファイルを作成できない
- 再起動時にマウントが原因で OS 側の挙動が不安定になる
- 自宅 PC から直接つなごうとしても接続できない
この記事では、Linux VM から Azure Files を安定してマウントする基本手順と、実際に遭遇しやすいトラブルとその回避方法をあわせて整理しています。
※ この記事では、VM / ストレージアカウント / ファイル共有はすでに作成済みである前提で進めます。
1. まずは方式選定:fstab と autofs
Linux でネットワークドライブをマウントする方法としては、主に fstab と autofs の 2 パターンがあります。
用途によって向き・不向きがあるので、最初に整理しておきます。
fstab(静的マウント)
- OS 起動時に自動でマウントされる
- 常にマウントされている前提で動かしたいサーバーやバッチ処理と相性が良い
- 一方で、ネットワーク状態が悪いと起動時に影響を受けることがあるため、
nofailの指定はほぼ必須
autofs(動的マウント)
- アクセスがあったタイミングで自動的にマウントされる
- 一定時間アクセスがなければ自動で切断される
- ネットワークの揺らぎには比較的強い
- ただし初回アクセス時に少し待たされるので、常時接続前提の用途にはやや不向き
今回は、サーバー用途でよく使う fstab ベース の構成で進めます。
2. 事前準備
2-1. cifs-utils のインストール
SMB マウントには cifs-utils が必要です。
まずは入っているか確認し、なければインストールします。
sudo apt update
# すでに入っているか確認
which mount.cifs
# 無ければインストール
sudo apt install -y cifs-utils
2-2. ポート 445 の疎通確認
Azure Files の SMB 接続では TCP 445 を使います。
Azure 内の VM からであれば基本的には問題ないことが多いですが、先に確認しておくと後で切り分けが楽です。
# <ストレージアカウント名> は自分の環境に合わせて置き換えてください
nc -zvw3 <ストレージアカウント名>.file.core.windows.net 445
succeeded! のような表示が出れば疎通 OK です。
3. マウント手順
3-1. Azure ポータルで接続情報を確認する
- Azure ポータルで対象のストレージアカウントを開く
- 左側メニューの 「ファイル共有」 を選ぶ
- 対象のファイル共有を開く
- 上部の 「接続」 をクリック
- 「Linux」 タブを開き、表示されるスクリプトを確認する
- スクリプト内にある ストレージアカウント名 と アクセスキー を控えておく
3-2. マウントポイントと資格情報ファイルを作成する
次に、Linux 側でマウント先ディレクトリと認証情報ファイルを作成します。
# マウント先ディレクトリを作成
sudo mkdir -p /mnt/azure_files/public
# 資格情報ファイルを格納するディレクトリを作成
sudo mkdir -p /etc/smbcredentials
# 資格情報ファイルを作成
sudo bash -c 'cat > /etc/smbcredentials/<ストレージアカウント名>.cred <<EOF
username=<ストレージアカウント名>
password=<ここにポータルで取得した長いアクセスキーを貼り付ける>
EOF'
# root 以外が読めないように権限を絞る
sudo chmod 600 /etc/smbcredentials/<ストレージアカウント名>.cred
認証情報を fstab に直接書くこともできますが、セキュリティ面を考えるとこの方法のほうが扱いやすいです。
3-3. /etc/fstab を編集する
fstab にマウント設定を追加します。
システムファイルなので、必ず sudo 付きで編集してください。
sudo vi /etc/fstab
ファイルの末尾に、以下の 1 行を追加します。
//<ストレージアカウント名>.file.core.windows.net/<ファイル共有名> /mnt/azure_files/public cifs nofail,_netdev,vers=3.1.1,credentials=/etc/smbcredentials/<ストレージアカウント名>.cred,uid=1000,gid=1000,dir_mode=0755,file_mode=0755,serverino,nosharesock,mfsymlinks,actimeo=30 0 0
注意: この設定は 必ず 1 行で記述してください。途中で改行すると正しく読み込まれません。
各オプションの中でも特に重要なもの
-
nofail
Azure 側の一時的な障害やネットワーク不通時でも、OS 起動全体が止まりにくくなります -
_netdev
ネットワークストレージであることを OS 側に明示します -
uid=1000,gid=1000
一般ユーザーでの読み書きを想定する場合に重要です -
vers=3.1.1
SMB バージョンを明示します
3-4. 設定を反映する
fstab を編集したら、設定を反映します。
# 設定再読み込み
sudo systemctl daemon-reload
# fstab をもとにマウント実行
sudo mount -a
# マウント確認
df -h
df -h に対象の Azure Files が表示されていれば、ひとまずマウント成功です。

4. 実際にハマりやすいポイント 3 つ
ここからは、手順だけ見ていると気づきにくいけど、実際にやると割とハマるポイントをまとめます。
4-1. マウントはできたのに、一般ユーザーで書き込めない
df -h では見えているのに、一般ユーザーで mkdir やファイル作成をしようとすると Permission denied になることがあります。
原因
マウント自体は成功していても、マウント先の所有者や権限の扱いが root 前提になっているケースがあります。
Azure ポータルから表示される接続スクリプトをそのまま使うと、一般ユーザーで使うための uid / gid 指定が入っていないことがあります。
対応
fstab のオプションに、利用したいユーザーの uid と gid を明示します。
uid=1000,gid=1000
Ubuntu の標準的な構成で、最初に作成したユーザーなら 1000 になっていることが多いですが、環境によって異なる場合もあるので必要に応じて確認してください。
確認コマンド例:
id
4-2. vi で /etc/fstab を編集していたら readonly で保存できない
ありがちなのが、うっかり sudo を付けずに開いてしまうケースです。
vi /etc/fstab
この状態で編集して保存しようとすると、readonly 関連のエラーで保存できません。
原因
単純に権限不足です。
対応
いったん閉じて sudo vi /etc/fstab で開き直してもいいですが、vi / vim にはその場で sudo 保存するやり方もあります。
コマンドモードで以下を実行します。
:w !sudo tee %
これで、開き直さなくても内容を保存できます。
地味ですが、覚えておくとちょっと便利です。
4-3. 自宅の Mac / Windows から Azure Files を直接マウントできない
Azure Files の接続先があるので、自宅 PC から Finder やエクスプローラーで直接つなげばいけそうに見えますが、実際にはうまくいかないことがあります。
原因
SMB が使う TCP 445 は、インターネット越し通信では ISP やネットワーク環境の制限を受けることがあります。
そのため、ローカル環境から直接マウントしようとするとタイムアウトするケースがあります。
対応
ローカル端末から直接つなぐ前提ではなく、以下のような構成を考えるのが現実的です。
- Azure VNet 内の VM を経由して操作する
- VS Code の
Remote-SSHで VM に入って作業する - VPN や閉域ネットワーク経由でアクセスする
実運用では、Azure 内の Linux VM からマウントして、その VM を経由してファイルを扱う構成のほうが安定しやすいです。

5. 補足:最低限ここだけは押さえておくと安心
Azure Files を Linux VM で使うときは、まず以下を確認しておくと大きく外しにくいです。
-
cifs-utilsが入っているか - TCP 445 に疎通があるか
- 認証情報ファイルの権限が適切か(
chmod 600) -
fstabにnofailを入れているか - 一般ユーザーで使うなら
uid/gidを指定しているか
特に nofail と uid / gid は、ポータルの表示スクリプトをそのまま使うだけだと見落としやすいポイントです。
6. まとめ
Linux VM に Azure Files を SMB マウントすること自体はそこまで難しくありません。
ただ、「接続できた」だけで終わらせると、あとから権限や再起動時の挙動で困ることがあります。
今回の内容をまとめると、以下の 3 点が特に重要です。
-
fstabを使うならnofailを入れる - 一般ユーザーで使うなら
uid/gidを明示する - ローカル PC からの直接マウントは前提にしない
ポータルの自動生成スクリプトはあくまで出発点として見て、運用に合わせて少し調整しておくと後でかなり楽になります。


