NASを買った

Ubuntuを載せたPCのバックアップ用USB-HDDが壊れてしまったので、思い切ってNASを購入しました。

Windowsなら一発で接続可能なのですが、UbuntuからだとSAMBAのプロトコルで mount することになるそうです。以下、色々なサイトから教えてもらった方法を備忘録的に残します。

まず、一時的な mount の方法です。

#!/bin/bash
username=xxxx
password=xxxx
IP_address=xxx.xxx.xxx.xxx
sudo mount -t cifs -o username=${username},password=${password} //${IP_address}/Public /mnt    

で、工場出荷時に作成されているPublicという名称のNASのフォルダーをUbuntuマシンの/mntに mount することができます。-o オプションはカンマで列挙することが味噌らしいですね。

ただし、このままでは/mntのユーザーが${username}となりませんので、書き込みができないことになります。

そこで -o オプションに以下のようにfile_modeやdir_mode、uidとgidを追加します。uidおよびgidは/etc/passwdを見るなどして、正しい値を設定してください。

-o username=${username},password=${password},file_mode=0644,dir_mode=0755,uid=1000,gid=1000

 

さて、次はブートと共に自動的にmountされる設定です。/etc/fstabに以下の行を追加します。

//${IP_address}/Public/SERVER_BAK /home/user/HDD_bak cifs username=${username},password=${password},file_mode=0644,dir_mode=0755,uid=1000,gid=1000 0 0   

スペース区切りの6つのフィールドからなる行です。ここでは秘匿性のために ${IP_address} などとあたかもシェル変数のように記述していますが、/etc/fstabでは変数の代入は効かないと思いますので、正しい名称を記入する必要が有ります。実は平文にパスワードなどを書くのはセキュリティ的に良くないため、参考にしたサイトでは別ファイルを読み込ませるような方法も書いてくれてたのですが、ここでは利便性を優先して上のような書き方としています。

この結果、NASの Public/SERVER_BAK というフォルダーが Ubuntuマシンの /home/user/HDD_bak というディレクトリに自動的に mount されるようになります。Ubuntuマシンの所望のディレクトリをHDD_bakにコピーしてやればバックアップとなる上に、ネットワーク経由で他のWindowsマシンなどからも閲覧可能となっています。