ドライブレター不整合/FAT論理ドライブ追加

ドライブレターがおかしいことから調べていくと、どうも「拡張パーティションにFAT論理ドライブが無い」ことが原因のようだ。しかし、現在拡張パーティションの中は、Linux nativeとLinux swapに全て使われてしまって、FAT領域を作る余裕が無い。ここは一つ、Linux swapのサイズを変更して、FAT領域を作ることを試してみる。


情報収集

さあやってみようと言っても方法が分からない。fdiskはDOS/Windowsと同じようなものだが、DOS/Windowsでいうところのformatが分からない。仕方がないのでまた本屋でパラパラ見て、ハードディスクの増設時について、ファイルシステムの作成が目に付いた「Run Run Linux」を買う。全く本代もバカにならない。税別2,900円とは!

さらに、念のためWebでも検索をしてみると、普通のLinuxのパーティション(ext2)はmkfsでいいが、swapはmkswapと書いてある。おお、危ない危ない。

まずは「BootDisk」と「RootDisk」の作成

以上でBootDiskとRootDiskは完成

BootDiskでブート

BootDiskを挿入し電源ON、途中でRootDiskに差し替えると、mini rootが起動する。

cfdiskでパーティション変更

cfdsik /dev/hdbと入力し、cfdisk 0.8iを起動し、以下のパーティションで[Delete]を選ぶ。

Name Flags Part Type FS Type Size(MB)
/dev/hdb6   Logical Linux Swap 238.22

次のように変わる。

Name Flags Part Type FS Type Size(MB)
    Pri/Log Free Space 238.22

パーティションを切り直す。

また次のように変わる。よしよし、パーティションの名前は変わっていない。これが変わると後で面倒。

Name Flags Part Type FS Type Size(MB)
/dev/hdb6   Logical Linux Swap 64.97

次に、Free Spaceにハイライトを移し、DOSパーティションを作る。

次のように変わる。

Name Flags Part Type FS Type Size(MB)
/dev/hdb7   Logical DOS FAT16(big) 173.25

変更内容を書き込み終了する。

一旦リブートする。shutdown -h now

INIT: Switching processes to runlevel: 0
INIT: Sending processes the TERM signal
Terminated
INIT: Sending processes the KILL siginal
INIT: no more processes left in this runlevel

スワップパーティションのフォーマット

パーティションを切った領域をフォーマットする。

マシンを再起動する。shutdown -r now

無事Linuxは起動した。(rootでloginすると「You have new mail.」との表示あり)

Windows95は無事起動

エクスプローラの起動スピードは普通になり、ドライブレターも正常になった

しかし、MS-DOSプロンプトからのfdiskは起動しない。新しく作った論理ドライブは、フォーマットはできるので、一応フォーマットをしておく。

Primary Masterに「Unusable」?

もう一度mini rootを起動し、cfdiskをやってみる。たまたま間違えて表示させてしまったのだが、hdaの中は次のようになっていた。

Name Flags Part Type FS Type Size(MB)
/dev/hda1 Boot  Primary DOS FAT16[NO NAME] 604.01
/dev/hda5   Logical DOS FAT16[PARTITION10] 1004.07
/dev/hda6   Logical DOS FAT16 [PARTITION11] 1294.30
/dev/hda3   Primary DOS FAT16 [        ] 596.17
/dev/hda4   Primary DOS FAT16 [        ] 596.17
      Unusable 7.85

「Unusable」って何だぁ。Windows95でfdiskができないのはこれが原因だろうか。

つまり、今回の不都合は2つの問題があったのだろうか。

1.ドライブレターがおかしかった → SlaveのHDDの拡張パーティションにDOSの論理ドライブが無かったため
2.fdiskができない → MasterのHDDに「Unusable」の領域があるから

ちなみにUnusablleをハイライトにすると、[bootable][Delete][Maxmize][Type]は選択候補から外れる。

他のマシンでは

自作3号(ABIT)では

Name Flags Part Type FS Type Size(MB)
/dev/hda1 Boot  Primary DOS FAT16 [NO NAME] 2047.35
/dev/hda5   Logical DOS FAT16 [NO NAME] 2000.29
/dev/hda6   Logical DOS FAT16 [NO NAME] 2000.29
/dev/hda7   Logical DOS FAT16 [NO NAME] 101.98
Name Flags Part Type FS Type Size(MB)
    Pri/Log Free Space 7.85
/dev/hdb1    Primary Win95 Extended (LBA) 8048.19

Gateway2000では

Name Flags Part Type FS Type Size(MB)
/dev/hda1 Boot  Primary DOS FAT16 [   ] 1547.44
     Pri/Log Free Space 1.97
Name Flags Part Type FS Type Size(MB)
/dev/hdb1    Primary DOS FAT16 [NO NAME] 773.72
/dev/hdb5   Logical DOS FAT16 [NO NAME] 773.72
    Pri/Log Free Space 1.97

1シリンダ分がUnusable

問題のディスクは、255Heads、63Sectors/Track、523Cylindersなので、1シリンダの容量は、

であり、Unusableの容量と合う。

cfdiskで、Size(MB)をCylindersに切り替えても、やはりUnusableのCylindersは1である。

GatewayのFree Spaceも、

であり、やはり1シリンダ分である。

しかし、何故一方はFree Spaceで、一方はUnusableなんだろう。Free Spaceが有ったり無かったりというのも...

Slaveを外せばWinowd95のfdiskが可能

試しにSlaveのHDDを外し、MasterのHDDをSingleに変更し、Windows95を起動する。この状態ならfdiskははちゃんと起動する。mini rootのcfdiskも当然OKで、表示内容も変わりなくUnusableが存在する。

LinuxパーティションのBoot Flagを止めても同じ

こうなるとWindows95でfdiskができないのは、Slave内にBoot可能なパーティションがあるからだろうか。もうヤケクソで、mini rootのcfdiskを使って、/dev/hdb5のFlagsのBootを止めてみる。

Name Flags Part Type FS Type Size(MB)
/dev/hdb5 Boot Logical Linux 984.35
/dev/hdb6   Logical Linux Swap 64.97
/dev/hdb7   Logical DOS FAT16 [NO NAME] 173.25

しかし、これは全然効果無し。


もう知らん。

最初に戻る