Raspberry Pi 3.5インチ USB-HDDアダプタの作成

Raspberry Piで使用する3.5インチ用のUSB-HDDアダプタを作成してみました。
HDDの信頼性としてはやはり2.5インチよりは3.5インチに分があるかな?!
PiでHDDを使うには必要な電力をどう確保するかで決まってくると思います。
当サイトの100均ハブなどではUSBの電源ラインに直接5Vを供給しています。
ここらは自己責任ですね。

3.5インチ用USB-HDDケースも市販されていますが安い物は別に12V電源アダプタを接続するなど今ひとつ使い勝手がよくありません。
当サイトでは3.5インチHDDの丸裸仕様でいきたいと思います。丸裸といってもPiと接続するには最低限SATAからUSBに変換するパンツだけは履かせてあげる必要があります。

今回用意したもの

変換アダプタには前回使用のORICO 2.5インチ HDDケースを今回も採用してみました。(基板のみを使用)

東芝 DT01ACA100 1TB SATA
ORICO 2.5インチ HDDケース
XL6009 4A DC-DC ステップアップコンバータ

アダプタを改造する

SATAの仕様としては2.5インチも3.5インチもコネクタは共通となっています。ORICOの2.5インチ用は12Vの端子がないので直接供給してみることにしました。
シリアルATA wiki

敢えて12V電源を別に用意するのは使い勝手が悪いのでXL6009基板で昇圧します。
ユニバーサル基板にはマイクロB5V入力、XL6009基板を載せ出力(12V)及び、5V,GNDの3本をアダプタの電源コネクターに半田付けします。


電源コネクタは右側15pin、左から1〜15
4 – 6 GND
7 – 9 5V
13 – 15 12V
各3Pinづつ共通のため真ん中のPinを狙って半田付けすればいいですね。
熱が通りにくいので大きめのハンダゴテがいいと思います。


基板合体のため穴を3mmに拡大、電源コネクター側に新たに穴を開けました。
プラスチックスペーサーを入れて合体します。

パーティション作成


電源は5V2Aクラスを用意しました。Pi3に繋いでパーティションを作成します。

ドライブは/dev/sdbで認識できました。fdiskを実行します。

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xdc33f138.

Command : n 新たに領域を作成

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-1953525167, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-1953525167, default 1953525167): 

Created a new partition 1 of type 'Linux' and of size 931.5 GiB.

Command : p 確認

Command (m for help): p
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdc33f138

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1        2048 1953525167 1953523120 931.5G 83 Linux

Command : w テーブルをディスクに書き込み、終了

Command (m for help): w

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

フォーマット

Pi3からはコマンドラインから実行する方法とgpartedを使用する方法があります。
コマンドラインから実行

# mkfs.ext4 /dev/sdb1
mke2fs 1.43.4 (31-Jan-2017)
/dev/sdb1 contains a ext4 file system
	last mounted on Wed Nov 29 00:34:11 2017
Proceed anyway? (y,N) y
Creating filesystem with 244190390 4k blocks and 61054976 inodes
Filesystem UUID: 3c1a930c-6175-4ef7-be64-31d3771e86f6
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

gpartedを使用
インストール # apt install gparted

右上のデバイス選択でHDDを選択
デバイス選択を謝ると悲しい事態が起こることになるので注意
メニューのチェックマークを実行するまでは実行しないので構成を自由に変更したりすることが可能です。


HDDのアクセスLEDは下向きになりますがかなり明るいので充分認識可能です。
フォーマットが終了するとPi3のファイルマネージャーには1TBのディスクが見えてきます。
当初マウントしただけでアクセスLEDがしばらく点滅していたのですがその後は待機時点灯、アクセス時点滅の正常動作になっています。(なにかチェックが入っていたのかもしれません?)


アダプタ自体はかなりコンパクトにそして電源も通常の5V2Aクラスがあればいいので手軽に使用できると思います。
用途としてはファイルサーバー(pi zero)のHDDバックアップ用を想定していますがPiのUSB2.0+(NFS,samba)は速度面では期待できないのでHDDからのダイレクトコピーや非常時のHDD救出用にも活用できそうです。