ホームページ  >  記事  >  運用・保守  >  Linux でパーティションの容量が足りない場合にパーティションの容量を拡張するにはどうすればよいですか?

Linux でパーティションの容量が足りない場合にパーティションの容量を拡張するにはどうすればよいですか?

齐天大圣
齐天大圣オリジナル
2020-11-19 14:28:593325ブラウズ

日常業務では、特定のパーティションの残り容量が不足するという問題がよく発生します。そのため、Linux サーバーのパーティションを拡張する方法を知る必要があります。パーティションの拡張には、次の 2 つの状況があります。

  • #LVM パーティションの拡張

  • #非 LVM パーティションの拡張
#LVM パーティションの拡張

通常、パーティションの柔軟な拡張を容易にする 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。