LinuxでWindows共有フォルダをマウントする方法

Linuxから共有フォルダを利用する tech

本記事では、Windows環境上に作成した共有フォルダをLinuxマシンから参照する手順を記載します。

LinuxでCIFSマウントを実現する

前提

  • Windows共有フォルダは作成済み
  • Windows側のファイアウォールは無効化済み
  • 使用するLinux環境はUbuntu 20.04

Windowsの共有フォルダ作成方法は、こちらの記事をご参照ください。

実現イメージ

これから構築する環境のイメージはこんな感じです。

実現イメージ

「前提」に書いた通り、Windows側の共有フォルダはすでに作成済みとします。(C:\share\ フォルダ)

この共有フォルダを、Ubuntu側から参照する方法を解説します。

cifs-utilsのインストール

今回CIFS(Common Internet File System)という仕組みをつかって、LinuxマシンからWindows共有フォルダを参照します。

LinuxディストリビューションによってはCIFSを利用するためのパッケージが導入されていないことがあるため、まずはそこから確認します。

user@ubuntu2004-01:~$ sudo dpkg -l |grep cifs
user@ubuntu2004-01:~$

なにも結果が返ってきませんでしたので、パッケージがインストールされていないことがわかりました。

それでは必要なパッケージをインストールしましょう。

user@ubuntu2004-01:~$ sudo apt install -y cifs-utils

マウントポイントの作成

つづいてUbuntu上に マウントポイント を作成します。

このマウントポイントが、Windowsだけ触ってるひとには少しわかりずらい概念で、イメージはこのような感じです。

マウントポイントのイメージ

Windows側で作成しておいた共有フォルダ C:\share\ とくっつけるためのディレクトリがUbuntu側で必要になるというイメージです。

言い換えると、Ubuntu側で /home/user/mount/ ディレクトリの中を覗く = Windows側の C:\share\ を覗く ということになります。

実際にマウントポイントを作成するコマンドは mkdir になります。

user@ubuntu2004-01:~$ sudo mkdir /home/user/mount/
user@ubuntu2004-01:~$ ll /home/user
total 32
drwxr-xr-x 4 user user 4096 Jul 21 21:47 ./
drwxr-xr-x 3 root root 4096 Jul 19 03:48 ../
-rw------- 1 user user 415 Jul 21 21:34 .bash_history
-rw-r--r-- 1 user user 220 Feb 25 12:03 .bash_logout
-rw-r--r-- 1 user user 3771 Feb 25 12:03 .bashrc
drwx------ 2 user user 4096 Jul 19 03:58 .cache/
drwxr-xr-x 2 root root 4096 Jul 21 21:47 mount/
-rw-r--r-- 1 user user 807 Feb 25 12:03 .profile
-rw-r--r-- 1 user user 0 Jul 20 22:27 .sudo_as_admin_successful

ちゃんと /home/user/mount/ ディレクトリが作成できていますね。

共有フォルダをマウント

作成したマウントポイントと、Windows上の共有フォルダをがっちゃんこします。この作業のことを マウント とよびます。

下記コマンド例の<username>と<password>の部分は皆さんの環境に読み替えてください。

※Ubuntu側のアカウントではなくWindows側のアカウントです。

user@ubuntu2004-01:~$ sudo mount -t cifs -o username=<username>,password=<password> //10.10.1.254/share/ /home/user/mount/
user@ubuntu2004-01:~$
user@ubuntu2004-01:~$ ll /home/user/mount/
total 4
drwxr-xr-x 2 root root    0 Jul 21 21:51 ./
drwxr-xr-x 4 user user 4096 Jul 21 21:47 ../
-rwxr-xr-x 1 root root    0 Jul 21 21:27 test.txt*

/home/user/mount が Windows上の C:\share\として扱われるため、Windows側で事前に作成しておいた「test.txt」が見えてますね。成功です。

OS起動時に自動マウントする

実はさきほど実行した mount コマンドは、OS再起動すると消えてしまいます

OS再起動のたびに毎回コマンドを実行するのも面倒ですので、通常はOS起動時に自動的にマウントするように実装します。

これを実現するには fstab ファイルを編集します。

user@ubuntu2004-01:~$ sudo vi /etc/fstab

fstabの最後の行にこのような形で追記します。

左から

  • Windows共有フォルダ
  • Ubuntu上のマウントポイント
  • ファイルシステムの種類(今回はCIFS)
  • マウントオプション(ユーザ認証情報と、権限)
  • dumpの有無
  • fsckの有無

を指定しています。

//10.10.1.254/share/ /home/user/mount/ cifs username=<username>,password=<password>,file_mode=0777,dir_mode=0777 0 0

この fstab なんですが、設定をミスった状態だとOSが起動できなくなることがあります。。。

なので、fstab編集後は必ずテストコマンドを実行しましょう

このコマンドでエラーがでるようであれば、OS再起動してはいけません!

user@ubuntu2004-01:~$ sudo mount -a
user@ubuntu2004-01:~$

はい、無事にコマンドが通りましたね。

これでOS再起動してもWindows共有フォルダが自動マウントされるようになりました。

今回は以上です。

それじゃあまたね。

タイトルとURLをコピーしました