Raspberry Pi Zero WHに外付けHDDを接続

先日、「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を使いたい方にはおすすめです。