[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41967] Re: lilo.conf の内容の変更が反映されない



[debian-users:41966] lilo.conf の内容の変更が反映されない

の件です. 解決はしたものの, 原因は未だ不明です. 

前回メールの末尾にも fdisk の print の結果を引用しましたが, 
現在ハードディスクを 2 台使っております.

> (fdisk の print 結果)
> Disk /dev/hda: 163.9 GB, 163928604672 bytes
> 255 heads, 63 sectors/track, 19929 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> 
>    Device Boot      Start         End      Blocks   Id  System
> /dev/hda1   *           1         124      995998+  83  Linux
> /dev/hda2             125         186      498015   82  Linux swap / Solaris
> /dev/hda3             187        1555    10996492+   5  Extended
> /dev/hda4            1556       16709   121724505   83  Linux
> /dev/hda5             187         310      995998+  83  Linux
> /dev/hda6             311        1555    10000431   83  Linux
> 
> Disk /dev/hdb: 20.4 GB, 20416757760 bytes
> 255 heads, 63 sectors/track, 2482 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> 
>    Device Boot      Start         End      Blocks   Id  System
> /dev/hdb1               1          16      128488+  83  Linux
> /dev/hdb2              17          47      249007+  82  Linux swap / Solaris
> /dev/hdb3              48         702     5261287+   5  Extended
> /dev/hdb4             703        2482    14297850   83  Linux
> /dev/hdb5              48          94      377496   83  Linux
> /dev/hdb6              95         702     4883728+  83  Linux

この結果を信じると, /dev/hdb は古い 20.4GB のディスク(disk B とします) 
で, /dev/hda は新しい 163.9 GB のディスク(disk A とします)となっている
ことになります. 

disk B は, 以前 debian を入れて使っていたもので, 最近になって, 新しく
購入した disk A に新たに debian を入れ, disk A の debian から, disk B 
をマウントしてアクセスできるようにしています.

disk B は, IDE のフラットケーブルの中程に接続され, disk A は同じケーブ
ルの先端に接続されています. 2 台のハードディスクのジャンパーは, 両方と
もに "Cable Select" という状態になっていました. この状態で, 一旦 
shutdown し, disk B に該当するハードディスクを外しました. そして再起動
すると, disk A の MBR に書き込んだはずの, 新しい lilo.conf の内容が反
映された, lilo が起動しました.

そこで再び dsik B を前回と同じ場所に接続し直し, 再起動すると,
lilo.conf の内容が反映されたままの状態で lilo が起動しているのです. こ
の結果は, disk B を外す前の同じ状態における, 新しい lilo.conf の内容が
反映されずに起動していたものとは異なります. この状態で 2 回ブートしま
したが, 2回とも同様の結果でした.

この時点では, 当初なぜ新しい lilo.conf の内容が反映されなかったか, 原
因ははっきりしていませんが, 以下のように想像しています.

(想像)
# マシンを立ち上げると, BIOS は, disk B の MBR を最初に見に行く. disk
# B の MBR にインストールされた lilo は, 設定に従って disk B の
# /dev/hdb1 にある vmlinuz-2.6.8 から起動する. 一旦 kernel が起動する
# と, kernel は, disk A を /dev/hda に, disk B を /dev/hdb として認識
# し, fstab の記述に従って, /dev/hda1 を /root にマウントする.
#
# したがって, いくら lilo を, kernel が /dev/hda として認識する disk A 
# の MBR に新たにインストールしても, BIOS は disk B の MBR を最初に見
# に行っており, 実は disk A を購入する前に disk B で使っていた vmlinuz 
# が起動していた.

仮に上の想像が正しかったとして, 何故 disk B を一旦外してまたつないだら, 
挙動がかわって, 期待通りに /dev/hda として認識される disk A の MBR を
BIOS が読みに行くようになったのかの理由はよくわかりません.

そもそも, kernel は, いかにして /dev/hda や /dev/hdb を振り分けるので
しょうか?

いずれにしろ, このような混乱を避けるため, それが有効であるかどうかはと
もかくとして, ハードディスクのジャンパーの設定を, 両方とも "cable
select" になっていた状態から変更し, disk A を "master" に, disk B を 
"slave" にしました.

以上です. お騒がせ致しました.