0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Azure】Linux VMにAzure Files (SMB) をマウントする手順と、よくある「落とし穴」徹底解説

0
Posted at

【Azure】Linux VM に Azure Files(SMB)をマウントする手順と、ハマりやすい 3 つのポイント

Azure 上の Linux 仮想マシン(Ubuntu など)から Azure Files を SMB でマウントする手順をまとめます。

Azure ポータルから取得できるマウント用スクリプトをそのまま実行しても、一応接続はできます。
ただ、実際に使い始めると、たとえばこんなところでハマりがちです。

  • 一般ユーザーでファイルを作成できない
  • 再起動時にマウントが原因で OS 側の挙動が不安定になる
  • 自宅 PC から直接つなごうとしても接続できない

この記事では、Linux VM から Azure Files を安定してマウントする基本手順と、実際に遭遇しやすいトラブルとその回避方法をあわせて整理しています。

※ この記事では、VM / ストレージアカウント / ファイル共有はすでに作成済みである前提で進めます。


1. まずは方式選定:fstabautofs

Linux でネットワークドライブをマウントする方法としては、主に fstabautofs の 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 です。

截屏2026-04-24 11.07.38.png


3. マウント手順

3-1. Azure ポータルで接続情報を確認する

  1. Azure ポータルで対象のストレージアカウントを開く
  2. 左側メニューの 「ファイル共有」 を選ぶ
  3. 対象のファイル共有を開く
  4. 上部の 「接続」 をクリック
  5. 「Linux」 タブを開き、表示されるスクリプトを確認する
  6. スクリプト内にある ストレージアカウント名アクセスキー を控えておく

截屏2026-04-24 11.14.01.png


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

截屏2026-04-24 11.23.03.png

注意: この設定は 必ず 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 が表示されていれば、ひとまずマウント成功です。
截屏2026-04-24 11.18.58.png


4. 実際にハマりやすいポイント 3 つ

ここからは、手順だけ見ていると気づきにくいけど、実際にやると割とハマるポイントをまとめます。


4-1. マウントはできたのに、一般ユーザーで書き込めない

df -h では見えているのに、一般ユーザーで mkdir やファイル作成をしようとすると Permission denied になることがあります。

原因

マウント自体は成功していても、マウント先の所有者や権限の扱いが root 前提になっているケースがあります。
Azure ポータルから表示される接続スクリプトをそのまま使うと、一般ユーザーで使うための uid / gid 指定が入っていないことがあります。

対応

fstab のオプションに、利用したいユーザーの uidgid を明示します。

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 を経由してファイルを扱う構成のほうが安定しやすいです。
截屏2026-04-24 11.43.58.png


5. 補足:最低限ここだけは押さえておくと安心

Azure Files を Linux VM で使うときは、まず以下を確認しておくと大きく外しにくいです。

  • cifs-utils が入っているか
  • TCP 445 に疎通があるか
  • 認証情報ファイルの権限が適切か(chmod 600
  • fstabnofail を入れているか
  • 一般ユーザーで使うなら uid / gid を指定しているか

特に nofailuid / gid は、ポータルの表示スクリプトをそのまま使うだけだと見落としやすいポイントです。


6. まとめ

Linux VM に Azure Files を SMB マウントすること自体はそこまで難しくありません。
ただ、「接続できた」だけで終わらせると、あとから権限や再起動時の挙動で困ることがあります。

今回の内容をまとめると、以下の 3 点が特に重要です。

  1. fstab を使うなら nofail を入れる
  2. 一般ユーザーで使うなら uid / gid を明示する
  3. ローカル PC からの直接マウントは前提にしない

ポータルの自動生成スクリプトはあくまで出発点として見て、運用に合わせて少し調整しておくと後でかなり楽になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?