Linuxのみインストールされていた時のDISk構成

/dev/sda1 /
/dev/sda2 /mnt/sda2
/dev/sda3 /mnt/sda3
/dev/sda5 /mnt/sda5
/dev/sda7 /mnt/isofs

root パーティションである /dev/sda1 を /dev/sda2 にコピーし、 /dev/sda1を空け、そこに Windows をインストールする。



[/dev/sda1 を /dev/sda2へコピー]
# cd /
# find bin etc boot misc root usr dev lib sbin var -print | cpio /mnt/sda2


[ディレクトリの作成]
# cd /mnt/sda2
# mkdir proc
# chmod 555 proc
# mkdir tmp
# chmod 777 tmp
# mkdir home
# mkdir mnt
# cd mnt
# mkdir cdrom
# mkdir sda3
# mkdir sda5
# mkdir sda7


[/dev/sda2 のカーネルをブート可能にする]
ルートパーティションの変更(今回のケースではカーネルは /dev/sda1 をルートパーティションとしているが、 パーティション全体を移動させた為、 /dev/sda2をルートパーティションと認識するように変更する。)

・カーネルが認識しているルートパーティションの変更
# cd /mnt/sda2/boot
# rdev /mnt/sda2/boot/vmlinuz-2.0.36 /dev/sda2
# rdev /mnt/sda2/boot/vmlinuz-2.0.36 0

・マウント情報の修正(/etc/fstabの修正)
# cd /mnt/sda2/etc
# vi fstab

マウントポイントの修正。(ルートパーティション、 /dev/sda1 をマウントしないように変更)

・2段 lilo の設定
/dev/sda2 のルートパーティションへ lilo を書き込む。
# cd /mnt/sda2/etc
# vi lilo.conf
boot=/dev/sda2
 ・
 ・
root=/dev/sda2

# lilo -r /mnt/sda2

/dev/sda1 の /etc/lilo.conf から /dev/sda2 の lilo へ行くように変更する。
# cd /etc
# vi lilo.conf
以下を追加
other=/dev/sda2
  label=next
  loader=/boot/chain.b
 
# lilo

[reboot]



[/dev/sda2 のブートFDを作成]
電源投入後、最初のLILOで next を選択し /dev/sda2 の Linux を起動。

# mkbootdisk --verbose 2.2.10

ブートFDが出来たところで、ちゃんとブートFDからLinuxが起動するか確認。



[Windowsがインストールできるようにパーティションの解放]
ブートFDで起動し、 /dev/sda1 の Linux native パーティションを解放する。

[Windowsのインストール]
通常通り Windows をインストールする。



[Linux・Windows両方ともliloで起動できるようにする]

ブートFDで Linux を起動し、 Windows と Linux両方がブートできるように /etc/lilo.conf を編集。
/etc/lilo.conf へ以下を追加する。

other=/dev/sda1
  label=win
  loader=/boot/chain.b

# lilo

これでおしまい。