苦労だらけだったので共有しておいた方が良いのかなと思いまして、いくつかつらつらと残しておきます。
目次
参考にした
Raspberry PiファイルシステムHDD化 その1/3 (HDD接続~データ移行) - 屋根裏Linux
Frog Code Works » Raspberry PiでUSB外付けHDDをフォーマットして自動マウント
Raspberry Pi USB HDD起動 | 月と杜
Raspberry Pi Model B+のUSBポートに1.2Aの電力を供給する - あっきぃ日誌
使った
- Raspberry Pi (Model B+)
- 主役その1。
- I-O DATA HDPC-UT500S
- 主役その2。以前外部ストレージとして使っていたものの、諸事情により退役させたもの。
- pqiのmicroSDカード 2GBと16GB
- あきばおーで一番安くて容量小さいのがこれだった。16GBのは借り物。
- cheero Power Plus DANBOARD version
- 最近めっちゃ種類が出てるダンボーバッテリーの初代モデル。2回目の注文受付くらいの時に買った。
- MacBook (13inch, Late 2007)
- Snow Leopardから進化できないけど我が家では現役機。
- Ubuntu 12.04 Live disc
- あって嬉しいLinux Live Disc。これを使ってちょっと 楽をした
手順
Raspbianを焼く(昔やった)
雑魚なのでNOOBS使いました。
- ここから「Offline and network install」の方を選んで落とす。容量の割に重い。
- zip展開したらFATでフォーマットしたSDに中身をぶち込む
- DVDプレイヤーに刺さってたHDMIケーブルを抜いてRPiに刺して起動。キーボードとかはこいつが便利です。
- 画面に従って焼く
見出しの通り、この行程はB+を買う前にBを借りて使っていたので、今回はやってません。
ついでに言うと、2GBのSDにはOS焼けないっぽいので注意だ。
そしてここでNOOBSを使ったことによってめんどくささが増したのでありました。
RPiのUSBポートを1.2A出力対応させる
今までのRaspberry Piでは、USBポートには0.6Aが出力されるそうで、これだと普通のUSBフラッシュメモリなんかなら普通に動くが、ポータブルHDD(USBから電源供給するやつ)には電力が足りず、ディスクがスピンアップしないらしい。
B+モデルは電源から2A供給されている場合、USBポートに1.2Aまで供給できるようになったので、ポータブルHDDも行けるで!とのこと。
しかしデフォルトでは0.6Aに制限された状態らしく、configをいじる必要があるらしいのでいじる。
raspi-configとかapt-get update / upgradeとか済んでる前提です。
私はvim派でもemacs派でもなくnano派なので、この先エディタは全てnanoを使ってますが、好みによって好きにすると良いと思います。
sshでもRPi直でも良いのでログインして
sudo nano /boot/config.txt
末尾に以下の文言を追加。
safe_mode_gpio=4
max_usb_current=1
これでRaspberry PiにHDPC-UT500を接続できます。
HDDのパーティションを割る(その前に)
このページを参考にHDPC-UT500のパーティションを割っていく。
そのためにはRPiにHDPC-UT500を差す必要があるが、当時手元に2.0A以上出力できるACアダプタがなかったので、ダンボーバッテリー君に出動してもらう。
んでもって、まずは参考ページ通りに、差す前の状態で sudo fdisk -l する。
pi@raspberrypi ~ $ sudo fdisk -l Disk /dev/mmcblk0: 16.0 GB, 16001269760 bytes 4 heads, 16 sectors/track, 488320 cylinders, total 31252480 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 Disk identifier: 0x0006d088 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 1292968 642388+ e W95 FAT16 (LBA) /dev/mmcblk0p2 1294336 31186943 14946304 85 Linux extended /dev/mmcblk0p3 31186944 31252479 32768 83 Linux /dev/mmcblk0p5 1302528 1425407 61440 c W95 FAT32 (LBA) /dev/mmcblk0p6 1433600 31186943 14876672 83 Linux
……めっちゃパーティションわかれてるよオイィ……
めんどくさそうな匂いがこの辺りでぷんぷんしてきました。
NOOBSではなくddコマンド辺りを使ってインストールしてあげるとこの辺かなり楽らしいです。
続いてマウント状態を確認する為に cat /etc/fstab しましょう
pi@raspberrypi ~ $ cat /etc/fstab proc /proc proc defaults 0 0 /dev/mmcblk0p5 /boot vfat defaults 0 2 /dev/mmcblk0p6 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that
最後の行でなんか怒ってるけど気にしてはいけない。
末尾5が/bootに、末尾6がrootとしてマウントされていることがわかりました。
じゃあ他は??
pi@raspberrypi ~ $ sudo mount /dev/mmcblk0p1 /mnt pi@raspberrypi ~ $ cd /mnt pi@raspberrypi /mnt $ ls BUILD-DATA bootcode.bin recovery.cmdline recovery.rfs INSTRUCTIONS-README.txt defaults recovery.elf riscos-boot.bin RECOVERY_FILES_DO_NOT_EDIT os recovery.img
pi@raspberrypi ~ $ sudo mount /dev/mmcblk0p3 /mnt pi@raspberrypi ~ $ ls /mnt installed_os.json lost+found noobs.conf
ん〜〜わかんない☆
/dev/mmcblk0p1についてはRaspbianを焼く時に入れたNOOBSのファイルです。
/dev/mmcblk0p3は勉強不足で申し訳ないですがわからないです。
(今度こそ)HDDのパーティションを割る
HDDを差すと大抵の場合/dev/sdaとして認識されるはず。
参考ページ通りに sudo fdisk /dev/sda を使って割ってくのも良いけど、『何回かパーティションを作ったり消したりを繰り返してサイズを調整してます。』とあるように、コマンドラインでいちいちやるのはめんどくさい。
ここで登場するのがUbuntuのLive disk。
UbuntuのLive diskにはGPartedという素晴らしいディスク管理ツールがある*1ので、こいつで割っちゃった方が早くね?という魂胆である。
いかにも雑魚っぽい思考回路ではあるが、GUIに慣れ親しみすぎて抜け出せない世代なのでご容赦いただきたい。
と言う訳で、MacBookにいそいそとrEFItを導入、LiveDiskを挿入し、のんびりと起動を待って参考ページと同じ様な構成でパーティションを割る。
こんな感じ。(このあとiTunes用にパーティションを増やしたので下と差異有り)
これをもう一度Raspberry Piに接続し、sudo fdisk -l で確認してみる。
pi@raspberrypi ~ $ sudo fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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 Disk identifier: 0x0005b867 Device Boot Start End Blocks Id System /dev/sda1 2048 33556479 16777216 83 Linux /dev/sda2 33556480 976773119 471608320 5 Extended /dev/sda5 33558528 243273727 104857600 83 Linux /dev/sda6 243275776 972578815 364651520 83 Linux /dev/sda7 972580864 976773119 2096128 82 Linux swap / Solaris
やっとこさパーティション割りが終わった。
rootパーティションの中身を/dev/sda1に移す
素直にddコマンド使いましょ
参考ページにあるコマンドを
NOOBS仕様に書き換えてそのままッターーン
sudo dd if=/dev/mmcblk0p6 of=/dev/sda1 bs=32M conv=noerror,sync
んでもって同じくエラーチェック・修復とパーティション広げをやる
sudo e2fsck -f /dev/sda1 sudo e2fsck -f /dev/sda1 sudo resize2fs /dev/sda1
そしたら一応マウントして中身を確認。
ここではデフォルトで用意されている/mntディレクトリにマウントしているけど、適当なディレクトリ作ってそこにマウントしてももちろんOK。
sudo mount -t ext4 -o defaults /dev/sda1 /mnt df -h
マウントしたら後でちょっといじるのでアンマウントせずにそのままで。
起動時にHDDをrootとして自動マウントさせる
これまた参考ページ通りに。
sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak sudo nano /boot/cmdline.txt
「root=/dev/mmcblk0p6」となっている部分を「root=/dev/sda1」に書き換える。
sudo nano /mnt/etc/fstab
3行目辺りの「/dev/mmcblk0p6」を「/dev/sda1」に書き換える。
ここまで出来たら再起動かけて実際にHDDから起動させてみましょう。
このときはディスプレイ繋いでコンソール確認しながらやるとミスってた時に原因がなんとなくわかるんじゃないでしょうか。
sync;sync;sync sudo reboot
無事に起動したらログインしてちゃんとマウントされているか確認。
df-h ファイルシス サイズ 使用 残り 使用% マウント位置 rootfs 16G 5.2G 9.7G 36% / /dev/root 16G 5.2G 9.7G 36% / devtmpfs 215M 0 215M 0% /dev tmpfs 44M 6.4M 38M 15% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 497M 0 497M 0% /run/shm /dev/mmcblk0p5 60M 9.4M 50M 16% /boot
とりあえずここまで。
続きは今度
*1:HDDなどにインストールされた状態だとプリインストールされていない(ソフトウェアセンターで落とせる)