LINUX,USB起動ディスク

PCカスタマイズ
DESK-TOPのLesanceDTのHDDは250GBでどんなにデータを溜め込んでも、動画を扱わない私には大きすぎるし、 「HDDは機械部品であり連続使用していると軸受部分が5〜6年で必ず壊れる」から、システム、データの BuckUp用にUSBの250GB、PCシステムに80GBのHDD、の構成に変更しようと3.5inchHDDケースと80GBのHDDを 買ってきた。
HDDケースはFAN付のATA,SATAどちらでも使えるタイプ。HDDとあわせて10K\程度だった。 このPCを買ってすぐに、Acronis Partition ExpartでC:20GB D:残りと構成を変更しておいた。XP Home Version だったので、OEM版のOS CDが付いていたが、Vista版はHDDリカバリータイプなので、Partitionを変えると リカバーできなくなるので、要注意。
HDDはSATAU同士なので物理的に交換すればよいので、まず、ディスクの管理から、新HDDをケースに入れ、 フォーマット、PartitionをC:20GB D:残り(55GB)にした。次に、システムの移動のため、手元にあった Acronis True Image LEを試してみた。Windows BaseではUSBHDDにBackUPが可能なので、USBケースの新HDDの D:にBackUP、PCとUSBケースのHDDを入れ替え、True Image LEの起動ディスクで起動、D:からC:に復元と進む 予定が、True Image LEが起動しない。
色々調べたところTrue Image LEのLinux KernelがPCのチップセットICH9に対応できないようだ。同様にICH9 登場前のLinux Kernelを使用した、Nero7のBuckUp(起動ディスク),Ubutu6.10,knoppix4.02など、全て起動し ない。仕方なくWindowsを再インストールしたが、チップセットドライバから各ソフトのインストールなど、 思わぬ手間がかかってしまった。そして、当然ながらプリインストールされていたNortonが無くなってしまっ た。今は以前から使用しているNOD32を使用している。
システムは再構成され、快適に動いていて、DataのBuckUpは、USBHDDにコピーでもできるが、システムのBuckUp はやはり専用ソフトがいるので、Acronis True Image Parsonal 2を買ってきた。このソフトの起動ディスクも Linuxだが、ちゃんと起動する。但し廉価版なので、完全版で起動するとUSBHDDが認識しない。セーフ版ではUSB、 SCSII等のドライバが無いような表示であるが、BIOSでUSBが認識されているので、USBHDDもちゃんと認識する。 これで、システム、データとも完全なバックアップができるようになった。
Linux(Ubuntu7.10)インストール
DownLoad したisoイメージをそのままCDに焼きLiveCDで立ち上げてからインストール。途中パーティション変更 のところで、ひょっとしてシステムが、壊れるか?と思ったが、BuckUpも取ってあるので、そのままGO。システム が壊れることなく一番後ろの5GBにインストールできた。しかし、このままではMBRが書き換えられて、電源ONで Ubuntuが起動するのも都合が悪いので、取り敢えずgrubのmenu.lstを書き換えwindowsを最初の起動にした。
このPCにはFDDが無い(最近の標準?)ので 06.10:ubuntu6.06-installのように起動ディスクから起動できない。 そこでhttp://shattered04.myftp.org/pc_57.html のページのように仮想FDDとFDtoCDiso作成のソフトをダウンロードしてgrubの起動CDを作った。(このHPが開かない 場合はvfdwin,fdtoisoで検索して下さい)しかしこのgrubはmenu.lstを持っていないので
grub>         と表示されたら
grub> root (hd0,2)[Enter]
grub> kernel /boot/vmlinuz root=/dev/sda3 ro[Enter]
grub> boot[Enter]
でコマンドを要求されたら
exit[Enter]
でやっとubuntuが起動する。
これでは大変なので、ubuntuのgrubの中のmenu.lstをwindowsとの共通ファイルにコピーし、仮想FDのgrubの中に コピーしたものをCDイメージとして焼き、起動CDとした。この時点でwindows XPのCDから回復コンソールを起動して、 fixmbrとコマンドを打ってMBRを元に戻した。

