以前書いたエントリでcolinuxをインストールして使っていたのですが、デフォルトで使用するdebianのイメージは1GBしかなく、つまりcolinuxで使用するディスク容量が1GBということになります。
これだといろんな開発に必要なツールを入れたり、apacheとかmysqlを入れたらあっというまに90%に達っしてしまったのでこりゃいかんとイメージを拡張することにした。でもwindows側のマシンの容量を圧迫するので、あまり大きくはできなかった…。とりあえず2GBにしてみました。

まずはイメージの拡張から。大きな流れとしては
  1. DOSで新しい2GBのイメージの空イメージを作成
  2. colinuxでそれをフォーマットしてマウント
  3. 元のデータを新しいイメージの方にコピー
  4. 新しい方で起動
これだけです。

では始めましょう。新しく使用するイメージファイルを作成します。これはwindows側でDOS窓でやります。下記は2GBの例です。
C:\> fsutil file createnew root_fs_new 2147483648
これは一瞬で終ります。作成したイメージは以前Debianのイメージを置いたディレクトリに置いておきましょう。
次にそれをcolinuxで起動時に読み込めるようにdefault.colinux.xmlを下記のように編集しましょう。先程作成したroot_fs_newのためのblock_deviceをもう1つ追加しました。

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\Debi
an-3.0r2.ext3-mit-backports.1gb"
    enabled="true" />

    <block_device index="1" path="\DosDevices\c:\Program Files\coLinux\root_fs_new"
    enabled="true" />

    <bootparams>root=/dev/cobd0</bootparams>

    <initrd path="initrd.gz" />

    <image path="vmlinux" />

    <memory size="128" />

    <network index="0" name="TAP" type="tap" />
</colinux>

こちらで、colinuxを再起動します。起動できたらばrootになって下記のコマンドを実行してください。やっていることは、先程のイメージをext2でフォーマットしてからそれを/mnt2にマウントしています。index="1"と設定をしたのでroot_fs_newは/dev/cobd1になります。
# mkfs.ext2 /dev/cobd1
# mkdir /mnt2
# mount -t ext2 /dev/cobd1 /mnt2
次にルートディレクトリに移動してから、今使っているイメージの内容全部を新しく作成してマウントしたディレクトリにコピーします。
# cd /
# tar cpf - `ls -1 | grep -v proc | grep -v mnt2` | (cd /mnt2; tar xpf -)
# mkdir /mnt2/proc
これがちょっと時間かかります。完了したらdefault.colinux.xmlを元に戻して、以前Debianのイメージを指定していたところ(つまりindex="0"のところ)を新しく作成したroot_fs_newに変更して起動しなおしてください。これで起動すると容量が2GBになっているはず。

さて、次はswapを使う方法です。流れとしては、イメージの拡張より簡単です。
  1. DOSで新しい128Mのイメージの空イメージを作成
  2. colinuxでswapとしてフォーマット
  3. /etc/fstabにswapを設定
  4. 再起動
これだけです。

まずは、先程のイメージの拡張と同じように、DOSでイメージの空イメージを作成。今回は128Mのswapを使うことにします。
C:\> fsutil file createnew swap_device 134217728
次にdefault.colinux.xmlに上記で作成したswap_deviceを追加してcolinuxを起動します。
<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\root_fs_new"
    enabled="true" />

    <block_device index="1" path="\DosDevices\c:\Program Files\coLinux\swap_device"
    enabled="true" />

    <bootparams>root=/dev/cobd0</bootparams>

    <initrd path="initrd.gz" />

    <image path="vmlinux" />

    <memory size="128" />

    <network index="0" name="TAP" type="tap" />
</colinux>


これで起動したら、swapを使えるようにフォーマットしましょう。index="1"とdefault.config.xmlに書いたので、/dev/cobd1がswap_deviceになりますので、下記のコマンドをrootで実行します。
# mkswap  /dev/cobd1
swapを使えるようにしたら、あとは下記のように/etc/fstabにswapを追加します。 root権限でviとかで編集しましょう。追加したのは、/dev/cobd1のある行です。
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
/dev/cobd0      /               ext3    errors=remount-ro       0       1
/dev/cobd1      swap            swap    defaults                0       0
proc            /proc           proc    defaults                0       0
tmpfs           /dev/shm        tmpfs   defaults                0       0


ここまでできたら、あとは再起動するだけです。