VirtualBox のディスクを増量…できなかった

とある VirtualBox 上の CentOS のディスク容量が足りなくなってきたので増やそうと思った。

……。

おおーっと。できないでやんの。マジか。

それだけだとあんまりなので分かったことを。

LVM が絡むと面倒なのかも

VirtualBox の GUI にはディスクを大きくする方法はなかったので、HDD にインストールしていない knoppix か何かで起動し、partition サイズを変更しようとした。しかし CentOS はデフォルトで LVM にインストールされ、これのサイズを自由に変更できるツールはないっぽかった。少なくとも GPart や QTParted では不可能だった。仕方なく、

  • VirtualBox で新しく、より大きめのディスクを作成
  • (別なシステムで立ち上げ)
  • dd で手狭になったディスクの内容をコピー
  • そのままではサイズが変わらないので、pvresize, vgresize, lvresize で大きくなったディスクに合わせて LVM のサイズを目一杯大きくした

中の CentOS は kernel panic で立ち上がらなくなった orz (snapshot を撮っておいたのでちゃんと元に戻せたよ。)

qemu-img はまだ vdi には対応していない

もしかしてディスクフォーマットを変換したらサイズ変更するツールあるかも、と思って変換を試みたが、QEMU に入っている qemu-img では vdi は扱えなかった。

VirtualBox 2.1.0 から vdi 以外にも対応

実は VirtualBox は 2.1.0 から VirtualBox 独自である vdi 以外の仮想ディスクフォーマットも使える。

  • Full VMDK/VHD support including snapshots (see user manual, chapter 5.2, Disk image files (VDI, VMDK, VHD), page 72)

またマニュアルにもほとんど記載がないが

VBoxManage internalcommands

というサブコマンドのサブコマンドでディスク形式の変換ができるようになっている。

$ VBoxManage internalcommands converthd
VirtualBox Command Line Management Interface Version 2.1.2
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Usage: VBoxManage internalcommands <command> [command arguments]

Commands:

  converthd [-srcformat VDI|VMDK|VHD|RAW]
            [-dstformat VDI|VMDK|VHD|RAW]
            <inputfile> <outputfile>
       converts hard disk images between formats

ということは VMWare があれば容量の変更はできるのかなーという感じもしている。でもそれって VirtualBox の存在自体否定しちゃってるし、実際持っていないので試せていない。

cf.

Fly together Forever » Convert VirtualBox image (vdi) to VMWare (vmdk)

More