この構成のドライブがあります。
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はありません。
パーティションを拡大します:fdisk -u /dev/sda
。
p
パーティションテーブルを印刷するには、sda1の番号、開始、終了、タイプをメモします。
削除してください:d
:
同じ番号(1)で再作成し、開始して入力しますが、endを大きくします(他のパーティションと重複しないように注意してください)。 endのメガバイト境界に合わせて、2048-1の倍数にします。必要に応じて、t
を使用してタイプを変更します(extX
またはbtrfs
ファイルシステム、デフォルトの83
結構です)。
次に、w
で書き込み、q
で終了します。
パーティションテーブルは変更されていますが、一部のパーティションがマウントされているため、カーネルはそれを考慮できません。
ただし、使用中のパーティションが拡大されただけの場合は、カーネルに次のコマンドで新しいレイアウトを強制することができます。
partx /dev/sda
それが失敗した場合は、再起動する必要があります。システムは問題なく起動するはずです。
次に、ファイルシステムのサイズを変更して、拡大されたパーティションの範囲まで拡大します。
resize2fs /dev/sda1
ext4
はライブFSでも問題なく機能します。
パーティションがマウントされている間は安全に実行できません。つまり、他のパーティションを起動してそこから実行する必要があります。
gparted
は、この目的のための素敵で簡単なGUIです。削除されたコメント交換で、「表示にアクセスできない」ため開始しないと述べましたが、これはXに参加していないことを意味します。 GUIなので、それなしでは機能しません。
もちろん、使用する別のパーティションがない場合は、ライブCDまたは何かが必要になります-Ithink通常、gpartedが付属しています。あなたの最善の策はおそらく実際の gparted live CD であり、これはかなり最近の最新の安定バージョンを持っているように見えます(そしてに適合します)[〜#〜] cd [ 〜#〜]、「ライブCD」が急速に「ライブDVD」になりつつあるため、これは素晴らしいことです)。
私は問題を引き起こしたわけではありませんが、もちろん最初にあなたの重要な気分を元に戻します。
私はこれが非常に古い問題であることを知っていますが、多くの人がその解決策を探しています。
この例では、次の典型的な状況があります。最初に単一のパーティションがあり、最後にスワップパーティションがあります。スワップに大きな負荷がかかる可能性があり、回転したディスクの最後が最も遅い部分であるため、これは良くありません。私が提案することは?
しかし、この状況ではどうでしょうか? sda1の拡張はお勧めしません。 /home
および/usr
としてマウントされたsda1およびsda2の後に他のパーティションを作成することをお勧めします。そのディレクトリには、ほとんどのユーザーデータとシステムデータが格納され、そのディレクトリから新しいパーティションにデータを安全に移動できます。
だが。 (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と比較して多くの点で高速です。
もう1つのヒントは、一部のLVMをパーティション化の中間層として使用することです。その後、サイズ変更ははるかに簡単です。もちろんパフォーマンスは同等ですが、HDD管理を組み合わせて使用できます。一般的なrawパーティションとLVMで使用できます。