Debianでext4パーティションサイズを拡張するにはどうすればよいですか


26

この構成のドライブがあります:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

478GBの未割り当て領域がありますが、現在/ dev / sda1にあるデータを失うことなく、この領域を/ dev / sda1に追加するにはどうすればよいですか?(ファイルシステムはext4です)。

注:これはSSHのみを備えたサーバーであり、gpartedなどを実行するためのGUIはありません。


ドライブをマウント解除した状態でサーバーをネットブートして使用できます。
2013年

この特定の項目は、SEサイト内で何度も取り上げられています。質問を投稿する前に、もう少し調査するのが最善でしょう。
mdpc

また、askubuntu.com / a / 937351/621883も参照してください特に、growpartとresize2fsを含む回答は役に立ちました。
klor

回答:


38

パーティションを拡大しますfdisk -u /dev/sda

p パーティションテーブルを印刷するには、sda1の番号、開始、終了、タイプを書き留めます。

削除するd::

同じ番号(1)で再作成し、開始および入力しますが、終了は大きくします(他のパーティションと重複しないように注意してください)。以下のためであるメガバイト境界上の位置合わせのものを試してみてください最後に、2048年から1を引い変更して、必要に応じてタイプの複数作るt(保持パーティションのためextXbtrfs、デフォルトのファイルシステムを83結構です)。

その後w、書き込みとq終了します。

パーティションテーブルは変更されますが、一部のパーティションがマウントされているため、カーネルはそれを考慮することができません。

ただし、使用中のパーティションが拡大されただけの場合は、次の方法でカーネルに新しいレイアウトを強制させることができます。

partx /dev/sda

それが失敗した場合、再起動する必要があります。システムは正常に起動するはずです。

次に、ファイルシステムのサイズを変更して、拡大したパーティションの範囲に広がります。

resize2fs /dev/sda1

これext4はライブFSでも問題なく機能します。


これは古いことは知っていますが、パーティションを削除してもデータは保持されますか?
カナダのルークレインステートモニカ

3
@CanadianLuke、はい、fdiskでパーティションを削除すると、パーティションテーブルのみが変更されます。同じサイズで再作成しても、まったく変更はありません。パーティションを縮小して、以前のパーティションの途中で別の論理パーティションまたは拡張パーティションを作成しない限り、データが変更されることはありません。その場合、その拡張/論理パーティションのパーティションレコードがそこのデータに上書きされます。
ステファンシャゼル

これは、NTFSパーティション(既存のボリューム、データを含む)でもうまく機能します。
ケニーエビット14

それは理にかなっているように思えますが、Linuxパーティションの終わりから始まる拡張Linux LVMおよびLinuxスワップ/ Solarisパーティションがあるとどうなりますか?これらのパーティションを削除する必要があります>?その場合、ファイルシステムが起動しないのではないかと心配しています。たとえば、同じ開始と終了でLinux LVMを使用している可能性があります。そして、私もデータを失いたくありません。
シアン

@cyanは、ext4 FSを含むLVM論理ボリュームのサイズを変更したり、LVMの物理ボリュームとして使用されるパーティションのサイズを変更したりするための手順が異なります。
ステファンシャゼル

7

パーティションがマウントされている間は安全に実行できません。つまり、他のパーティションを起動してそこから実行する必要があります。

gpartedこの目的のための素敵で簡単なGUIです。削除されたコメント交換で、「ディスプレイにアクセスできない」ために開始されないと述べました。これは、Xにいないことを意味します。GUIなので、それなしでは機能しません。

