400GBのディスクと320GBのext4パーティションがあります。 ext4パーティションを拡張して、左側のスペース(80GBの空きスペース)を使用したいと思います。
+--------------------------------+--------+
| ext4 | Free |
+--------------------------------+--------+
どうすればこれができますか?
resize2fs
を使用している人を見たことがありますが、パーティションのサイズを変更するかどうかはわかりません。
別の解決策はfdisk
を使用することですが、パーティションを削除してデータを失いたくありません。ファイルを失うことなく、単にパーティションを拡張するにはどうすればよいですか?
注:LVMを使用せずにマウントされていないデータパーティションについて話していて、バックアップがありますが、リカバリに時間を費やしたくないです。
パーティションをアンマウントして開始する必要があります。アンマウントできない場合(たとえば、ルートパーティションであるか、システムで実行する必要がある何か)、代わりに System Rescue CD のようなものを使用します。
parted
、またはGUIが必要な場合はgparted
を実行し、追加のスペースを使用するようにパーティションのサイズを変更します。 gparted
は、質問で描いたものと非常によく似た、すてきなグラフィック表現を提供するので、私は好みます。
resize2fs /dev/whatever
e2fsck /dev/whatever
(あなたが安全側にいるかどうかを知るためだけです)
パーティションを再マウントします。
これが失敗するのを見たことがありませんが、最初にデータをバックアップしてください!
はい、パーティションがすでにソートされている場合は、EXT4 fsをオンラインで拡張できます。パーティションをソートしましたか? LVMをお持ちですか?
Sudo resize2fs /dev/drive_to_grow
fdisk
はパーティションのサイズを変更しますが、これはルートパーティションの場合(または実際にマウントされたパーティションの場合)、最初にマウント解除する必要があります。だからオフラインの可能性が最も高い!
ディスク/ fsの操作に関連するものと同様に、バックアップを取り、テストし、よく理解した回復プロセスを実行することを強くお勧めします。
一部の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
parted
はresize
パーティションとそのファイルシステムを使用できます。
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
fdisk
またはcfdisk
を使用してパーティションを変更(または再作成)して(開始境界を変更しないように注意してください)、再起動してresize2fs
。ただし、一般に、MBR/GPTではなくLVM-2を使用することをお勧めします。これにより、カーネルの再起動なしでこれらの変更を取り込むことができます。
まだこのスレッドを読んでいる人のためにこれをどのように行うかを明確にするために。
サイズを変更するブートパーティションである場合は、単にLive Linuxであるbootcdまたはbootusb "rescue"ドライブからブートする必要があります。これにより、変更したいドライブ以外のマシンでLinuxを実行できます。
この場合の最良の「レスキュー」CDまたはUSBは、ブート可能なgparted USBまたはCDだと思います
レスキュー画像が必要な場合
1。拡張するパーティションは最後のパーティションですが、そこから起動したため、マウントを解除できません。
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をチェックして、サイズが変更されたことを確認します)
この方法でファイルを紛失したり、ドライブを破損したことはありません。
幸運を
現在のユーザーを中断することなく、CentOS 7を実行しているDellサーバーに/ scratchとしてマウントされたディスクを拡張するように求められました。これは、通常のGPTディスクラベルを持つRAID 0ディスク上のXFSパーティションでした。これはext4パーティションでもほぼ同じように機能します-後述します。
これは、システムの操作をマウント解除、再起動、または中断することなくこれを実行した方法です。 Linuxコマンド(およびDellのRAIDツール)を使用しました:
/sys/block/sdb/size
_の値はまだ低い値でした。これは次のコマンドを使用して修正されました:_echo 1 > /sys/block/sdb/device/rescan
_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
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
parted
はパーティションの命名をサポートしていないため、この時点でfdisk
を使用して、パーティションに以前と同じ名前を付けました。細かいディテール。partprobe /dev/sdb
_(および適切な手段として_partprobe /dev/sdb1
_)を使用して、OSにパーティションテーブルを再度読み取らせました。最初のコマンドだけが実際に違いを生んだと思います。xfs_growfs -d /scratch
_を使用したところ、パーティションを最終的なサイズに拡張するのにわずか1.6秒かかり、新しく拡張されたディスクがいっぱいになりました。これはext4ボリュームでも機能します。唯一の違いは、_resize2fs /dev/sdb1
_の代わりに_xfs_growfs -d /scratch
_を使用することと、xfsの代わりにext4に正しいパーティションタイプ番号を使用することです。 fdiskコマンドは、ext4を含む一般的なディスクシステムのタイプ番号をリストできます。
受け入れられた答えはやや古くなっています:ext4ファイルシステムのサイズ変更はオフラインよりもonlineのほうが適切です。
LVMを使用している場合を除いて、基になるパーティションを拡張することはおそらく難しいでしょうandボリュームグループに空き領域がある。パーティションをオンラインで拡張するには、fdisk
またはparted
を使用できます。次に、kpartx <device>
を実行して、変更をカーネルに通知する必要がありました。 LVMを使用している場合、ボリュームをpvresize
する前に、サイズ変更したばかりのパーティションをlvresize
する必要があります。
最後に、ファイルシステムをresize2fs
で発行できます。