パーティションのサイズを変更/移動する方法は?

パーティションのサイズを変更/移動する方法は?

私のルートパーティションにスペースが足りないので、別のパーティションからいくつかのスペースを盗みたいです。ドライブは、mdadmソフトウェアRAIDを使用する2x120GBです。 CentOS 6.5 64ビットを使用しています。 RAID設定を起動するためにcentosインストーラを使用しています。ほとんどのHowToは、基本的なパーティショニングのない方向に私を導いたようです。したがって、他のすべての人には/dev/md0しかありません。 resize2fs /dev/md0 25G (たとえば、50G で減らす) を実行してから、mdadm を使用してサイズを変更するなどの操作を実行します。

レイアウトは次のとおりです

マウントされた%を使用して利用可能なファイルシステムサイズを利用可能
/dev/md0p5 9.7G 7.1G 2.1G 78% /
tmpfs 16G 0 16G 0% /dev/shm
/dev/md0p1 194M 99M 86M 54% /boot
/dev/md0p2 68G 7.2G 57G 12% /var/www

猫/proc/mdstat:

キャラクター: [raid1]
md0 : アクティブ raid1 sdb[1] sda[0]
      117220736 ブロック [2/2] [UU]

未使用機器:

これはfdiskです:

fdisk -l

ディスク /dev/sda: 120.0GB, 120034123776バイト
255ヘッド、63セクター/トラック、14,593シリンダー
単位= 16065 * 512 = 8225280バイトのシリンダー
セクタサイズ(論理/物理):512バイト/512バイト
I/Oサイズ(最小/最適): 512バイト/512バイト
ディスク識別子:0x00035afc

   デバイス起動開始エンドブロックIDシステム
/dev/sda1*1 26 204800 83 Linux
パーティション1はシリンダ境界で終わらない。
/dev/sda2 26 8950 71680000 83 Linux
/dev/sda3 8950 11039 16777216 82 Linux Exchange/Solaris
/dev/sda4 11039 14594 28557312 5 拡張
/dev/sda5 11039 12314 10240000 83 Linux

ディスク /dev/sdb: 120.0GB, 120034123776バイト
255ヘッド、63セクター/トラック、14,593シリンダー
単位= 16065 * 512 = 8225280バイトのシリンダー
セクタサイズ(論理/物理):512バイト/512バイト
I/Oサイズ(最小/最適): 512バイト/512バイト
ディスク識別子:0x00035afc

   デバイス起動開始エンドブロックIDシステム
/dev/sdb1*1 26 204800 83 Linux
パーティション1はシリンダ境界で終わらない。
/dev/sdb2 26 8950 71680000 83 Linux
/dev/sdb3 8950 11039 16777216 82 Linux Exchange/Solaris
/dev/sdb4 11039 14594 28557312 5 拡張
/dev/sdb5 11039 12314 10240000 83 Linux

ディスク /dev/md0: 120.0GB, 120034033664バイト
2ヘッド、4セクター/トラック、29305184シリンダー
単位= 8 * 512 = 4096バイトのシリンダー
セクタサイズ(論理/物理):512バイト/512バイト
I/Oサイズ(最小/最適): 512バイト/512バイト
ディスク識別子:0x00035afc

    デバイス起動開始エンドブロックIDシステム
/dev/md0p1*257 51456 204800 83 Linux
パーティション1はシリンダ境界で終わらない。
/dev/md0p2 51457 17971456 71680000 83 Linux
パーティション2はシリンダ境界で終わらない。
/dev/md0p3 17971457 22165760 16777216 82 Linux Exchange/Solaris
パーティション3はシリンダ境界で終わらない。
/dev/md0p4 22165761 29305088 28557312 5 拡張
パーティション4はシリンダ境界で終わらない。
/dev/md0p5 22166273 24726272 10240000 83 Linux

それでは、ルートパーティションを増やして/var/wwwパーティションを減らすにはどうすればよいですか?

答え1

RAIDを個々のディスクに分割したので、この場合RAIDを完全に無視できます。そのため、パーティションのサイズ変更/移動を行うだけです。

たとえば、wwwパーティションを縮小し、スワップパーティションを削除してから、ルートパーティションを左に動かすことで、より大きくすることができます。

あるいは、これが複雑に見え、別のパーティションが必ずしも必要でない場合は、ルートパーティションをwwwパーティションにマージすることもできます。すでにルートパーティションとwwwパーティションの両方を収容するのに十分な大きさのためです。これが私がすることです。

# mount stuff
mkdir /mnt/root /mnt/www
mount /dev/md0p5 /mnt/root
mount /dev/md0p2 /mnt/www

# since /mnt/www will be the new root, move www files to /var/www
mkdir -p /mnt/www/var/www
mv /mnt/www/* /mnt/var/www/

# copy the root files
rsync -avAHSX /mnt/root/. /mnt/www/.

# comment out old root partition in fstab
# change /var/www to / in fstab

# update bootloader and reboot

この方法には、問題が発生しても元のルートパーティションがそのまま残るため、操作を再開できるという利点もあります。

マージされたルート+wwwパーティションに問題がない場合は、古いルートパーティションを削除してディスク全体のサイズに増やすことができます。

あるいは、wwwが近い将来に十分に大きいと思われる場合は、最終的に別々のパーティションを使用することを決定し、wwwファイルを古いルートパーティションに移動することができます。

または、wwwパーティションを縮小して新しいパーティションのスペースを作成することもできます。

無限の可能性...

関連情報