(2025-04-13 初稿)
職場のWindowsで共有しているNASがあり、そちらにRaspberry PiやDebian等のLinuxでアクセスしようと試みたところ、エラーでアクセスすることができなかった。
この記事は、LinuxからWindows共有フォルダにアクセスするための解決方法の一つを示す。
smbclientで試す
まずは、なぜアクセスできないのか問題を切り分けるために、smbclientをインストールして試す。
$ sudo apt install smbclient
例えば、192.168.1.1のIPアドレスの共有フォルダ(share)の場合は、以下のとおりアクセスする。
$ smbclient //192.168.1.1/share
ちなみに、smbclient はいろいろなオプションがあり、--usage オプションを付けて起動すると、使い方が表示される。
$ smbclient --usage
また、smbclientの中で使えるコマンドは、helpコマンドで一覧表示される。
$ smbclient //192.168.1.1/share smb: \> help
これでアクセスできない場合は、WIndowsにおける共有フォルダの設定またはファイヤーウォール等のネットワーク設定を確認すべきである。
smbclientは成功するが、エラーでmountできない場合
まずは、Windows共有を mount するために必要なパッケージをインストールする。
$ sudo apt install cifs-utils
筆者の場合は、smbclientではアクセスが成功するが、なぜかmountができなかった。
例えば、以下のように /mnt/share にマウンティング・ポイントを作る。
$ sudo mkdir /mnt/share
実際にLinuxでmountしてみると、以下のようなエラーメッセージが出て、mountできない。
$ sudo mount -t cifs //192.168.1.1/share /mnt/share -o username=[WindowsUser],password=[Password],uid=hoge mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
いろいろとオプションを試したけど、なかなか正常にmountすることができなかった。
ネットで検索すると、以下のページがヒット。
上記のページでは、「vers=2.1」とオプションをつければ良いようだが、筆者の職場環境では、「vers=1.0」と付けなければならなかった。
たぶん、もっと古いVersionのWindows共有を使っているもよう。
ということで、以下のとおりmountすれば成功した。
$ sudo mount -t cifs //192.168.1.1/share /mnt/share -o username=[WindowsUser],password=[Password],uid=hoge,vers=1.0
起動時からmountする
前節までで、コマンドでmountできるようになったので、起動時からmountするように、/etc/fstabに追記する。
//192.168.1.1/share /mnt/share cifs username=[WindowsUser],password=[Password],uid=hoge,vers=1.0 0 0
ちなみに、最後の 0 0 は<dump>と<fsck>で、Windows共有の場合は、0 0で良いようである。
ちなみに、筆者は職場に一台tailscaleをインストールしたRaspberry Piを置いておき、Raspberry PiにWindows 共有フォルダをmountさせ、自宅、出張先などのどこからでもWindows共有フォルダにアクセスできようにしている。
Windows共有フォルダがmountできない人の参考になれば幸い。