web-dev-qa-db-ja.com

ext4パーティションとファイルシステムを拡張する方法は?

400GBのディスクと320GBのext4パーティションがあります。 ext4パーティションを拡張して、左側のスペース(80GBの空きスペース)を使用したいと思います。

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

どうすればこれができますか?

resize2fsを使用している人を見たことがありますが、パーティションのサイズを変更するかどうかはわかりません。

別の解決策はfdiskを使用することですが、パーティションを削除してデータを失いたくありません。ファイルを失うことなく、単にパーティションを拡張するにはどうすればよいですか?

注:LVMを使用せずにマウントされていないデータパーティションについて話していて、バックアップがありますが、リカバリに時間を費やしたくないです。

50
mimipc

パーティションをアンマウントして開始する必要があります。アンマウントできない場合(たとえば、ルートパーティションであるか、システムで実行する必要がある何か)、代わりに System Rescue CD のようなものを使用します。

  1. parted、またはGUIが必要な場合はgpartedを実行し、追加のスペースを使用するようにパーティションのサイズを変更します。 gpartedは、質問で描いたものと非常によく似た、すてきなグラフィック表現を提供するので、私は好みます。

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever(あなたが安全側にいるかどうかを知るためだけです)

  4. パーティションを再マウントします。

これが失敗するのを見たことがありませんが、最初にデータをバックアップしてください!

53
Flup

はい、パーティションがすでにソートされている場合は、EXT4 fsをオンラインで拡張できます。パーティションをソートしましたか? LVMをお持ちですか?

Sudo resize2fs /dev/drive_to_grow

fdiskはパーティションのサイズを変更しますが、これはルートパーティションの場合(または実際にマウントされたパーティションの場合)、最初にマウント解除する必要があります。だからオフラインの可能性が最も高い!

ディスク/ fsの操作に関連するものと同様に、バックアップを取り、テストし、よく理解した回復プロセスを実行することを強くお勧めします。

22
Chris

一部のVDSサーバーでは、非プライマリルートパーティションがあり、拡張パーティションコンテナーのサイズを最初に変更する必要があることに注意してください。

たとえば、プランをアップグレードしたばかりで、次のようなものがあります。

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

ここで/ dev/vda2-拡張コンテナです。そして/ dev/vda5-利用可能なスペース全体にサイズ変更する必要があるメインパーティション。

最も簡単な方法:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space
6
WSR

partedresizeパーティションとそのファイルシステムを使用できます。

3
200_success

PartedはCentosのext4では機能しません。私はfdiskを使用してパーティションを削除および再作成する必要がありました。これは(検証した)データを失うことなく機能します。 http://geekpeek.net/resize-filesystem-fdisk-resize2fs/ の手順に従いました。ここに一言で言えば:

$ Sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ Sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w
3
JTW

fdiskまたはcfdiskを使用してパーティションを変更(または再作成)して(開始境界を変更しないように注意してください)、再起動してresize2fs。ただし、一般に、MBR/GPTではなくLVM-2を使用することをお勧めします。これにより、カーネルの再起動なしでこれらの変更を取り込むことができます。

2
poige

まだこのスレッドを読んでいる人のためにこれをどのように行うかを明確にするために。
サイズを変更するブートパーティションである場合は、単にLive Linuxであるbootcdまたはbootusb "rescue"ドライブからブートする必要があります。これにより、変更したいドライブ以外のマシンでLinuxを実行できます。

この場合の最良の「レスキュー」CDまたはUSBは、ブート可能なgparted USBまたはCDだと思います
レスキュー画像が必要な場合
1。拡張するパーティションは最後のパーティションですが、そこから起動したため、マウントを解除できません。
sda1 =ブート(またはスワップ)
sda2 =スワップ(またはブート)
sda3 = /
未使用スペース

  1. 拡張するパーティションが最後のパーティションでない場合、パーティションを移動またはサイズ変更するには、gpartedブートイメージを使用する必要があります。
    sda1 =ブート
    sda2 = /(拡張されるパーティションは最後ではありません)
    sda3 =スワップ
    未使用スペース

別のパーティションである/ homeのように、「ルート」パーティション(/)ではないマウントされたパーティションを変更する場合は、レスキューイメージを使用する必要はありません。これが最後のパーティションである場合は特にそうです。
sda1 =ブート
sda2 = /
sda3 =/home
未使用スペース
-または-
sda1 = /
sda2 =/home
未使用スペース

これは、小さなドライブまたはSSDからイメージを取得して、それを大きなSSDに移動する場合の状況です。

この場合、拡張するときに/ homeをアンマウントする必要があります。ただし、/ homeをアンマウントするには、ホームディレクトリがその中にあるユーザーアカウントにログインしていないことを確認する必要があります。 「root」ユーザーのホームディレクトリは/ rootのようにシステムルート/の直下にあるため、rootにログインできれば、/ homeをマウント解除できます。

