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もなかなか捨てたものではないなと言う気もする。


0 件のコメント:

コメントを投稿