日常業務では、特定のパーティションの残り容量が不足するという問題がよく発生します。そのため、Linux サーバーのパーティションを拡張する方法を知る必要があります。パーティションの拡張には、次の 2 つの状況があります。
通常、パーティションの柔軟な拡張を容易にする LVM の使用をお勧めします。 LVM の導入に関しては、物理ボリューム、論理グループ、論理ボリュームなどについてはここでは詳しく説明しません。LVM に関する私の他の 2 つの記事を読むことができます。
シナリオ: /www ディレクトリは Web サイト関連のディレクトリです。このディレクトリにマウントされたパーティションは LVM を使用します。元々、このディレクトリには 1G のスペースがありましたが、システムが実行されると、残りのスペースはダウンロードのみになります。 100M未満です。次に、パーティションを拡張する必要があります。準備作業、実装シナリオ
# pvcreate /dev/sdb1 # vgcreate vgwww /dev/sdb1 # lvcreate -l 255 vgwww # mkfs.ext4 /dev/vgwww/lvol0 # mount /dev/vgwww/lvol0 /www # dd if=/dev/zero of=/www/bigfile bs=1M count=900 # df -h …… /dev/mapper/vgwww-lvol0 988M 903M 19M 98% /wwwパーティションの拡張
まず、残りのスペースがあるかどうかを確認する必要がありますvgwww では、そうでない場合は、まず pv を vgwww に追加する必要があります。
# vgdisplay vgwww …… Free PE / Size 0 / 0 <=== 没哟剩余空间了 VG UUID xdw96k-xZNv-tmVf-Pkcx-SX7T-C1tz-ZZq3HG上記の情報から、vg に空き領域が残っていないことがわかります。次に、この vg に pv を追加する必要があります。未使用の pv があるかどうかを確認します。ない場合は、最初に pv を作成する必要があります。
# pvscan PV /dev/sdb1 VG vgwww lvm2 [1020.00 MiB / 0 free] Total: 1 [1020.00 MiB] / in use: 1 [1020.00 MiB] / in no VG: 0 [0 ]ご覧のとおり、利用可能な pv はありません。次に、pv
# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created. # pvscan PV /dev/sdb1 VG vgwww lvm2 [1020.00 MiB / 0 free] PV /dev/sdc1 lvm2 [1023.00 MiB] Total: 2 [<2.00 GiB] / in use: 1 [1020.00 MiB] / in no VG: 1 [1023.00 MiB]pv を作成し、すでに存在し、新しい pv を vgwww 論理ボリューム グループに追加します。
# vgextend vgwww /dev/sdc1 Volume group "vgwww" successfully extended # vgdisplay vgwww …… Free PE / Size 255 / 1020.00 MiB VG UUID xdw96k-xZNv-tmVf-Pkcx-SX7T-C1tz-ZZq3HG現在、vg には使用されていない PE がさらに 255 個あります。次のステップは、LV を拡張することです。
# lvresize -l +255 /dev/vgwww/lvol0 Size of logical volume vgwww/lvol0 changed from 1020.00 MiB (255 extents) to 1.99 GiB (510 extents). Logical volume vgwww/lvol0 successfully resized. # lvdisplay --- Logical volume --- …… LV Size 1.99 GiB <=== lv已经变为了1.99G了 ……この時点では、LV サイズは大きくなっていますが、/dev/mapper/vgwww-lvol0 ファイル システムは大きくなっていません。
# df -h 文件系统 容量 已用 可用 已用% 挂载点 …… /dev/mapper/vgwww-lvol0 988M 903M 19M 98% /www現時点では、それを処理するために xfs_growfs (xfs ファイル システムの場合) または raise2fs (ext ファイル システムの場合) も必要です。
# 该主机使用的是ext4文件系统 # resize2fs /dev/vgwww/lvol0 # df -h 文件系统 容量 已用 可用 已用% 挂载点 …… /dev/mapper/vgwww-lvol0 2.0G 904M 982M 48% /wwwこれでファイルシステムの拡張は完了です。 非 LVM パーティションの拡張
最近、この状況に遭遇しました。 Alibaba Cloud サーバーのルート パーティションがほぼいっぱいになっている友人がいますが、元の 40G クラウド ディスクが後に 20G に追加されました。彼は私のところに来て、すでに 20G を追加したのに、まだ 40G が表示されていると言い、問題を解決するのを手伝ってほしいと言いました。
残念ながら、lvm はルート ディレクトリでは使用されていないため、しばらくどうすればよいかわかりません。その後、関連情報を検索したところ、解決策が見つかりました。ただし、この解決策には制限があります。つまり、拡張する必要があるパーティションの場合、このパーティションはディスクの最後のパーティションである必要があります。 次は最初にシナリオをシミュレートします: /bak ディレクトリは別のパーティションにマウントされます。パーティションは最初は 500M に分割されていましたが、今は拡張する必要があります。# df -h 文件系统 容量 已用 可用 已用% 挂载点 …… /dev/sdd1 497M 26M 472M 6% /bak拡張を開始しますOperation
# 首先卸载挂载点 # fdisk /dev/sdd …… 命令(输入 m 获取帮助):p …… 设备 Boot Start End Blocks Id System /dev/sdd1 2048 1026047 512000 83 Linux #记住开始点,即2048。然后删除该分区,重新建立分区 命令(输入 m 获取帮助):d 已选择分区 1 分区 1 已删除 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-2097151,默认为 2048):2048 Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151): 将使用默认值 2097151 分区 1 已设置为 Linux 类型,大小设为 1023 MiB 命令(输入 m 获取帮助):w # partprobeこのとき、lsblkコマンドでパーティションサイズが大きくなったことが確認できますが、df -hの結果は変わっていないため、xfs_growfsコマンドで処理する必要があります。
# xfs_growfs /dev/sdd1 # df -h 文件系统 容量 已用 可用 已用% 挂载点 …… /dev/sdd1 1020M 26M 995M 3% /bak特別な注意が必要なもう 1 つの点: ファイル システムをパーティションに書き込んではなりません。そうしないと、前のデータが失われます。
その他の関連技術記事については、
Linux システム チュートリアル以上がLinux でパーティションの容量が足りない場合にパーティションの容量を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。