まあ 奇麗な方法では有りませんが FreeDos と windows 2000 は 立ち上が りました 問題の win98 の起動です
かなり 繊細なようです (条件が 条件なので)
# fdisk /dev/hdb Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 1c Changed system type of partition 1 to 1c (Hidden Win95 FAT32 (LBA)) Command (m for help): a Partition number (1-4): 1 Command (m for help): a Partition number (1-4): 2 Command (m for help): w
関係の無い部分は Hidden (影響を及ぼしそうな部分 という方が 本当です が) そうして該当の部分を アクティブに
# fdisk -l
Disk /dev/hda: 255 heads, 63 sectors, 20023 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 391 3140676 16 Hidden FAT16
/dev/hda2 392 653 2104515 83 Linux
/dev/hda3 654 18277 141564780 5 Extended
/dev/hda4 18278 20023 14024745 83 Linux
/dev/hda5 654 2350 13631121 83 Linux
/dev/hda6 2351 2611 2096451 82 Linux swap
/dev/hda7 2612 5222 20972826 83 Linux
/dev/hda8 5223 7833 20972826 83 Linux
/dev/hda9 7834 10444 20972826 83 Linux
/dev/hda10 10445 13055 20972826 83 Linux
/dev/hda11 13056 15666 20972826 83 Linux
/dev/hda12 15667 18277 20972826 83 Linux
Disk /dev/hdb: 255 heads, 63 sectors, 1216 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 609 4891761 1c Hidden Win95 FAT32 (LBA)
/dev/hdb2 * 610 1216 4875727+ c Win95 FAT32 (LBA)
起動ディスク
# mount /dev/fd0 /mnt/ # cat /mnt/boot/grub/menu.lst # Boot automatically after 3 secs. timeout 3 # By default, boot the first entry. default 0 # Fallback to the second entry. fallback 1 # For booting windows 98 on /dev/hdb1 title Windows 98 /dev/hdb1 as C: drive rootnoverify (hd1,1) map (hd0,0) (hd1,1) map (hd1,1) (hd0,0) chainloader +1 ...
容量は
win98 4982980608 ;;; 4,982,980,608 約 4.9 ほぼ 5G
ある意味 一貫性が有ります。win2k で 表示されたのと同じもの。
さて 黒衣に徹している感じの linux ですが これも 御多分に 漏れず 起動 するには 一工夫が必要なようです
まず インストールした 起動ディスクは 御多分に もれないように ファイル ”hda7.cfg”、”hdb7.cfg” というのは ハードディスク を マスター、スレー ブ に 変更した時の 残骸です。本来は 関係が無いし 存在する 必要はありませ ん。”grub.cfg”に 相当するものです。 この領域も DOS ですので ファイルの 名前は 妙なものに なっています。
# mount /dev/fd0 /mnt/ # ls /mnt/ grub.cfg* hda7.cfg* hdb7.cfg* stage1* stage2* vmlinuz* # cat /mnt/grub.cfg # GRUB configuration file # generated by 'grubconfig' # # Start GRUB global section default 0 timeout 7 fallback 1 title Plamo Linux kernel (fd0)/vmlinuz root=/dev/hda7 ro # df |grep fd /dev/fd0 1423 1283 141 91% /mnt # ls -l /mnt/ total 1283 -rwxr-xr-x 1 root root 173 Dec 30 21:07 grub.cfg* -rwxr-xr-x 1 root root 174 Dec 29 22:34 hda7.cfg* -rwxr-xr-x 1 root root 174 Dec 30 21:06 hdb7.cfg* -rwxr-xr-x 1 root root 512 Dec 24 12:01 stage1* -rwxr-xr-x 1 root root 111584 Dec 24 12:01 stage2* -rwxr-xr-x 1 root root 1199114 Dec 25 01:12 vmlinuz* # umount /mnt/
”hda7.cfg”、”hdb7.cfg”は 色々 試行錯誤の 残りです つまり インストー ルした時の vmlinuz で 動作をしているということです 従って 本当の という か 変更した カーネルで起動するということでは無いのです。
カーネルを 再構築した場合 上記の vmlinuz を 新しい ものに 置き換えて 起動しても 良いのですが 外にも 方法が有るようです。
# mount /dev/fd0 /mnt/ # cat /mnt/boot/grub/menu.lst # Boot automatically after 3 secs. timeout 3 ... # For booting plamo 4.03 /Linux on /dev/hda7 title plamo 4.03 Nyan Nyan /dev/hda7 root (hd0,6) kernel /vmlinuz root=/dev/hda7 # umount /mnt/
通常は これにて 起動出来る筈 なのですが?
... root(hd0,6) Error 18: Selected cylinder exceeeds maximum supported by BIOS Press any key to continue...
個猫は しらなかったのですが linux を インストール した時に 特に 文句 はいわれなかったので 当然 起動するものと 考えていたのです!
そこで
# For booting plamo 4.03 /Linux # plamo on /dev/hda7 title TRY plamo 4.03 Nyan Nyan for /dev/hda7 kernel (hd0,0)/hda7_ker root=/dev/hda7 ro
つまり 上記の フロッピディスクの vmlinuz の 変わりに カーネル 再構築 した後の bzImage を vmlinuz-2.4.31 をとして ”/”に 設置してあるものを /dev/hda1 に コピー して 領域が FAT16 なので ”hda7_ker ”として 置いて あるものを 指定して 起動する ということにします。
# mount -t msdos /dev/hda1 /mnt/ # ls -l /mnt/hda7_ker -rwxr-xr-x 1 root root 958442 Dec 31 17:59 /mnt/hda7_ker* # ls -l /vmlinuz-2.4.31 -rw-r--r-- 1 root root 958442 Dec 31 17:56 /vmlinuz-2.4.31 # cmp /vmlinuz-2.4.31 /mnt/hda7_ker
これで linux は 起動します、ちなみに 手動で動かす場合
...
root(hd0,6)
Error 18: Selected cylinder exceeeds maximum supported by BIOS
Press any key to continue...
grub> kernel (hd0,0)/hda7_ker
[ Linux-bzImage , setup=0x1400, size=0xe89ea]
grub> boot
...
”root=/dev/hda7 ro”は 必要は無 いようです カーネルは 自分の 場所を 認識しているようです!また /dev/hda1 は ”Hidden FAT16”で あっても 問題は 無いようです。つまり これまでの 少々 というより 大変 不細工な 方法ですが FreeDos 及び win2k 、win98、 linux を 起動する事が 出来るようになります。 フロッピディスク 3枚 と どれを 起動させるか による 其々の場合に linux を 立ち上げて ディスクの 構成を 書き直さなければ ならないし また 関係は 無いが linux を インストールした 時の 起動ディスク 1枚 合わせて 4枚 これは 混乱の 元です。
が しかしながら 最低限 運用は 出来る状況に なりました。
BIOS で の 認識状況
Type [Auto] Cylinder [16383] Head [16] Sector [63] Size [8063]MB
”/dev/hda”、 ”/dev/hdb”ともに 8G ということのようです、
Main Bord ID V65LA ... System BIOS Version V3.1 ...
なんらかの 対応が出来ると 良いのですが まあ linux で 運用する場合 /dev/hda1 に カーネルを コピー して 起動する限りに 置いては 支障無く 運 用できるようです 当然 速度 ということに 関しては 無視です。
にゃんたろう 拝!
2009年 1月 3日 (土) 09:14:26 JST 作成