colinuxのパーティションが99%になってしまいました。

以前「colinuxのイメージを拡張とswapを使う方法」というエントリを書いたのを思い出し見てみたのですが、自分で書いておきながらすごくめんどくさそうだったので、他に方法ないのか調べてみました。

そしたら公式のwikiにイメージ拡張の方法がまとめてあったので、ここに書いてある方法でイメージ拡張したログを残しておきます。

ちなみに、このwikiのページには数種類の方法が書いてあるのですが、この中でも今回は「The most reliable way to enlarge the root partition」という方法をやってみました。
  1. まずはcolinuxが起動してたらshutdown
  2. # shutdown now -h
  3. 次に新しいイメージをWindowsのコマンドプロンプトで作成する
  4. # fsutil file createnew colinux_new.img 8589934592
    8589934592=8Gのことです。4Gだったらこの半分ね。
  5. colinuxの設定ファイルで手順2で作成したイメージファイルを新しいパーティションとして登録する
  6. 昔のXMLの設定ファイルだったら下記のような感じ。
    <block_device index="0" path="\DosDevices\c:\path\to\colinux_old.img" enabled="true" />
    <block_device index="1" path="\DosDevices\c:\path\to\swap_device.256mb.img" enabled="true" />
    <block_device index="2" path="\DosDevices\c:\path\to\colinux_new.img" enabled="true" />
    「index="2"」のところは、今自分が使ってないパーティション番号にしなければなりません。

    最近のcolinuxの設定だったらば下記のような感じ。
    cobd2="c:\path\to\colinux_new.img"
    cobd2の「2」は、XMLの場合と同様に今自分が使ってないパーティション番号にしてください。

    ちなみに、今回僕は上記のように 0 が既存のパーティション、1 がswapになっていたので、新しいイメージは 2 にしました。
  7. colinux起動して、データのコピー等を行なう
  8. ここで元のパーティションでcolinuxを起動して、colinux上で以下のコマンドを順に実行していきます。

    まずは今まで使ってたパーティションをe2fsckする。ちなみに自分はこれはやりませんでした。というか、当たり前だけどマウントしてるパーティションなのでwarningがでますので注意してください。
    # e2fsck /dev/cobd0
    次に新しいパーティションにddコマンドを使ってデータをコピーします。ifで指定したパーティションのデータをofで指定したパーティションにそのままコピーします。このコピーは元のパーティションのデータ量により若干時間がかかります。(3GBのパーティションで30分ぐらいかかりました)
    # dd if=/dev/cobd0 of=/dev/cobd2
    次に新しい方のパーティションをe2fsckとresize2fs、そしてもう一度e2fsckします。
    # e2fsck -f /dev/cobd2
    # resize2fs -p /dev/cobd2
    # e2fsck /dev/cobd2
    最後にshutdownです。
    # shutdown now -h
  9. 新しいイメージファイルをメインパーティションに変えて起動
  10. ここまできたらもう少しです。

    新しく作ったイメージファイルをメインパーティションとして使うようにcolinuxの設定を変更します。

    設定方法は、下記のように今まで index="0"(最近のcolinuxの場合は cobd0="") と設定していたところに colinux_new.img を指定して、先程指定していた 1 の部分を削除してやるだけです。
    <block_device index="0" path="\DosDevices\c:\path\to\colinux_new.img" enabled="true" />
    
    <block_device index="1" path="\DosDevices\c:\path\to\swap_device.256mb.img" enabled="true" />
    そして、最後にcolinuxを起動させます。問題なくログインできれば成功です。 自分は1時間ぐらいでこれらの作業は完了し、今のところ問題なく動いています。

    でもまだ数時間した使ってませんので、なにか不具合があったらまた報告したいと思います。

    と、ここまで書いたけど、めんどくささでは前のとそんなに変わらないような気もする…。