LoginSignup
0
0

More than 3 years have passed since last update.

今更Raspberry Pi 4をNASにした

Posted at

概要

Raspberry Pi 4 にUSBでSSDを繋ぎ、それをNAS化してみました。
これだけ情報があるのに、あえて残そうと思った理由は

  • 備忘録的に残して置く
    • もう一度組み直す or SSDを追加するかも
  • Linuxに不慣れな自分がハマったポイントがあった
    • 手順ミスで/etc/fstabにフォーマット前のUUIDを書いたままリブートさせてしまい、OSが起動しなくなってあたふたした
  • 参考にしたサイトと同じ設定をしてもうまく動かなかった
    • 実現したいシステムの前提条件と合っていなかったのかも。。。

というのがあったので、改めてまとめなおそうと思った次第です。

背景

※興味ない方は読み飛ばしてもらってOKです

PCゲームを録画したものをLAN内で共有し、スマホからVLCで見ていたのですが、
どうやらVLCが原因と思われるエラーでブルスクが3度ほど発生。
心臓にも悪いしゲームのプレイ中にブルスクなんてとんでもないので、
録画データをちゃんとNASに置いて、それを見ることにしようと思い立ちました(ようやく)

ラズパイ自体はすでに購入済みで、興味本位でsambaで共有出来るように設定していました。
またOSが入ったmicroSD上のデータを読み書きすると遅いし容量も少ないということで、
SSDまで買ってありましたが、箱が積んであるだけだったのでそこからの作業です。

構成

Win10 PC -- rooter -- RasPi4
                        | (USB3.0)
                       SSD

SSDにOSを置いたりもしていない、ほぼほぼplainな状態です。

やること

  • SSDの接続・初期化
  • 自動マウントの設定
  • 編集可能なディレクトリの作成
  • sambaの設定(省略)

SSDの接続・初期化

今回つないだSSDはWindowsマシンでNTFSフォーマット済みのものを利用しました。
接続はUSBでSSDとRaspberryPi4を繋ぐだけ。

NAS化したいので、SSDをext4でフォーマットし直します。
ただしmountされている状態ではフォーマット出来ないので、まずunmountします。

# mountされているのでunmountするdeviceを特定
$ sudo fdisk -l
  ...
  /dev/sda1 ... # <- 接続したSSDが見えてる

# unmountする
$ sudo umount /dev/sda1

unmountできたのでext4でフォーマットしていきます。

# ext4でフォーマット
$ sudo mkfs.ext4 /dev/sda1
# セクタをどうするか聞かれるが、ひとまずdefault値で設定

自動マウントの設定

次に起動時にSSDを特定のディレクトリにmountしてくれるように設定します。
mount先のディレクトリを作って、USB接続しているSSDを特定、fstabを設定します。
fstabの書式上、UUIDやPARTUUIDなどデバイスを指定する術がいくつかあるようです。

# mount先のディレクトリを作成
# 一般的には /mnt か /media 以下に作るらしい
$ sudo mkdir /mnt/ext_ssd

# USB接続しているSSDのUUIDを特定
$ sudo blkid
  ...
  /dev/sda1 ... UUID=XXXXX-XXXXXX-XXXXX ... # <- USB接続しているSSD

# fstabを編集するためのエディタ起動
# vimでもnanoでもleafpadでも… お好きなエディタで
$ sudo nano /etc/fstab

fstabには下記の1行を追加
ちなみにnofailを書かず、デバイス指定を間違うとOSが起動しなくなります。
https://bacchi.me/linux/troubleshooting-boot-process/
(解消方法も下に置いておきます)

# デバイス指定 マウント先 ファイルシステム オプション dump pass の順で指定できる
# nofailを忘れるな!!
UUID=XXXXX-XXXXXX-XXXXX /mnt/ext_ssd ext4 defaults,nofail 0 2

ここで/etc/fstabに設定した情報が間違っていないか確認する ←ココ重要

# etc/fstab を使ってmountを試みる
$ sudo mount -a

# mount されているか確認
$ sudo df
 ...
  /dev/sda1 ... ... ... ... /mnt/ext_ssd # デバイスがマウントされていることを確認

ここまで来て初めてrebootです。

$ sudo reboot

編集可能なディレクトリの作成

ここで一つハマった。
よくよく考えれば当たり前なのだが、SSDの直下をrwxには出来ない。
(windowsでも普通はC直下ではなく、どこかのディレクトリを共有設定する)
なのでLAN内で誰でも触れるようなディレクトリを/mnt/ext_ssd以下に作る必要がある。
もちろんこれはmountされている状態で行う必要がある。

# ディレクトリの作成
$ sudo mkdir /mnt/ext_ssd/share

# permissionの変更
# 今回は誰でも使えるように777にしたが、用途に応じて変更すること
$ sudo chmod 777 /mnt/ext_ssd/share 

/etc/fstab の編集ミスった

RasPiのOSが入っているmicroSDは基本的にext4でフォーマットされていて、標準のwindowsでは読めない(WSL2があれば話は別だが)
なので読めるようにするアプリを使って/root/etc/fstabの書式を正しい記述に直す必要がある。
今回は Linux File Systems for Windows by Paragon Software というものを使った。
https://www.paragon-software.com/jp/home/linuxfs-windows/

こちらのページを参考にした。
https://m-bc.jp/2019/08/ext4bywin10/

最後に

ぐだぐだとまとめてきましたが、大事なのは/etc/fstabの編集です、そこにつきます。
書式ミスを解消する方法を探して試すだけで2時間ぐらい浪費してしまったので、
同じような境遇の方がいて、これをみて解消できたという方がいたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0