おさらい
前回の続き。
・NOOBSなし(はあんまり関係ないけど)でSDカードにddでRaspbianインストール済み
・有線LAN or 無線LANでラズパイにssh出来る
・USBからの給電を1200mAに設定済み
・2.5インチ外付けHDD(USB給電タイプ)接続するが認識しない←イマココ
打開策1 SSDにしてみる
HDDより消費電力が低い外付けSSDを用意してUSB接続してみる。
hoge@mochi:~ $ sudo fdisk -l
:
:
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/mmcblk0p2 137216 30318591 30181376 14.4G 83 Linux
:
:
Device Start End Sectors Size Type
/dev/sda1 2048 1465149134 1465147087 698.7G Linux filesystem
/dev/sda1がでてきたら、無事認識しています。
本来はこの後、このSSDでセットアップを進めたかったのですが…5年前に購入し酷使していたブツのせいか、後ほどSDカードからOSをddした後のe2fsckを通らなかったため断念。
打開策2 電源周りを強化
家に転がっていた、USB給電の強まった電源タップや、給電用のUSB端子のついたUSBケーブルを使って再度HDDを接続。こいつ…動くぞ…!!
SDカードのOSをddでHDDにコピーとパーティションのリサイズ
みんな大好きddコマンドでHDDにOSをコピー。
hoge@mochi:~ $ sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=1m conv=noerror,sync
しばらく放置するとコピーがおわるので、e2fsckして、リサイズに備える。
hoge@mochi:~ $ sudo e2fsck /dev/sda1
で、不正ブロックを修正するか聞かれたら、yと答えておきましょう。次に、パーティションのリサイズをします。これもコマンド一発
hoge@mochi:~ $ sudo resize2fs /dev/sda1
で終わりです。
ブートパーティションを切り替える
/etc/fstabとcmdline.txtを書き換えて、ブートパーティションを切り替えます。まず前者。気をつけるのは、修正するのはdd先のHDDの/etc/fstabだという所。おあつらえ向きのマウントポイント(/mnt)があるので、そこにHDDをマウントして編集する。
hoge@mochi:~ $ sudo mount -t ext4 /dev/sda1 /mnt
hoge@mochi:~ $ sudo vim /mnt/etc/fstab
/dev/mmcblk0p2
の部分を、スクリーンショットのように
/dev/sda1
に書き換える。
次はcmdline.txtだ。シェルからsudo halt
あたりで、一旦ラズパイの電源を落とし、SDカードをPCにマウント(認識させる)SDカード直下に、cmdline.txtがあるので、fstab同様、/dev/mmcblk0p2
となっている部分を/dev/sda1
とにする。
この状態で、SDカードをラズパイに戻し電源投入後に無事起動すれば、HDDから起動してる…ハズ。
もし、無事起動しなかった場合は、cmdline.txtを/dev/mmcblk0p2
に戻せば、SDカードから起動するようになる。HDDからの起動時のエラーなどは、ディスプレイ接続して確認するようにしましょう。
最後に
若干無理矢理感はあるもののHDDからのOS起動にはこぎつけました。ただ、給電をタップからではなく、iPhone付属のACアダプタ<->USB変換コネクタでの給電に切り替えたところ、やはり起動しなくなったりとこのあたりはしっかり足固めしてあげないとだめな様子。ラズパイにも、正規のACアダプタを買ってあげよう…