以前メインマシンで/dev/hdaにCFカードを、/dev/sdaにSATAディスクをつけてUbuntu 7.04を入れたけれど、なぜかインストーラーが中断してgrubが使えず、手動でliloを選択するしかありませんでした。
このままliloでも困らないけれどgrubが入らない理由がわからなかったので、検証用に元々Ubuntu 7.04なPCにCFカードとアダプターSD-IDE2CF-B1 を追加して、Ubuntu 7.04を再導入しました。
やはりメインマシンと同じように導入時には、grubの実行時にインストーラーがエラーを表示して手動でliloを選択しました。導入後に grub-install を実行すると /boot/grub/stage1 が正しく読めないというメッセージが表示されてしまいます。
調べていく中で、"fdisk /dev/hda" でみたところパーティションのIdがFATのままでした。 ファイルシステムはext3になっているし、インストーラーでもext3を選択したのだけれど、インストーラーで失敗したのはこれが関係していそうです。
デバイス Boot Start End Blocks Id System /dev/hda1 * 1 695 250176 6 FAT16とりあえずインスーラーの問題なのかどうか調べるのは後にして、手動でIdを"83"に変更して、grub-install を実行すると、エラーなく実行できました。
ここまでの結果を元にメインマシンをgrubに対応させてみました。
$ sudo /sbin/fdisk /dev/hda コマンド (m でヘルプ): p Disk /dev/hda: 256 MB, 256204800 bytes 15 heads, 48 sectors/track, 695 cylinders Units = シリンダ数 of 720 * 512 = 368640 bytes デバイス Boot Start End Blocks Id System /dev/hda1 * 1 695 250176 6 FAT16 コマンド (m でヘルプ): t Selected partition 1 16進数コード (L コマンドでコードリスト表示): 83 領域のシステムタイプを 1 から 83 (Linux) に変更しました コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 警告: 領域テーブルの再読込みがエラー 16 で失敗しました: Device or resource busy。 カーネルはまだ古いテーブルを使っています。 新しいテーブルは次回リブート時に使えるようになるでしょう。 警告: DOS 6.x 領域を作成、または変更してしまった場合は、 fdisk マニュアルの追加情報ページを参照してください。 $ cat device.map (hd0) /dev/hda (hd1) /dev/sda (hd2) /dev/sdb (hd3) /dev/sdc (hd4) /dev/sdd $ cat /boot/boot/grub/menu.lst default 0 timeout 10 title Ubuntu, kernel 2.6.20-16-generic root (hd0,0) kernel /vmlinuz-2.6.20-16-generic root=/dev/md0 ro quiet splash initrd /initrd.img-2.6.20-16-generic savedefault $ sudo grub-install --root-directory=/boot /dev/hda Installation finished. No error reported. This is the contents of the device map /boot/boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (hd0) /dev/hda (hd1) /dev/sda (hd2) /dev/sdb (hd3) /dev/sdc (hd4) /dev/sddhd1からhd4はRAID5で全部md0として動くけど、md0とかっていう表記はないんだよねぇ。 大丈夫かなぁ、と不安になったけれど、ここで再起動して無事にCFカード(hda)のMBRから起動しました。
0 件のコメント:
コメントを投稿