15: Intel Edison上のOSが起動しなくなった / rootパスワードを忘れた時には

よく訓練されたアップル信者、都元です。昨日のエントリーはこちらです。Edisonをいじり倒していると、たまにOSごとぶっ壊してしまうこともありますよね。例えばrm -fr /辺りが代表的なところですが。

通常、Edisonのイメージリカバリは、J16とPCを接続した際にPC側で認識される「外部ディスク(※1)」にイメージをコピーしておいた上で、Edison内からreboot otaコマンドを入力することによって行います。

しかし、前述のようにOS自体が起動しなくなったり、rootパスワードを忘れてログインできなくなってしまった場合は、reboot otaコマンドを実行する手段がありません。

外部PCからのイメージの焼きこみ

という場合に行うのが、外部PCからのイメージ焼きこみです。Mac前提ですが、操作をご紹介します。

まず、homebrewを使って、下記3パッケージをインストールしておいてください。

$ brew install dfu-util coreutils gnu-getopt

次に、Edison - Software Downloadsから、焼き込み対象のイメージのURLを手に入れます。ここでは執筆時点での最新版、edison-image-rel1-maint-rel1-ww42-14.zipを使います。

続いて、J16をMacと接続した上で、wget等でイメージを取得、unzipで展開し、./flashall.shを実行します。

$ wget http://downloadmirror.intel.com/24389/eng/edison-image-rel1-maint-rel1-ww42-14.zip
$ mkdir edison-image-rel1-maint-rel1-ww42-14
$ cd edison-image-rel1-maint-rel1-ww42-14
$ unzip ../edison-image-rel1-maint-rel1-ww42-14.zip
$ ./flashall.sh
Using U-Boot target: edison-blank
Now waiting for dfu device 8087:0a99
Please plug and reboot the board

すると上記の状態で一旦作業が止まります。この状態で、ボード上のRESETボタン(SW1UI5)を押下します。すると続きが始まります。

dfu-util: Device has DFU interface, but has no DFU functional descriptor
Flashing IFWI
dfu-util: Device has DFU interface, but has no DFU functional descriptor
Transfer size must be specified
Download	[=========================] 100%      4194304 bytes
Flashing U-Boot
Download	[=========================] 100%       245760 bytes
Flashing U-Boot Environment
Download	[=========================] 100%        65536 bytes
Flashing U-Boot Environment Backup
Download	[=========================] 100%        65536 bytes
Flashing boot partition (kernel)
Download	[=========================] 100%      5799936 bytes
Flashing rootfs, (it can take up to 5 minutes... Please be patient)
Download	[=========================] 100%    536870912 bytes
Rebooting
U-boot & Kernel System Flash Success...
Your board needs to reboot twice to complete the flashing procedure, please do not unplug it for 2 minutes.

焼き込みには5分以上掛かるので、ゆっくり待つことにしましょう。

ちなみに、reboot ota方式の場合は、※1のディスク上のイメージはそのまま残るため、「初期化したいときはreboot otaすればいい」という気軽なリセットが可能でした。しかし、今回ご紹介した方法でリセットを行うと、※1上の内容もまっさらになりますので、再びここにイメージをコピーしなおしておくと便利ですね。

明日のエントリーはこちらです。