ラズパイゼロのHDD起動試行途中経過
HDD起動の方法について色々試してみたが、以下の通り、今のところは上手くいっていない。
- ラズパイゼロにUSBタイプの2.5インチHDDをつないでみたが、読み書きの動作が極端に遅くなり、とても実用に耐えられないと思われた。
電源供給タイプのUSBハブを使えば解消されるのであろうか。
- USBデバイスからの起動をUSBメモリーを使ってやってみたが、windowsPCで新規インストールしたUSBメモリーだと旨く起動できたが、既に使用しているSDメモリーの/rootディレクトリーをUSBメモリーにddコマンドなどでコピーした場合は、途中で止まってしまい上手く行かなかった。
- HDD方式は電源供給など大掛かりになりそうなので余り実用的てないのかも知れない。
しかし、まぁ一応試してみようとセルフパワータイプのハブを購入した。
このハブに2.5インチUSB-HDDを繋いで起動に挑戦してみることとした。
ちなみにこのUSB-HDの速度は以下のとおりである。左がHDDで右が8GmicroSD

SDメモリよりは少し速いがSSDには比べ物にならない。
〇設定
起動のための設定は、USBメモりでの試行結果から稼働システムをUSB-HDDにコピーしておき起動用SDは別に用意するのではなく、起動用SDとUSB-HDDは同じシステムをインストールする。
これでは稼働しているシステムをUSB-HDDに移行してそれで起動するような芸当は出来ないが、最初からのシステム構築であれば利用可能である。
また、USB-HDDのフォーマットはWindowsのディスク管理機能ではFAT32のフォーマットが容量的に出来ないのでFat32Formatter.zipを使ってみたがダメでした。
仕方ないのでラズパイでのfdiskコマンドを使ったフォーマットに挑戦する。かってLinuxを始めたころは空で覚えていた手順だが今は調べながら出ないとできないのは歯がゆいものである。
pi@raspberrypi:~ $ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107861504 bytes, 976773167 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: gpt
Disk identifier: 5FFAEC99-D8C9-4459-A7B8-97CE2982C295
対話モード、これも昔は覚えていた
pi@raspberrypi:~ $ sudo fdisk /dev/sda
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.
Command (m for help):
Command (m for help): n
Partition number (1-128, default 1):
First sector (34-976773133, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-976773133, default 976773133):
Created a new partition 1 of type 'Linux filesystem' and of size 465.8 GiB.
Partition #1 contains a ntfs signature.
Do you want to remove the signature? [Y]es/[N]o: y
The signature will be removed by a write command.
Command (m for help): p
Disk /dev/sda: 465.8 GiB, 500107861504 bytes, 976773167 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: gpt
Disk identifier: 5FFAEC99-D8C9-4459-A7B8-97CE2982C295
Device Start End Sectors Size Type
/dev/sda1 2048 976773133 976771086 465.8G Linux filesystem
でパーティションが作成された。
Command (m for help):
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
で書込み終了した。
確認するのであれば最初の$ sudo fdisk -l /dev/sda である。次はフォーマットである。
pi@raspberrypi:~ $ sudo mkfs -t vfat -n USBDATA /dev/sda1
mkfs.fat 4.1 (2017-01-24)
pi@raspberrypi:~ $ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.8 GiB, 500107861504 bytes, 976773167 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: gpt
Disk identifier: 5FFAEC99-D8C9-4459-A7B8-97CE2982C295
Device Start End Sectors Size Type
/dev/sda1 2048 976773133 976771086 465.8G Linux filesystem
ファイルを読み書きして作成出来た事を確認
SDカードとUSB-HDDにwindowsPCで balenaEtcher を使ってrasbian-liteをインストール。
インストールしたUSB-HDDのPARTUUIDを確認
まず別のSDカードで起動したラズパイにセルフパワーのハブを使ってUSB-HDを接続
その上で blkid を実行
pi@raspberrypi:~ $ sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="6e51d86f-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="6e51d86f-02"
/dev/mmcblk0: PTUUID="6e51d86f" PTTYPE="dos"
/dev/sda1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="7ee80803-01"
/dev/sda2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="7ee80803-02"
pi@raspberrypi:~ $ sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="6e51d86f-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="6e51d86f-02"
/dev/mmcblk0: PTUUID="6e51d86f" PTTYPE="dos"
/dev/sda1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="7ee80803-01"
/dev/sda2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="
7ee80803-01と7ee80803-02"であることが分かる。
次にUSB-HDDの fstab を確認する。
USB-HDDの /dev/sda2 をラズパイの /mnt/ にマウント
pi@raspberrypi:~ $ sudo mount /dev/sda2 /mnt
cat コマンドで fstab の内容を確認
pi@raspberrypi:~ $ cat /mnt/etc/fstab
proc /proc proc defaults 0 0
PARTUUID=7ee80803-01 /boot vfat defaults 0 2
PARTUUID=7ee80803-02 / ext4 defaults,noatime 0 1
PARTUUID で指定しているのでこのまま置いておく。
〇起動SDカードの設定
起動ディレクトリを指定している cmdline.txt を書き換える。
変更前
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
ここでおかしいことに気づく。SDカードとUSB-HDDのPARTUUIDが同じである。
これでは区別がつかないのでUSB-HDDのfstab を変更する。
proc /proc proc defaults 0 0
/dev/sda1 /boot vfat defaults 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
また、ネットの無い素のラズパイゼロのため起動SDカードの /boot に wifi 接続と ssh 起動の書き込みを追加する。
これで起動してみ。
起動せず。理由は分からない。ディスプレーを繋いで確認するが、前にUSBメモリーでやっていた時より早い段階でハングアップしているようである。
PARTUUID 辺りが怪しそうなので動いているラズパイに繋いで確認する。何故かcmdline.txtに設定したものと変わっているではないか。どうしてだろう。わからないが入れなおすと難なく立ち上がった。
しかしHDDではディスクチェックがかかるようで相当待たされることもあった。
また、購入したセルフパワーのハブはキーボードを繋ぐとキーボードが動かなくなってしまう。
これでは設定が出来ない。ラズパイ3だとUSBコネクターが沢山あるのでこちらを使えばキーボードをラズパイに直接つなぐことが出来、セルフパワーハブを使ってHDDに電源供給しても問題なく入力が出来た。やはりラズパイ3はそれなりの価値がある事が認識できた。
これをやってて気が付いたが、ラズパイ3はラズパイゼロよりUSBでの電源供給能力が低く、HDDはバスパワーでは全く動かなかった。ゼロは不安定ではあったが動くことは動いていたのだが。
3も設定を変えると電源供給能力は変わるのかもしれない。
これでインストール段階でHDD起動は出来たが、稼働中システムの移行についてはまだ確認していない。
大きな違いは無い様に思われるが。
機会を見て挑戦することにする。
やれやれである。