サーバー管理 · 1 min read · Feb 05, 2026

Debian Wheezy: Xenディスクイメージの分割とサイズ変更

背景

私のXen仮想サーバーの1つは、週末に400Gのディスクを分割してサイズ変更する必要があり、ダウンタイムを最小限に抑えたいと考えていました。ディスクには240Gが使用されており、そのうち235Gは/backupディレクトリで、残りの5Gは通常のDebian Linuxインストールに割り当てられていました。ディスクを2つのディスクに分割したいと思っていました - Linuxシステムを含む20GBのディスクと、/backupとしてマウントする300Gのディスクです。そうすれば、DRBDセットアップを適用して、その300Gのバックアップパーティションを別の2台目のバックアップマシンにレプリケートできるようになります。

物理ホスト上で大量のデータをコピーする状況にはなりたくなく、仮想マシンがダウンしている間にそれを行いたくはありませんでした。

画像のセットアップ

仮想マシンのディスクイメージは/vm/domains/b1/disk.imgにあり、心配する必要のないswap.imgがあります。

問題:

losetup -a

すべての使用中のループデバイスを特定するために。私の場合、/dev/loop20が最初の空きデバイスでした。次に、イメージのためにループバックデバイスを設定し、マウントします:

mkdir -p /mnt/loop-copy-from /mnt/loop-copy-to
losetup /dev/loop20 /vm/domains/b1/disk.img
mount /dev/loop20 /mnt/loop-copy-from

新しい空のスパースイメージを作成

今、/backupを移動するのではなく、他のすべてを新しい20Gイメージに移動します。次のコマンドで20Gのスパースイメージファイルを作成します:

dd if=/dev/zero of=/vm/domains/b1/disk-root.img bs=1k count=1 seek=$(((20*1024*1024)-1))

次に、新しいループデバイスを設定し、ファイルシステムを作成し、最後にこの新しいイメージをマウントする必要があります。

losetup /dev/loop21 /vm/domains/b1/disk-root.img
mkfs.ext3 /dev/loop21
mount /dev/loop21 /mnt/loop-copy-to

ルートファイルシステムをコピー

今、私は/backupディレクトリを除いて、/mnt/loop-copy-fromから/mnt/loop-copy-toにすべてをコピーします:

rsync -arplogu --exclude "/backup" --stats --progress /mnt/loop-copy-from/ /mnt/loop-copy-to

既存のファイルシステムをクリーンアップ

私は/backupディレクトリを除いて、/mnt/loop-copy-fromのすべてを削除したいです:

cd /mnt/loop-copy-from; ls | grep -v 'backup' | xargs rm -rf

次に、両方のデバイスをアンマウントします:

umount /mnt/loop-copy-from
umount /mnt/loop-copy-to

既存のファイルシステムを縮小

今、私は/dev/loop20を400Gから300Gに縮小する必要があります:

e2fsck -f /dev/loop20
resize2fs /dev/loop20 300G

ブートデータをコピー

そして、ループバックデバイスを破棄する前にブートデータをコピーします:

dd if=/dev/loop20 of=/dev/loop21 bs=1 count=512
losetup -d /dev/loop20
losetup -d /dev/loop21

Xenの設定とVMのブート

今、Xen VM設定ファイルを編集します。私の場合、/etc/xen/b1.cfgで、次のように変更します:

disk = [
  'file:/vm/domains/b1/disk.img,xvda2,w',
  'file:/vm/domains/b1/swap.img,xvda1,w',
]

次のように:

disk = [
  'file:/vm/domains/b1/disk-root.img,xvda2,w',
  'file:/vm/domains/b1/disk.img,xvda3,w',
  'file:/vm/domains/b1/swap.img,xvda1,w',
]

そして最後に:

xm create b1.cfg

リンク

IO Digital Sec

Debian Wheezy XEN + ゲストセットアップ

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。