USBメモリ起動ディスク
作成したCDから起動すれば、ubuntuのgrubと同様に起動できるが、DeskTopPCは電源が入ってないとCDメディアが 入れられない。細い針を使って空けることも出来るが、毎回は煩わしいし、再起動も能が無い。 このPCはBIOSでメモリカードを認識しているので、そこから起動できないかを、あっちこっちのHPをググったりして 見つけた http://orz.kakiko.com/kaeru/usbboot.html http://www10.plala.or.jp/palm84/grub4dos.html を参考にずっと昔の携帯のメモリスティック(8MB)に起動ディスクとしてgrubloaderを入れることにした。他のHPの多くが、 KnoppixやubuntuなどCD1枚分ほどのシステムを入れる方法などを紹介されているが、最近売られている大容量のメモリカードなら それも良いが、会社の机の中に眠っていた昔のメモリの活用法としては、この程度が良いと思う。
grubではなくgrub loaderをインストールするのは直接windowsを起動できるのと、HDDの中のgrubを探し出して起動して くれるからだ。windowsのroot(C:)にインストールする方法もあるが、それではMBRを書き換える方法と大差ない。 このインストールは全てwindows上から行うので、syslinuxは http://www.kernel.org/pub/linux/utils/boot/syslinux/ から、grub for dosは、 http://grub4dos.freespaces.com/ からそれぞれzip版をダウンロードして、適当な場所で展開しておく(以下D:\xyzにsyslinux-3.54が展開されているものとする)。
次に、メモリカードをセットして、マイコンピューターからFATでフォーマットし、ドライブレターを確認しておく。 (私の場合はJ)次に、コマンドプロンプトから
 cd /d D:\xyz\syslinux-3.54\win32[Enter]
 syslinux J:[Enter]
でメモリカード(J)にsyslinuxがインストールされる。次にエクスプローラー等からsyslinux-3.54の中のmemdiskフォルダの 中のmemdiskファイルをコピーして、メモリカード(J)に貼り付ける。さらにメモ帳またはwordpadを開いて
label grub
kernel memdisk
append initrd=grub4dos.img
と書き込み、syslinux.cfgの名前、拡張子でメモリカード(J)に保存する。
同じくメモリカード(J)にgrub4dosのファイル(内容は何でもよい1.4MB以内)を作り拡張子を.imgに変更しておく
ここで先に使った仮想FDDを起動し、イメージはメモリカード(J)のgrub4dos.imgを選択する。そしてマイコンピューターから 仮想FDのフォーマットを選択し、起動ディスクで実行する。先にダウンロードして展開したgrub4dosのフォルダーから grldr,default,menu.lstをコピーし、仮想FDに貼り付ける。
(注:内容が同じだからといって、grub4dosのフォルダー内にあるFD.imgファイルを直接、貼り付けてもmemdiskは.imgを 見つけて呉れない。メモリカード内に新たに.imgファイルを作ることが必要、私はこの事が分かるのに約1ヶ月掛かった。)
これで完了。再起動すれば、
could not find kernel image:linux
boot:
と表示されるので、
grub[Enter]
と入力すればGrub Loaderのメニューが表示される。そこからWindows,Linuxなど起動できるが、 インストールされていないメニューを選択した場合は、どうなるか検証していない。
これで、電源ONの前に、このメモリカードを挿すとLinuxの起動が可能になる。
実のところ、ここにたどり着くまで2ヶ月以上を要し、その間にFDDを増設してしまったので、今私の手元には FDのgrub,grldr,CDのgrldrそしてメモリスティックのgrldrの起動ディスクがある。もちろん一番使い勝手の良いのは このメモリスティックだ。
《20110731追記》
label grub
kernel memdisk
append initrd=grub4dos.img

label linux
と変更し書き込み、syslinux.cfgの名前、拡張子でメモリカード(J)に保存する。
さらにgrub4dos-0.4.4の中にあるgrub.exeをメモリカード(J)に貼り付ける。
以上でメモリカードの中は
grub.exe
ldlinux.sys
syslinux.cfg
となり、起動時にこのメモリスティックがセットされていれば、 起動時にはGrubが起動される。