非LVM ext4パーティションのサイズ変更/拡大/拡大方法


20

私はすでにフォーラムを検索しましたが、適切な答えを見つけることができませんでした:

KVMホストとしてのUbuntu Server 10.04と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

回答:


18

このページは、それを行う方法を示しており、アンマウント、削除、目的のサイズでパーティションを再作成し、resize2fsを使用してパーティションを拡張します。resize2fsのマニュアルページは同意します。

「パーティションの削除」は怖いように聞こえますが、データはまったく変更されません。コンテナを参照するものを変更するだけです。しない限り、mkfs.ext4大丈夫です。

パーティションの開始点は以前と同じである必要があります。そうしないと、OSは背後にあるものを解釈する方法を知りません。その後、終点をさらに大きくして、より大きなパーティションを作成できます。

コメントのエラーは、開始点の移動に関連していると思います。開始時とまったく同じ時点で開始する必要があります。終点は移動できます。

功績psusi代わりcfdiskのでfdiskを示唆し、開始点の問題を確認します。


さて、cfdiskでパーティションを削除し、新しいパーティションを作成しました。しかし、私はそれをresize2fsできませんでした。また、もうマウントできません。
ミーシャ・

resize2fs 1.41.11(2010年3月14日)resize2fs:/ dev / vdc1を開こうとしたときに、スーパーブロック内の不正なマジックナンバーが有効なファイルシステムスーパーブロックを見つけることができませんでした。
ミーシャ

1
実際には、cfdiskは小さな空き領域のパーティション化されていない領域を示し、次にパーティション(「ブート」とLinux / ext3のフラグが設定されています)、残りのパーティション化されていない領域を示しました。パーティションを削除し、cfdiskを使用して再度作成した後、cfdiskには1つの大きなパーティション領域(これで問題ありません)が表示され、ファイルシステムタイプとして「Linux」のみが表示されます。
ミーシャ・

8
元のパーティションとまったく同じセクターで開始するように、パーティションを再作成する必要があります。cfdiskでこれを行うことはできません。fdiskまたはpartedを使用して、それらをセクターモードにします。
-psusi

1
パーティションの開始が移動するようにext4パーティションのサイズを変更する方法はありますか?奥ではなく現在のext4パーティションのに空きスペースがあるので...幸いなことに、パーティションが大きいよりも多くの空きスペースがあるので、次のことができると思います:パーティション全体を前面にコピーし、後ろにあるものを削除してから、移動したもののサイズを全体のサイズに変更しますか?それは現時点では私にひどいハック...のように思える
codeling

6

例:

/ 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

(別れた)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

がんばろう!


2
正確に同じ場所で取得するには、GBではなくセクターの単位を使用する必要があります。
psusi

0

パーティションを削除して再作成しようとすると、パーティションが2048未満になったときに、のようなトラブルが発生する可能性がありますresize2fs

Couldn't find valid filesystem superblock.

fdiskバージョン2.17.2から、fdisk IIUCは、ハードドライブが「正しく整列」されていることを確認するために、2048から開始することを強制します。したがって、元のパーティションが2048よりも前に開始された場合、パーティションを再作成しようとすると、でこぼこしたことになります。

最善のアプローチは、ディスクのクローンを作成するときrsyncすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.