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


44

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

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

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

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

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

注:LVMを使用せずにマウントされていないデータパーティションについて説明していますが、バックアップもありますが、リカバリに時間を費やすことは避けたいと思います。


このタイプの質問は、私が知っている何度も尋ねられ、答えられてきました。ここでアーカイブを参照しましたか?
mdpc

回答:


45

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

  1. を実行partedするかgparted、GUIを使用する場合は、余分なスペースを使用するようにパーティションのサイズを変更します。gparted質問で描いたものと非常によく似た、素敵なグラフィカルな表現を提供するので、私は好みます。

  2. resize2fs /dev/whatever

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

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

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


5
resize2fsmanページは言う:ファイルシステムがマウントされている場合、カーネルのサポートのオンラインサイズ変更を想定し、ファイルシステムをマウントのサイズを拡張するために使用することができます。(この記事の執筆時点では、Linux 2.6カーネルはext3およびext4を使用してマウントされたファイルシステムのオンラインサイズ変更をサポートしています。) ただし、マウントされたファイルシステムのサイズを変更することは、より危険な操作です。これは、まれにしか実行されないコードの実行中にカーネルが簡単にフリーズまたはクラッシュし、ファイルシステムが悪い状態になるためです
200_success

1
正しい-しかし、ファイルシステムがマウントされた状態でパーティションテーブルをいじりたくはない。だから、fsをアンマウントして始めました。
フラップ

1
ext4のために、あるかもしれないresize4fs代わりに、RHEL 5の上に
ザック・トンプソン

1
ルートファイルシステムを使用してパーティションを拡張しても、次の場合に限り正常に機能し1.ます。開始セクタ番号を変更しない。2.次の手順を実行する前に、パーティションテーブルを変更した後に再起動します。
カスペルド

partedはCentOS 6でext4パーティションのサイズを変更することを拒否します
。– reinierpost

21

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

sudo resize2fs /dev/drive_to_grow

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

disk / fs操作に関連するものと同様に、バックアップを作成し、十分に理解されたリカバリプロセスをテストすることを強くお勧めします。


使用する場合fdiskは、GPTではなくMBRを使用してください(たとえば、ハイブリッドMBRを使用)。
-stek29

2
私のdebian XENサーバーでは、で論理ボリュームのサイズを変更してlvextend +40G /dev/vg0/volumeNameから、vmでrootとしてログインし、入力resize2fs /dev/xvda2て実行中のルートファイルシステムを新しい最大値に拡大しました。それが必要かどうかはわかりませんが、このアクションの後でvmをリブートしました。すべて順調です。
rubo77

1
@ rubo77いいえ、再起動の必要はありません
Chris

5

一部の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

私を本当に助けたのは、END負の数に設定できることです。通常、サイズ変更されたパーティションの正確なLinuxサイズはわかりません-のEND引数の設定方法はわかりませんresizepart。に設定する-1sと、パーティションのサイズが最大に変更されます。
srigi

エラー:無効なトークン-1
starbeamrainbowlabs

3

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

1
サーバー障害へようこそ!リンクの腐敗を防ぐために、回答自体に手順を要約してください。
200_success 14

このプロセスを使用しましたが、パーティションの作成にgdiskを使用しました。これにより、データを保存し、2
TBを超える

2

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


おかげで、私はグラフィカルなものを使用していましたが、パーティションのサイズ変更をサポートしていません。cliプログラムでオプションを見ましたが、データを失うことなく確実に使用する方法を教えてもらえますか?ではresize NUMBER START END、STARTとENDはセクター番号ですか?どうやってそれを知るのでしょうか?
mimipc

パーティションのサイズ変更などの危険な操作を行う前に、データをバックアップすることを常にお勧めします。 partedユニットの選択をサポートしています-例えば、使用s分野のために、接尾辞BまたはGBバイトのため、%デバイスサイズの割合について、およびcylシリンダのを。
200_success

2

fdiskまたはcfdiskを使用してパーティションを変更(または再作成)し(開始境界を変更しないことを確認してください)、再起動してくださいresize2fs。ただし、一般的には、MBR / GPTの代わりにLVM-2を使用することをお勧めします。これにより、カーネルのリブートなしでこれらの変更を反映できるためです。


1

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

この場合の最高の「レスキュー」CDまたはUSBは
、レスキューイメージが必要なブート可能なgparted USBまたはCD ケースだと思います
。拡張するパーティションは最後のパーティションですが、そこからブートしてアンマウントできません。
sda1 =ブート(またはスワップ)
sda2 =スワップ(またはブート)
sda3 = /
未使用スペース

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

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

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

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

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

幸運を


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