私はすでにフォーラムを検索しましたが、適切な答えを見つけることができませんでした:
Ubuntu Server 10.04をKVMホストとして使用し、ゲストシステムも10.04を実行しています。ホストシステムはLVMを使用し、3つの論理ボリュームがあります。これらは、仮想ブロックデバイスとしてゲストに提供されます。1つは/、1つは/ home、もう1つはスワップです。ゲストはLVMなしでパーティション分割されていました。
ホストシステムの論理ボリュームをすでに拡大しています-ゲストはより大きな仮想ディスクを正常に認識します。ただし、この仮想ディスクには「古き良き」パーティションが1つ含まれており、これにはまだ古いサイズが残っています。
Fdisk -lの出力は
me@produktion:/$ LC_ALL=en_US Sudo fdisk -l
Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7
Device Boot Start End Blocks Id System
/dev/vda1 * 1 3917 31455232 83 Linux
Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7
Device Boot Start End Blocks Id System
/dev/vdb1 1 366 2095104 82 Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
phys=(260, 243, 47) logical=(365, 136, 44)
Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25
Device Boot Start End Blocks Id System
/dev/vdc1 1 9138 73398272 83 Linux
Parted print allの出力は
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 32.2GB 32.2GB primary ext4 boot
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 2146MB 2145MB primary linux-swap(v1)
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
私が達成したいのは、仮想ブロックデバイス/ dev/vdcによって提供されるスペース全体を使用するように、パーティション/ dev/vdc1を単純に拡大またはサイズ変更することです。問題は、私がpartedでそれを行おうとすると、文句を言うことです:
(parted) select /dev/vdc
Using /dev/vdc
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 75.2GB 75.2GB primary ext4
(parted) resize 1
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start? [1049kB]?
End? [75.2GB]? 224GB
Error: File system has an incompatible feature enabled. Compatible features are has_journal, dir_index, filetype, sparse_super and large_file. Use tune2fs
or debugfs to remove features.
じゃあどうすればいい?これは、ヘッドレス生産システムです。このパーティションを拡大する安全な方法は何ですか?ただし、マウントを解除できます。したがって、これは問題ではありません。
編集:Cfdiskは、小さな空きスペースのパーティション化されていないスペースを示し、次にパーティション(「ブート」およびLinux/ext3としてフラグが立てられた)、そしてパーティション化されていない残りのスペースを示しました。パーティションを削除し、cfdiskを使用して再度作成した後、cfdiskに1つの大きなパーティション領域が表示され(これで問題ありません)、ファイルシステムタイプとして「Linux」のみが表示されます
Resize2fsはこのエラーを返しますresize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock
This ページは、それを行う方法を示し、アンマウント、削除、目的のサイズでパーティションを再作成し、resize2fsを使用してパーティションを拡張します。 resize2fsのマニュアルページは同意します。
「パーティションの削除」は怖いように聞こえますが、データはまったく変更されません。コンテナを参照するものを変更するだけです。 mkfs.ext4
をしない限り、大丈夫です。
パーティションの開始点は以前と同じである必要があります。そうしないと、OSはその背後にあるものを解釈する方法を知りません。その後、終点をさらに大きくして、より大きなパーティションを作成できます。
コメントのエラーは、開始点の移動に関連していると思います。開始時とまったく同じ時点で開始する必要があります。終点は動き回ることができます。
Cfdiskの代わりにfdiskを提案し、開始点の問題を確認してくれた psusi に感謝します。
例:
/ dev/sdb2は/ bootパーティションです。 100 MBで、かなり小さいです。実行中のシステムでこのext4パーティションを増やすには(rootまたはSudoとして)行います:
umount/boot
parted/dev/sdb
(分けられた)印刷
モデル:ATA Patriot Torqx 2(scsi)
ディスク/ dev/sdb:32.0GB
セクターサイズ(論理/物理):512B/512B
パーティションテーブル:msdos番号開始終了サイズタイプファイルシステムフラグ
1 1049kB 12.9GB 12.9GBプライマリタイプ= 83
2 12.9GB 13.0GB 107MBプライマリext4タイプ= 83(分割)rm 2(parted) mkpart
パーティションタイプ?プライマリ/拡張?一次
ファイルシステムの種類[ext2]?
開始? 12.9GB
終わり? 13.4GB(別れた)終了
resize2fs/dev/sdb2
resize2fs 1.42.6(2012年9月21日)
/dev/sdb2のファイルシステムは/ bootにマウントされます。オンラインでサイズ変更が必要
old_desc_blocks = 1、new_desc_blocks = 2
/dev/sdb2上のファイルシステムの長さは498688ブロックになりました。
できた!
すべてのデータはそのまま残ります。/bootはすぐに使用でき、472MBの大きさです(partedはサイズに関してそれほど安全ではありません。理由を知るためにマニュアルを読んでください)
すべてのデータは以前にバックアップされましたが、予防措置としてのみです。同じことをお勧めします。
次のコマンドを使用して、/ bootのアンマウントが失敗した場合に停止するプロセスを見つけます。
lsof/boot
幸運を!
パーティションを削除して再作成しようとすると、パーティションが2048未満になったときに、resize2fs
を使用していたような問題が発生する可能性があります。
Couldn't find valid filesystem superblock.
fdiskバージョン2.17.2 から、fdisk IIUCは、ハードドライブが「正しく位置合わせされている」ことを確認するために、2048から開始することを強制します。したがって、元のパーティションが2048より前に開始された場合、パーティションを再作成しようとすると、でこぼこしたことになります。
最善のアプローチは、 ディスクのクローンを作成するときのrsync です。