raspberry pi5+外付けHDDでファイルサーバを作成
【やったこと】
もうみんながやってるこれですが
以外なところに落とし穴があり一晩さまよったのですが
このような人が減ることを願って記事を書きます
【自己紹介】
初めましてえぢぢーんと申します
元々はハードの研究開発を6年やってましたが
転職してサーバ開発やってます
私の家は私も奥さんも写真を撮る機会が多く
それぞれの写真はLINEのアルバムに保存していたのですが
動画が載せれなくなった+いつか消えるか心配
ということもありNASでもつくるか~ということになりました
せっかくだからraspberry piの勉強もしちゃうかという下心もあり
枯れた技術であろうrasberry piでファイルサーバを作成に挑戦です
(初記事なので見にくかったらごめんね)
【本日のお品書き】
自分のやった手順なので参考にしていただければ
- 【揃えたもの】
- まったくの 無 から構築した手順
- 【raspberry piのセットアップ】
- 起動~raspberry pi connectまで
- 【NASの準備】
- HDDがラズパイから見えるとこまで
- 【sambaのセットアップ】
- sambaのインストールから共有ファイルみえるまで
- 【トラブルシューティング】
- 戦いの記録
【揃えたもの】
秋月さんでこいつらを購入しました
- raspberrypi 5
- HDMI の片方がmicroになってるやつ
- SDカード (rasberry pi OSインストール済)
- 純正アクティブクーラー
- ACアダプター
アマゾンとかを見たけど若干割高だったのと
周辺機器もそろえたかったので秋月さんにお願いしました
2日で届きました秋月さんありがとう
面倒な人はスターターキットもあるみたいなのでこれでもよいと思いますし
普通にraspberry pi 5はオーバースペックなので3、4とかでも全然いいと思います
自分はこの後拡張予定だったのでケースなしのこの構成にしました
【raspberry piのセットアップ】
まずはraspberry pi5に最低限のものをつないで
remoteで操作できるとこまでもっていきます
キーボード操作がだるい方はマウスもつなげてください
あと余談ですがraspberry piの電源は5V/5A規格らしいので
今回購入したものだと若干足りないけど全然動きます
(実験機器とかだとクリティカルですが、こういうものは大丈夫なんですね)
ここからの手順ですが以下になります。
- 【rapberry piの電源ON~desk top画面まで】
- 秋月さんのインストール済SDカードを使った場合は画面指示に従うだけ
- 自分で用意した方は先人の方々を参考にしてください
- 【LAN設定:固定IP】
- DHCPでも大丈夫ですが、メンテナンスの時に代わってると面倒なので
- 【raspberry pi connect設定】
- raspberry pi connect IDと実機の紐付けをするため
- 【remote shell画面へ】
- 環境構築完了
インストール部分は特に説明することがないのでLAN設定から始めます。
【LAN設定:固定IP】
raspberry piコンソールを立ち上げ以下を入力
sudo nmcli con
こんな感じに出力されます
NAMEとDEVICEがあるのですが、使うほうはNAMEのほうです
日本語環境にしたので有線接続 1となってますが
英語のままの方は Wired connection 1とかだと思います
sudo nmcli con modify '有線接続 1' ipv4.addresses <固定したいIP>/24
sudo nmcli con modify '有線接続 1' ipv4.gateway 192.168.0.1
sudo nmcli con modify '有線接続 1' ipv4.dns 192.168.0.1
sudo nmcli con modify '有線接続 1' ipv4.method manual
普通の家庭だったらルータは192.168.0.1ですのでgatewayとdnsは一緒でいいです
そうじゃない人は多分詳しい方なので説明は省きます
これがおわったらcon upでもいいですが、ラズパイ実機を再起動しときましょう
【raspberry pi connect設定】
まずはここでraspberry pi IDを作成しましょう
ID作成が終わったらラズパイ実機にもどって
raspberry pi 5にはconnectが標準装備されてましたが
それ以外のやつらは以下でインストールします。(raspberry pi 5の人は無視してください)
sudo apt install rpi-connect
rpi-connect on
rpi connectのインストールが終わったら以下で紐づけ
rpi-connect signin
あとは指示通りに入力すればraspberry pi IDと実機の紐づけ完了です
GUI上にこんな感じのアイコンがでてるとおもいます。
使い方はraspberry pi connectにアクセスして
さっき紐づけしたIDでログインすると
作成したデバイスが見えてると思います(私の環境ではhome_serverで作成しました)
ここまでくればラズパイの実機に張り付く必要はないので
電源とネットワークだけ接続して、温かい部屋でリモート設定できるようになります
【NASの準備】
NASの実体になる記憶媒体を用意します
USBメモリでもHDDでもSSDでもなんでもいいです
exFATでフォーマットします
フォーマットが終わったらラズパイ実機に戻ってexFATをみれるようにする
sudo apt install exfat-fuse
これでラズパイ画面の記憶媒体をクリックすれば中身が見えるようになります
【sambaのセットアップ】
ファイルサーバの機能はsambaで行います
さっき作った記憶媒体をNASとして運用するために必要になります
sudo apt install -y samba
インストールが終わったらsamba用のuserを作ります
インストールが終わったらコンフィグファイルをいじります。
sudo vi /etc/samba/smb.conf
余談:raspberry piがまっさらの状態のときはviが互換モードでめちゃ使いにくい
sudo apt install vim
vimをインストールして.vimrcに以下記載すると治ります
(vimをインストールしないと.vimrcが効かない)
set nocompatible
set backspace=indent,eol,start
:syntax on
ファイルサーバに使うフォルダを作成します
sudo mkdir /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
次にファイルサーバアクセスに使うログインuserを作成します
useradd <user名>
※ちょっと躓きポイント:既存のuserしかsambaのuserになれない
いろんな手順を見て回りましたが意外と書いてなかった
userを作成できたのでsamba用のパスワードを作成します
sudo smbpasswd -a <user名>
ここで設定したものがsamba用のuserとパスワードになります
viでsambaのconfigを開いたら以下を記載
[home_NAS]
comment = Share
path = /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
public = yes
read only = no
browsable = yes
force user = <samba用user名>
項目はこんな感じ
- public
- guest=yesと同じでguestアクセスを許可する(後でここは消す)
- read only
- 読み取りのみかどうかを設定する
- browsable
- ファイル検索を許可するかどうかを設定する
- force user
- 共有フォルダ内の作成するフォルダなどを強制的に設定したuserにする
コンフィグファイルを作成したら、sambaをリスタートです
sudo service smbd restart
ここまですれば他のPCから共有フォルダが見えるはずです
例ではWindowsのフォルダ欄に"\raspberrypi"でいれると出るとのことですが、
自分の環境では192.168.xxx.xxx(固定したIP)をぶち込むと認識しました
でもここからがマグマなんです
【トラブルシューティング】
やった~構築おわり~じゃあ使いますか
アクセス許可できません
ここからは私の環境で起きたエラーに対する戦いの記録になります
いろんな症状の人がいると思うので試したことを全部書いていきます
こちらをページを参考にするのもよいかもしれません
私のやったことは以下です
- ping確認
- ラズパイ⇔PCからのpingを確認ここで引っかかったら
ネットワーク共有設定かファイヤーウォールを疑うといいかも
- ラズパイ⇔PCからのpingを確認ここで引っかかったら
- samba userの確認
- userを作り直したりパスワードを変えたりするも改善せず
- conf設定の確認
- guest=yesやpublic=yesやcreate mode=xxxxなど試すも改善せず
- sambaのrestart
- 再起動での状況の改善せず
- ファイアウォールの確認
- そもそも私のラズパイではファイアウォールが設定されてなかった
こちらを参考にさせていただきましたhttps://scribble.washo3.com/win-samba-trouble
- SMB1.0 クライアントを有効にする
- 設定したが改善せず、セキュリティが低下するため元に戻す
- ネットワークプロファイルをプライベートにする
- 設定したが改善せず
こちらを参考にさせていただきましたhttps://qiita.com/loxsols/items/ecc7f757a543bd130c1a
- 安全でないゲスト ログオンを有効にする
- 設定したが改善せず、セキュリティが低下するため元に戻す
・
・
・
- フォルダの権限の変更
- 設定したが改善せず・・・?なぜか権限自体が変更できない
sudo chmod 777 /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
ls -l
>>drwxr--r-- 4 <user> <user> 1048576 11月 14 18:24 <NASに使うフォルダ>
??フル権限にしたのに反映されてない??
調べたところマウントされているデバイスはchmodでは変更されないみたい
なので変更すべくデバイスのマウントを外す
sudo umount /media/<user名>/<記憶媒体名>/<NASに使うフォルダ>
新たにマウント用のディレクトリを作る(必須ではないです)
sudo mkdir /media/NAS
デバイス名を調べる
sudo blkid
/dev/sdb2: LABEL="NAS_backup" UUID="4CE6-4A04" BLOCK_SIZE="512" TYPE="exfat" PARTLABEL="Basic data partition" PARTUUID="d90f98ad-5ac7-475c-ade4-ab3b86a86e02"
/dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="AAE0-77E1" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="de4a7c14-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="ca2be9ef-61a4-4400-a5a1-dc17d7ea790d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="de4a7c14-02"
/dev/sda2: LABEL="NAS" UUID="2EC7-43AA" BLOCK_SIZE="512" TYPE="exfat" PARTLABEL="Basic data partition" PARTUUID="8bcdd2cf-3a45-4f07-affa-6f3d499f4f9d"
/dev/sdb1: PARTLABEL="Microsoft reserved partition" PARTUUID="99d6726a-26f5-4675-b9c4-eb8d89978df8
それっぽいやつ容量などで判断大体/dev/sdxみたいなやつ
今回は/dev/sda2だった
権限を設定してマウント
sudo mount -t exfat /dev/sda2 /media/NAS -o umask=000
アクセスできました
対戦ありがとうございました・・・・・
毎度マウント設定をするのは面倒なので以下設定をやっとくといいです
viで開いて末尾に追加
UUID = "<blkidで調べたUUID>" /media/NAS exfat defaults,umask=000 0 0
/media/NASは私の環境ですが、作成したディレクトリに合わせてください
設定をリロードしてオートマウントすれば・・・工事完了です
sudo systemctl daemon-reload
sudo mount -a
おわり
いやー構築出来てよかった
現状は認証情報なしでの運用になっているので
次では認証有にする記事を書こうと思います
しばらくはraspberry pi 5で遊びます!!!