LINUX,grub2起動ディスク(失敗),USBgrubメモリ

何気にubuntu10.04LTSを使っていたのだが、11.04を新規にinstallしたところ、grubはgrub2 になって高機能化しているという情報が目に入ってきた。すでに9.10あたりからdefoultは grub2になっていたらしい。そこで、この際起動ディスクをgrub2にしようと(このPCは起動 ディスク(FD.CD.memory-card)によってのみlinuxが立ち上がるようにしていた)super_grub_disk_ hybrid-1.98s1.isoというgrub4dosのgrub2版を見つけて、FDにRAWwriteし、CDにはiso焼きで 起動ディスクを作成し順調に起動することを確認して、windowsの回復コンソールからfixmbr を実行した。
memory-cardをいろいろ弄ってみたが、問題は、super_grub_disk_hybrid-1.98s1.isoでは
 ア)ldlinux.sys,memdisk,syslinux.cfg,hoge.imgによるimg-bootができない、
 イ)Unetbootinを使ってmemory-cardにinstallしたものはメニューから先に進まない。
  (memory-cardの中にはsyslinuxのkernelの実行ファイルがない!) 
 ウ)ubuntuフォーラムの記事にしたがい直接grub2をinstallしたが、no-errorと出るのに
  devicemapが表示されず、memory-cardを刺して起動させるとwindowsが立ち上がる。
super_grub_disk_hybrid-1.98s1.isoはレスキューディスクということにして、memory-cardで起動 させるのはgrub2ではなく今までとおりgrub(-legacy)を使うことにした。ところが、現行システム はgrub2なので、menu.lstを持っていない。memory-card内にmenu.lstを置いてみたが、認識しない。 grub2のgrub.cfgを認識させる方法をググってみたが、見つけられなかった。色々考えてみたが、 grub2のgrubファイルの中にmenu.lstを置けばよいと気がついた。
grubのバージョンアップ時は、手動で更新が必要になるが、大した手間ではない。結果として、メ モリースティック8MBにgrldr、メモリースティック16MBにgrubを入れ、FDで起動するよりずっと早く 立ち上がるようになった。
このmemory-cardを入れなければ、windowsが立ち上がるので、家人がパソコン を使うときには、linuxは存在しないのと同様である。
以下に手順を示す(\hoge1にsyslinux-3.54のフォルダがあり、リムーバブルディスク-Lにinstallする場合)
(grub4dos-0.4.4のgrub.exeを使うのが、以前に書いた方法よりずっと簡単でお勧めです)
1. GParted等でmemory-cardの領域削除、(デバイスパーティションテーブルの作成、8〜16MBでは不可?)
2. FATでフォーマット(必要ならパーティション作成)ブート可能としておく。
3. windowsでsyslinux-3.54インストール
  3.1 winのコマンドプロンプトから cd /d D:\hoge1\syslinux-3.54\win32 Enter
  3.2 syslinux L: Enter
4. grub4dos-0.4.4のgrub.exeまたはgrldrをLにコピペ(grldrはimg-bootになるのでsyslinux-3.54にある memdiskフォルダのmemdiskファイルとgrub4dos-0.4.3or0.4.2のmenu.lstもコピペ)
  4.1 grubの場合は、ldlinux.sys,syslinux.cfg,grub.exeの3つのファイルとなり、
  4.2 grldrの場合は、ldlinux.sys,syslinux.cfg,memdisk,grldr,menu.lstの5つのファイルとなる。
5. syslinux.cfgの作成
  以下の文を書いたtxtをsyslinux.cfgの名前で保存する。
  5.1 grubの場合
   default grub.exe
  5.2 grldrの場合
   label linux
   kernel memdisk
   append initrd=grldr
6. grldrはmemory-cardをhd0と認識するようで、最初のmenuでlinuxを選択して表示されたgrubのmenu.lst からbootさせるlinuxkernelを選択し、eと入力してroot (hd0,○)と表示されたらさらにeと入力し root (hd1,○) と変更してhd番号を1大きくしてからbと入力しなければならないので、あまりメリットはない。以前はこのhd番号を 変更せずともlinuxのmenu.lstを探してくれて、まともに立ち上がったので、installしてみたが、今回はまあ 起動するのを確かめた程度になってしまった。