立ち上がらない端末との戦い - FD/CD レスの端末にネットワーク接続なしで OS をインストールする

 
 これは一週間に渡ってあいた時間を使ってのリカバリを行い,いくつかの方法でブートに成功した Libretto100 *1の記録である。なんてね。
 

発端

 
 発端は,自宅サーバのログを垂れ流しにしていたリモートコンソール代わりの端末として Vine Linux 3.1 (外部からのアクセス遮断,サーバへの SSH のみ利用)だったんだけど,留守中に瞬停を食らったらしく沈黙していた。リブートしてもカーネルを読み込めない。仕方が無いので,アップデートを兼ねて様々な OS をインストールするために手を尽くした。
 

Windows

 
 もともとこの端末には CD / FD 共に搭載されていない。そこで,過去に Vine 3.1 をインストールしたときに使った PCMCIA バスカード経由で Vine の pcmcia.img から抽出したインストーラが認識できる CD-ROM ドライブを押入れから引っ張り出した。*2
 が,インストールイメージが何も無い。ということで,いろんな OS のインストールイメージを引っ張ってきて試した。焼きミスが多発したので,途中から VMWare Server 環境に切り替えた。
 

Windows2000

 
 失敗。インストーラがブートしない。VMWare 環境ではブートするが,インストール後実機に移すとブートしない。理由は後述。
 

Windows98

 
 同上。
 

Linux への軌道修正

 
 そもそも Linux で使ってたんだから Linux でいいじゃん,とばかりに。
 2.5inch の外付けディスクが先月だったか先々月だったかに異音を発して完全に沈黙したものがあったので端子部だけ転用して活用。HDD を USB 接続して VMWare の physicaldisk として認識させると,SCSI ドライブとして見える。もちろん CD だって Image をマウントすればブートしてくれる。ここからインストールを試す。以下,概略。
 
 Vine Linux 4.2/5.1 インストールには成功するが実機に移すとブートシーケンス途中でルーとファイルシステムが見つからないといってこける。理由は SCSI なディスクにインストールしたのに,IDE なディスクとしてブートしようとしたから。
 Ubuntu 9.4〜10.10 同上。
 Debian 最新版 同上。
 Fedora 最新版 同上。
 lnoppix 3.x系はブートするもインストール後は同様の理由で死亡。CD 形式でインストールすると立ち上がったが,X でフォントが巨大になりすぎてほぼ何の操作もできず。
 
 入ったように見えたバージョンもあるけど,それは結局ブートシーケンスが途中でコケて busybox 立ち上がっていたりするような緊急避難的状態であって使用には耐えないものだった。
 

困難

 
 CD/FD レスの端末(ネットブック含む)への OS インストールは困難だ。特にブートしない状態の端末に OS をセットアップするのは非常に困難となる,
 VMWare Server から見ると USB 接続した physicaldisk は SCSI ハードディスクに見える。しかし,実機に戻すと IDE となる。そのため,ドライバの不整合が起こり,マウントポイントやカーネルオプションを sda から hda に書き換えてもブートできないことが多い。
 また,VMWare を使わない場合,OS を外付けドライブにインストールする,ということになる。USB-Linux のノウハウが使えるかもしれないが,それは求めているものとは違った。私はハードディスクにインストールしたいのだ。それにそもそも Libretto100 は USB Boot に対応していない。USB ポートすらない。
 OS が生きていれば,「UNetbootin」や「Wubi」といったツールが使えたかもしれない。が,Libretto100 にはネットワークポートもない。何も無いのだ。
 

GRUB

 
 諦めてかつてそうやったように,Dos 領域に Loadlin.exe から Vineインストーラを叩いて,Vine 3.1 をインストールしようかと思ったそのとき,grub4dos を見つけた。
 GUI フロントエンドもあるので便利がいい。
 まず,Libretto から外したハードディスクを USB でマウントして,EASEUS Partition Master 6.5.2 Home Edition というものでパーティションを分割する。Libretto100 はディスクの末尾 100MB 程度をハイバネーション領域に使うらしいのでそこを回避して,手前に 700MB 程度の FAT 領域を作る。フォーマットしたら,Linux インストーライメージをそこに断片化しないようにコピーする。ファイルネームは「install.iso」とする。次に grub4win で外付けのハードディスクの MBR grub をインストールし,前のほうのパーティションに menu.lst ファイルを配置する。menu.lst には次の記載を書き加える。

title Linux Installer Boot CD ISO
find --set-root /install.iso
map /install.iso (0xff) || map --mem /install.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

 作業が済んだらハードディスクを実機に戻し,ブートさせる。grub のメニューから「Linux Installer Boot CD ISO」を選択すれば,インストーラが立ち上がる。
 
 これで,あらかじめインストールディスクとブートローダさえ準備できれば,FD/CD レスな端末でも OS をインストールできることがわかった。
 ディスクの故障や,古い端末の延命などに使えるかもしれないので,覚えておくといいかも。
 

*1:http://dynabook.com/pc/catalog/oldpc/libretto/lib100.htm 1998年3月発表のパームトップPC。当時,京阪電車の急行の中でこいつに Air-H" のカードを挿して通勤途中にツレと IRC していた思い出の端末

*2:このとき,もともと刺さっていた 4GB のディスクも発見。Windows98 のブートを確認。