2005年2月21日

coLinuxでデュアルブートマシンをいじる

Windowsのデバイスドライバしか提供されていない小物をいじる必要があり、仕方なくいつも自宅で使っているノートPCでWindowsを立ち上げたが、どうにも耐えられなくなりcoLinuxを入れてみた。

#cygwinも入れているけど、ノートPC内の環境とは別になるし。
#Linux上のVMWareのライセンスは持っているけど、
#Windows上のライセンスはないのでこれが一番かな。

このノートPCはLinux(Debian/sarge)とWindowsXPのデュアルブートにしているけど、WindowsXPをブートするのは極希。

HDDのパーティションは以下のように分けている。fdiskの結果で示そう。

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1275    10241406    7  HPFS/NTFS
/dev/hda2            1276        9600    66870562+  83  Linux
/dev/hda3            9601        9729     1036192+  82  Linux swap

/etc/fstabはこんな感じ。

# /etc/fstab: static file system information.
#
#                
proc            /proc           proc    defaults        0       0
/dev/hda2       /               ext2    defaults,noatime,errors=remount-ro 0
   1
/dev/hda3       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   iso9660 ro,user,noauto  0       0

これをどうすればいいのか、ちょっと悩んでcoLinux FAQ 勝手に日本語にした版を見たところ、「できます」と書いてあったので、やってみた。

苦節30分(^^;。
最終的なdefault.colinux.xmlはこうなっている。


<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <!-- This line needs to point to your root file system.
         For example change "root_fs" to the name of the Debian image.
         Inside coLinux it will be /dev/cobd0

         Block Device Aliasing: You can now handle most dual-boot issues
         by adding an alias="devname" to block_device. i.e. alias="hda",
         alias="hda1" You can do this for SCSI as well as IDE.  You need
         to be aware that if you add an alias, you need to change your
         bootparams root="devname" appropriately (you may need to use
         devfs naming in some situations).  -->
    <block_device index="0" alias="hda2" path="\Device\Harddisk0\Partition2"
    enabled="true" />

    <!-- This line can specify a swap file if you wish, or an additional
         image file, it will /dev/cobd1. Additional block_devices can
         be specified in the same manner by increasing the index -->

    <block_device index="1" alias="hda3" path="\Device\Harddisk0\Partition3"
    enabled="true" />

    <!-- bootparams allows you to pass kernel boot parameters -->
    <bootparams>root=/dev/hda2 ro</bootparams>

    <!-- Initial RamDISK (initrd) support -->
    <initrd path="initrd.gz" />

    <!-- image allows you to specify the kernel to boot -->
    <image path="vmlinux" />

    <!-- this line allows you to specify the amount of memory available
         to coLinux -->
    <memory size="512" />

    <!-- This allows you to modify networking parameters, see the README
         or website or wiki for more information -->
    <network index="0" type="tap" />
</colinux>

この状態で、最初にブートさせたときには、/dev配下にいくつかのデバイスを作る旨のメッセージを出して止まったけれど、2回目にブートさせるときちんと立ち上がってくれた。
ただし、Xは立ち上がっていません。当たり前。

その後、cygwin内でstartxして、
$ xhost +
した後に、coLinux側で
$ export DISPLAY=Windows側のIP:0.0
とやって、coLinux側からWindowsXP上のcygwinにxeyesやら(^^;
xemacsなどを表示させることが出来た。

しかし、日本語FEPが起動していないなどの関係で、日本語入力はまだ出来ていないので、もう少しまじめにいじる必要がある。
coLinux側でvncを上げて、そこにつなぎに行くか、gdmでloginさせるか、どっちが良いのかなぁ。

情報は結構豊富にありそうなので、時間がとれたらまじめにやろう。
もしかしたら、WindowsXP上からcoLinux経由で動かすDebian/sargeが標準的な使い方になるかも(^^;

ちなみに、WindowsXP上でのether TAPの設定はちょっとまごついた。
最終的にはbridgeでつながっているようだ。
さっくりbridgeデバイスが出来るところはWindowsXPもなかなか捨てたものではないなと言う気もする。

投稿者 his : 2005年2月21日 02:54
このエントリーのトラックバックURL: http://hoop.euqset.org/blog/mt-tb2006.cgi/997
コメント
コメントする









名前、アドレスを登録しますか?





画像の中に見える文字を入力してください。