GUI(KDE/Gnome /など)セッションからログアウトし、[CTRL] + [ALT] + [F1]を使用してシェルセッションを起動します。
ユーザーのログインからログアウトした場合、Linuxがファイルを閉じるのに20〜30秒かかるため、/ homeをアンマウントしようとするとエラーが発生する可能性があります。
1。 umount/home(30秒以内に失敗した場合は、このコマンドを再試行してから、他のセッションを調べて、どこかで「cd/home/xxx」になっているかどうかを確認します。)
2。 parted/dev/sda
a。 xのサイズ変更(x =サイズを変更するパーティション。パーティションのリストを取得するには「p」を使用)
b。サイズ変更の最後のセクターを入力してください= "-1"(マイナス1はディスクの終わりから1セクターを意味します)
c。 q(別れをやめる)
3 resize2fs/dev/sda "x"(x =サイズを変更するパーティション。これにより、ファイルシステムも再マウントされます)
4。 df -m(/ homeをチェックして、サイズが変更されたことを確認します)
この方法でファイルを紛失したり、ドライブを破損したことはありません。

幸運を

1
Chuck A

現在のユーザーを中断することなく、CentOS 7を実行しているDellサーバーに/ scratchとしてマウントされたディスクを拡張するように求められました。これは、通常のGPTディスクラベルを持つRAID 0ディスク上のXFSパーティションでした。これはext4パーティションでもほぼ同じように機能します-後述します。

これは、システムの操作をマウント解除、再起動、または中断することなくこれを実行した方法です。 Linuxコマンド(およびDellのRAIDツール)を使用しました:

  1. 物理RAIDボリュームを拡張するには、サーバーに2つの新しいディスクを追加し、OpenManage Server Administratorツールを使用してそれらを既存のRAIDボリュームに追加します。これは完了するまで数日かかりましたが、それ以上の人間の努力は必要ありませんでした。 RAIDディスクの再構築中、サーバーは引き続き低速のディスクで動作しました。
  2. ブロック単位のディスクのサイズは15623782400から23435673600(512バイト)ブロックに増加しましたが、_/sys/block/sdb/size_の値はまだ低い値でした。これは次のコマンドを使用して修正されました:_echo 1 > /sys/block/sdb/device/rescan_
    ディスクドライバにディスクのサイズと形状に関する知識を更新させる。これはあまり宣伝されていない機能のようです:名前から何をしたのかと思いました!
  3. partedを実行してディスクラベルを編集し、ディスクの末尾にあるコピーを新しいディスクの末尾に移動しました。幸いなことに、私は励ましなしで何をしたいのか正確に推測し、私を促しました。まず、ディスクラベルのコピー:Error: The backup GPT table is not at the end of the disk, as it should be. This might mean that another operating system believes the disk is smaller. Fix, by moving the backup to the end (and removing the old backup)? Fix/Ignore/Cancel? F
    次に、ディスクラベルに反映されるディスクのサイズ:Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the GPT to use all of the space (an extra 7811891200 blocks) or continue with the current setting? Fix/Ignore? F
    ディスクラベル(およびそのコピー)を修正して終了するには、「F」を2回入力してから「q」を入力する必要がありました。これにより、ハードな思考や作業なしに修正する必要のあるものがほとんど修正されました。
  4. ディスクをいっぱいにするためにパーティションサイズを編集する必要がありましたが、ディスクがまだマウントされている間はpartedでそれができなかったため、代わりにfdiskを使用しました:fdisk /dev/sdb d 1 n 1 (defaults were correct for full size of disk) t 1 11 (That's Microsoft basic data - which is the same as xfs). w
    正しい開始ブロック番号2048を使用していることを確認したことに注意してください。それ以外の場合は、機能しませんでした。幸運にも、開始ブロックに同じ規則が適用された2つのツールを使用しましたが、最初の開始ブロックを最初にチェックしました。
  5. partedはパーティションの命名をサポートしていないため、この時点でfdiskを使用して、パーティションに以前と同じ名前を付けました。細かいディテール。
  6. _partprobe /dev/sdb_(および適切な手段として_partprobe /dev/sdb1_)を使用して、OSにパーティションテーブルを再度読み取らせました。最初のコマンドだけが実際に違いを生んだと思います。
  7. 最後に、_xfs_growfs -d /scratch_を使用したところ、パーティションを最終的なサイズに拡張するのにわずか1.6秒かかり、新しく拡張されたディスクがいっぱいになりました。

これはext4ボリュームでも機能します。唯一の違いは、_resize2fs /dev/sdb1_の代わりに_xfs_growfs -d /scratch_を使用することと、xfsの代わりにext4に正しいパーティションタイプ番号を使用することです。 fdiskコマンドは、ext4を含む一般的なディスクシステムのタイプ番号をリストできます。

0

受け入れられた答えはやや古くなっています:ext4ファイルシステムのサイズ変更はオフラインよりもonlineのほうが適切です。

LVMを使用している場合を除いて、基になるパーティションを拡張することはおそらく難しいでしょうandボリュームグループに空き領域がある。パーティションをオンラインで拡張するには、fdiskまたはpartedを使用できます。次に、kpartx <device>を実行して、変更をカーネルに通知する必要がありました。 LVMを使用している場合、ボリュームをpvresizeする前に、サイズ変更したばかりのパーティションをlvresizeする必要があります。

最後に、ファイルシステムをresize2fsで発行できます。

0
shodanshok