先日ラズパイでwebサーバーを作り、それを公開して外部のネットワークからアクセスできるようにしようとしたが、自宅のネットワーク環境が少し複雑で諦める形に、、、。
家庭内webサーバーは正直使い道がない。
とことで、今回は家庭用ファイルサーバーを作っていこうと思います。
OSのインストールや、初めの設定などの説明は省略します。
目次 非表示
実行環境
今回使用する主な機器です。
- Raspberry Pi 3 Model B v1.2 OS : Raspbian GNU/Linux 10 (buster)
- 外付けHDD(ITB)
- macbook pro : デュアルコアIntel Core i5 : macOS 11.5.2 (20G95)
- windows10 home
- Samba(ファイルサーバー)
HHDの準備
WindowsでデフォルトのNTFS
フォーマット形式は、Macでは読み取り専用で書き込みがでず、一方、MacでデフォルトのHFS+
フォーマット形式は、Windowsでは読み込むことさえ出来ません。
今回はmac、windows両方からアクセスできるようにするため、両プラットホームから読み書き可能な互換性の高いexFAT
(Extended FAT)形式でフォーマットしていきます。
exFAT
形式でのフォーマットはWindows、Macどちらでも可能です。ここでは、windowsで行うことにします。
Raspberry Piの設定
マウント設定
exFATを読み込みできるようにする
Raspberry Piは初期状態だとUSBをさしても自動で認識しません。
そのためexFATの外付けHDDを認識させるために、exfat-fuse
とexfat-utils
をインストールします。
sudo apt-get install exfat-fuse exfat-utils
マウント先のフォルダ作成
次に、マウント先のフォルダを用意します。(場所や名前は任意で大丈夫です)
sudo mkdir /mnt/NAS
HDDのパス、UUIDの確認
HDDをラズパイに繋ぎ、以下のコマンドでを実行してください。
sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="7616-4FD8" TYPE="vfat" PARTUUID="3907e213-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="87b585d1-84c3-486a-8f3d-77cf16f84f30" TYPE="ext4" PARTUUID="3907e213-02"
/dev/sda1: LABEL="RaspberryPi" UUID="0067-EB4C" TYPE="exfat" PARTUUID="62470812-01"
/dev/mmcblk0: PTUUID="3907e213" PTTYPE="dos"
先ほどフォーマットする際に指定したボリュームラベルがLABELとして示されています。
LABEL=”RaspberryPi”として認識されています。
HDDのパスは”/dev/sda1″でUUIDは”0067-EB4C
“です。
起動時にマウントするように設定
ラズパイをシャットダウンするとマウントが解除されてしますので、起動時に自動でマウントするようfstab
に設定します。
sudo nano /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime,umask=000 0 1
#追加内容
UUID="0067-EB4C" /mnt/NAS exfat defaults,nofail 0 1
#UUId マウント位置 ファイルシステム マウント時のオプション
オプションの中身は以下のサイトを参考にしてください
ファイルを保存したら、再起動します。
sudo reboot
再起動したら、次のコマンドでマウントできているかを確認します。
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 fuseblk 932G 18M 932G 1% /mnt/NAS
無事マウントできています。
Samba – ファイルサーバーのインストール
SambaはWindowsやMacなど、別のシステムで動いているマシンからファイルを参照したり転送したりできます。
次のコマンドでインストールしていきます。
sudo apt-get install samba
途中、”Do you want to continue [Y/n]?
“と出てくるので”Y
“で進みます。
また、以下のような画面は”いいえ”で進めてください。
Sambaの設定
設定ファイルは/etc/samba/smb.conf
です
sudo nano /etc/samba/smb.conf
以下の内容を追記します。
[piNAS]
comment = RaspberryPi_NAS
path= /mnt/NAS
read only = no
guest ok = yes
force user = master
comment : 任意のコメント
path : HDDのマウント先PATH
read only : no→書込みも可能 / yes→読み込みのみ
guest ok : no→ユーザ名パスワード必須 / yes→ゲスト接続
force user : ファイルやフォルダーのアクセス権限はここで指定したユーザーとなる。
sambaにユーザー登録
先ほどforce userに設定したユーザーを登録します。
パスワードはMacやWindowsからの接続時に必要なので、忘れないでください。
パスワードと確認用のパスワードを同じものを2回入力します。
sudo smbpasswd -a master
最後にサーバーを再起動します。
sudo service smbd restart
これでサーバーが立ち上がります。
ファイルサーバーに接続
macの場合
Finder選択時にメニューバー>移動>サーバーへ接続(⌘K)を選択します。
すると、右のようなウィンドウが表示されるので、”smb://[ラズパイのIPアドレス or ホスト名]
“を入力します。
先ほど登録したユーザーとパスワードを入力します。
(設定ファイルで”guest ok = yes”とした場合、ゲストで接続できます。)
これで接続することができました。
windowsの場合
まず”コントロール パネル\ネットワークとインターネット\ネットワークと共有センター\共有の詳細設定”でネットワーク探索を有効にしてください。
次に”Windows+R“もしくは、エクスプローラーのパスの部分に
“\\ smb://[ラズパイのIPアドレス or ホスト名]
“と入力します。
ユーザーとパスワードはmacと同様になります。
これでWindowsも接続することができました。