[Q]
LinuxMLD3 で loop ファイルから ext2 パーティッションへ全て移動したいのですが

[A]
次のような手順で移動することができます。
  1. loop デバイスを使って LinuxMLD3 を起動します。

  2. fdisk あるいは cfdisk を使って ext2 パーティッションを作成します。
    ここでは、/dev/hda2 に作ったとします。

  3. 作成した ext2 パーティッションに ext2 ファイルシステムを作成します。
    例えば、
    $ mkfs -t ext2 /dev/hda2
    とすれば良いです。

  4. 念のため、fsck で新しく作成したファイルシステムのチェックをします。
    今回の例だと、
    $ fsck -t ext2 /dev/hda2
    となります。

  5. 新しく作ったパーティッションをマウントします。
    マウントする場所はどこでも構わないのですが、 新しく /mnt/newfs というディレクトリーを
    $ mkdir /mnt/newfs
    として作り、ここに
    $ mount -t ext2 /dev/hda2 /mnt/newfs
    としてマウントします。

  6. 必要となるディレクトリーを cp -a でコピーします。
    具体的には
    $ cp -a /{mnt,dev,sbin,lib,bin,tmp,usr,boot,var,root,home,etc,mldinst} /mnt/newfs
    とすれば良いでしょう。

  7. /proc を手で作ります。
    今回の例だと
    $ cd /mnt/newfs
    $ mkdir proc
    $ chmod 555 proc
    という具合になります。

  8. カーネルイメージをコピーします。
    $ cp -a /bootfs/loop/vmlinuz /mnt/newfs/boot

  9. コピーした先の /etc/fstab, /etc/rc.d/rc.sysinit を正しく書き直します。
    今回の場合ですと、/mnt/newfs/etc/fstab の /dev/loop0 を /dev/hda2 に書き換え、
    /mnt/newfs/etc/rc.d/rc.sysinit の
    mount -n -o remount,ro /
    の部分を削除します。

  10. lilo を使って起動する場合には lilo.conf を書き換えて lilo を書き込みます。
    もし、lilo を使わず loadlin で起動する場合にはここは飛ばして次に進んでください。

    lilo をフロッピーディスクに書き込むことにし、 このフロッピーからは LinuxMLD3 だけが起動できるようにすれば良いとすると、 今回の例だと /mnt/newfs/etc/lilo.conf を以下のように変更すれば良いです。
    boot=/dev/fd0
    map=/boot/map
    install=/boot/boot.b
    prompt
    timeout=50
    image=/boot/vmlinuz
            label=linux
            root=/dev/hda2
    
    書き換えた後、
    $ cd /mnt/newfs/
    $ chroot . sbin/lilo
    として、フロッピーディスクに lilo を書き込みます。

  11. reboot します。
    lilo を書き込んだフロッピーディスクを作成した場合には、 フロッピーから ext2 に移動したパーティッションを呼び出して起動するので、 再起動がうまくいけば無事終了です。
    loadlin を使ってブートする場合には、 Windows を起動して以下の操作を引続き行います。

  12. loadlin で起動する場合には、c:\mld3load\kernel.par を書き換えます。
    SCSI デバイスなどに特別な値を与える必要がなければ、今回の例だと、
    c:\mld3load\vmlinuz
    root=/dev/hda2
    read-only
    
    ぐらいで起動できます。
    起動時に渡したい値がある場合には適当に加えてください。

  13. 無事起動できれば終了です。うまくいきましたか?


戻る