先日、「Raspberry Pi Zero WH」のセットアップを行いました(記事は こちら)。
リンク
一度試すだけのつもりで立ち上げてみたのですが、少し触ってみたところ、簡単にWebサーバとして使えそうなので、それならRaspberry Piに外付けハードディスクを繋げば、例えば以前の記事(こちら)で紹介した「M5Camera」で撮影した画像を、このハードディスクにどんどん保存していけるのでは?と考えました。
そんな訳で、今回はRaspberry Pi Zero WHに外付けHDDを接続してみようと思います。
こちらのHDDを使いました。
リンク
なお、Raspberry Piに外付けHDDを繋ぐには、セルフパワー方式(電源付き)のUSBハブが必要です。使ったのはこちらです。
リンク
こんな感じで接続することになります(配線だらけで、かなり汚いです)。
作業手順は以下のとおりです。
- Raspberry Piを起動します。
- 「Top」>「アクセサリ」>「LXTerminal」をクリックします。
- $ dmesg
- 表示されたメッセージを確認し、最終行あたりで「sd」で始まる文字列を探します。今回は「sda」となっていました。
- $ df
- 「/dev/ + 先ほど探した文字列 + 数字」という項目(デバイスファイル名)があることを確認します。今回は「/dev/sda2」となっていました。
- $ sudo umount /dev/sda2
- $ sudo apt install gdisk
- $ sudo gdisk /dev/sda
- : p
- HDD内のパーティションが一覧表示されます。今回は「Number 1」と「Number 2」のふたつがありました。
- : d
- : 2(Number 2のパーティションが削除されます)
- : d(Number 1のパーティションが削除されます)
- : n
- : [enter](デフォルトの「1」でパーティションが作られます)
- : [enter](最初のセクターが選択されます)
- : [enter](最後のセクターが選択されます)
- : [enter](パーティションの種類「8300」が設定されます)
- : w
- : y
- $ sudo mkfs.ext4 /dev/sda1(デバイスファイル名+先ほどパーティションを作った時の番号)
- : y
- $ sudo mkdir /media/hdd(このディレクトリにHDDをマウントします)
- $ sudo mount /dev/sda1 /media/hdd
- $ df(「/dev/sda1」が「/media/hdd」ディレクトリにマウントされていることを確認できます)
- $ sudo blkid /dev/sda1(UUIDを調べます)
- 「/etc/fstab」ファイルを開き、末尾に以下を追記します。これで、Raspberry Piを起動した時に、自動的にHDDがマウントされるようになります。
UUID=「先ほど調べたUUID」 /media/hdd ext4 defaults 0 0
これで、Raspberry Piを起動するだけでHDDがマウントされ、読み書きができるようになりました。
次に、HDD内のファイルに、他の端末のWebブラウザからアクセスできるようにします。
- $ cd /media/hdd
- 「index.html」ファイルを新規に作成します。
- $ cd /var/www/html
- $ sudo ln -s /media/hdd
- 他の端末のWebブラウザで「http://Raspberry Piの固定IPアドレス/hdd/」にアクセスします。作成したindex.htmlファイルの内容が表示されれば、正しく作業できています。
なお、私がRaspberry Piの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました(私が参考にしたのは「第4版」ですが、既に「第6版」が出版されています)。
リンク
Raspberry Piの入門書には、電子工作について詳しく書かれているものが多いのですが、本書は、Raspberry Piをパソコンやサーバーなどとして活用する方法についても詳しく書かれており、そのような用途でRaspberry Piを使いたい方にはおすすめです。
リンク