今更ながらRaspberry Piでマインクラフトをやってpythonでゴニョゴニョやってみたくなった。
SDカードで起動していると結構な頻度でSDカードが昇天するので、USBからの起動に切り替えてみる。
まずRaspbianの最新imgをダウンロード
https://www.raspberrypi.org/downloads/raspbian/
解凍用にthe Unarchiverも用意
http://wakaba.c3.cx/s/apps/unarchiver.html
ダウンロードしたzipファイルをthe Unarchiverで解凍
今回使用するのは32GBのUSBメモリ。ディスクの信頼性を考えるならSSDとかHDDのほうがいいんだけど手元にちょうどいいものがないのとPi2のUSB給電がショボいので。
まずは状況確認
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *320.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 319.1 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *31.3 GB disk1 1: EFI EFI 209.7 MB disk1s1 2: Microsoft Basic Data 31.0 GB disk1s2
/dev/disk1にUSBメモリは認識されている
以下のように書き込み。書き込み中は何も表示されず、かつそこそこ時間がかかる。
$ diskutil unmountDisk /dev/disk1 Unmount of all volumes on disk1 was successful $ sudo dd bs=1m if=/Users/hoge/2017-07-05-raspbian-jessie.img of=/dev/disk1 4445+1 records in 4445+1 records out 4661483821 bytes transferred in 2831.144647 secs (1646501 bytes/sec)
書き込みの結果
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *320.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 319.1 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.3 GB disk1 1: Windows_FAT_32 boot 43.7 MB disk1s1 2: Linux 4.6 GB disk1s2
ここで一旦Raspberry PiにminibianをインストールしたSDで起動しUSBメモリも差して
$ sudo blkid /dev/mmcblk0p1: SEC_TYPE="msdos" UUID="xxxx-xxxx" TYPE="vfat" /dev/mmcblk0p2: UUID="********-****-****-****-**************" TYPE="ext4" /dev/mmcblk0: PTTYPE="dos" /dev/sda1: LABEL="boot" UUID="xxxx-xxxx" TYPE="vfat" PARTUUID="xxxxxxxx-01" /dev/sda2: UUID="********-****-****-****-**************" TYPE="ext4" PARTUUID="xxxxxxxx-02"
/dev/sda2のPARTUUIDを調べ、
USBメモリ(boot)の中のcmdline.txtを編集
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
bootの中身をごっそりとSDカード(ブート用のSD)にコピー。
出来上がったSDとUSBをPiにセットして起動・・・できない。
一旦PARTUUIDで起動するのはやめにして
おとなしく/dev/sda2をrootに指定してかつ、init=を消す。ここは後で手動で行う。
splashも必須ではない。
設定
まずはGUIが開くのでlocaleやパスワードなどいじる。
ddでディスクイメージをコピーすると、パーティションがimgファイルと同じになってしまい、空き容量もちょっとしか残ってないいので、パーティションの拡張を行いたい。
fdiskでパーティションマップを書き換えたらいいと思うのだが・・・
どうもうまくいかない。
書き換えるとmagicなんたらが見つからないというエラーが出て、usbディスクを認識できなくなってしまうのだ。
USBメモリにddでコピー→boot領域をSDに移動→cmdline.txtのroot=を/dev/sda2に変更、initd=以下を削除でちゃんと起動できることは確定。
usbの/のパーティションをUSBメモリ容量いっぱいまで拡張するため
そのままfdisk→X パーティションが壊れる
minibianの入ったSDで起動し、GNU partedでパーティション拡張→一応拡張には成功し、起動はできるが、起動シークエンス中に[Failed]が幾つか起こり、emergency modeで起動、書き込み等が一切出来ずxwindowも開けず。←いまここ
試してみること
USBメモリ2つにddでインストールし、一つで起動し、gpartedを入れてもう一個のUSBメモリのパーティションを拡張。
追記
おとなしく8GBのSDカードを500円で買ってきた。class10UHS−1で40MB/sの読み出し速度らしいが、どうだろうか?
これまた日和ってnoobs LITEでネットインストールしたところ、不具合なく起動できることが確認された。
ある程度環境が整ったところでおもむろにUSBメモリをさし、ddで/パーティションをまるっとコピーした。
RaspbianのバージョンとしてはIMGファイルのそれと全く同一のはずなので、boot領域だけコピーしたSDとUSBメモリが刺さった状態で起動してみた。
結果、やっぱり途中でエラーが出てemergency modeに落ちてしまう。
もうちょっと何か工夫がいるようだ。てか8GBのSDで起動できるようになったんだから、そこまで頑張らなくてもという気もする。
追記の追記
/etc/fstabをちゃんと書いたらエラーなく起動することがわかった。