もちろん、使用する別のパーティションがない場合は、ライブCDなどが必要になります。通常、gpartedが付属しています。あなたの最善の策は、おそらく実際のgpartedライブCDです。これには、比較的最新の安定バージョンが含まれているように見えます(CDに収まります。

私は一度も問題を引き起こしたことは一度もありませんでしたが、もちろん最初にあなたの大切なものをバックアップしてください。


SSHアクセスのみがあるため、gpartedを使用できません(ヘッドレスサーバーです)。システムが/ dev / sdaで実行されないため、HDDをアンマウントできます。
セブ

1
システムに物理的にアクセスできないため、パーティションをアンマウントして変更できない場合は、運が悪いか、少なくとも非常に大ざっぱな領域にいると思います。たとえば、fdiskマウント中に使用しようとすると、 (x)pert、(c)hange number of cylindersを選択します。しかし、私はこれを行っていないので、他に選択の余地がない場合にのみそうします。
goldilocks

パーティションをアンマウントできると言ったばかりです。サーバー全体をネットブートして、別のサーバーから接続することもできます。これは、Live CDを使用する(GUIなしで)のと同じです。
2013年

@セブ:私の悪い、ごめんなさい。
goldilocks

2

これは非常に古い問題であることは知っていますが、多くの人がその解決策を探しています。

この例では、次の典型的な状況があります。最初は単一のパーティションで、最後にはスワップパーティションがあります。スワップの負荷が大きくなる可能性があり、回転ディスクの終わりが最も遅い部分であるため、良くありません。私が提案するものは?

  1. 最初にブートパーティションを作成します。なぜ始めに?多くのツールが、2TBを超える大きなディスクの終わりに問題があるためです。ブートパーティションがスワップパーティションになるはずです。これはパフォーマンスのためです。ディスクの残りは他のパーティションに使用する必要があります。

しかし、この状況ではどうでしょうか?sda1を拡張することはお勧めしません。/homeおよびとしてマウントされたsda1およびsda2の後に他のパーティションを作成することをお勧めし/usrます。そのディレクトリには、ほとんどのユーザーおよびシステムデータが格納されており、そのディレクトリから新しいパーティションに安全にデータを移動することができます。

  1. しかし。(2番目の「しかし」)現在の構造を維持したい場合は、最初にスワップパーティションを削除する必要があります。スワップオフを行う必要があります/etc/fstab。swaponでスワップが使用されていない場合(manを参照)、パーティションツール(fdiskなど)でスワップを削除できます。

    このパーティションがない場合は、sda1を拡大できます。使用fdiskするには、まずパーティションを印刷する必要があります。それがどこから始まるかを思い出すためです。次に、「d」キーを使用してパーティションを削除します。パニックにならないでください、ハードドライブには何も書き込まれません:)。印刷後、ディスク上にパーティションは存在しません。

    次に新しいパーティションを作成しますが、注意してください。どのセクターの元のパーティションが開始されたかを確認します。同じ番号を書きます。最後に見てください。fdisk最後に利用可能なセクターの入力を求められます。計算機を使用して、必要なスワップをキロバイト単位で割り当てます。それを2倍し、fdiskによって指示された最後のセクター番号からこの数を引きます。パーティションを作成します。これを印刷し(まだfdiskの一時メモリにあります)、見た目はすべて問題ありません。

    この後、「w」キーを押すと、ドライブに新しいパーティションが書き込まれます。すべての情報が同期されているか、同期に失敗したという情報が表示されます。失敗した場合は、コマンドpartx / dev / sdaを呼び出して同期を実行できます。それでも失敗する場合は、システムを再起動する必要があります。再起動後、大きなパーティションを準備しましたが、その上のファイルシステムはまだ小さくなっています。あなたはそれを成長させる必要があります。EXT4はオンザフライで成長可能です:)、使用resize2fs /dev/sda1してください。

    再起動などを再マウントする必要はありません。最後に、スワップパーティションを復元する必要があります。もう一度fdiskを使用し、新しいパーティションをスワップとして作成します。「w」を書き込んだ後、デバイスsda2が復元されます。を使用してスワップ構造を準備しmkswap /dev/sda2、スワップに関するコメントを削除して/etc/fstab、最後に実行しますswapon -a。swaponまたはtopコマンドを使用すると、スワップがアクティブになります。

とても長い説明です。私はそれがすべてのために使用できることを願っています。私の意見では、xfsファイルシステムの方がはるかに優れていることに注意してください。残念ながら、このfsは一時的に別の場所にコピーすることなく縮小をサポートしていませんが、縮小はほとんど使用されません。それは素晴らしいことです。xfsは自分のメタデータの場所をほとんど必要とせず、ext4と比較して多くの点で高速です。

別のヒントとして、LVMをパーティション分割の中間層として使用することをお勧めします。その後、サイズ変更ははるかに簡単です。パフォーマンスは同等ですが、もちろん、HDD管理を組み合わせて使用​​できます。一般的なrawパーティションとLVMで使用できます。


素晴らしい言語修正のためのslmに感謝します:D
Znik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.