>  기사  >  운영 및 유지보수  >  파티션 용량이 부족한 경우 Linux에서 파티션 용량을 확장하는 방법은 무엇입니까?

파티션 용량이 부족한 경우 Linux에서 파티션 용량을 확장하는 방법은 무엇입니까?

齐天大圣
齐天大圣원래의
2020-11-19 14:28:593350검색

일상 업무에서 특정 파티션의 남은 용량이 부족한 문제를 자주 접하게 되므로 Linux 서버에서 파티션을 확장하는 방법을 알아야 합니다. 파티션 확장에는 두 가지 상황이 있습니다

  • LVM 파티션 확장

  • LVM이 아닌 파티션 확장

LVM 파티션 확장

일반적으로 LVM을 사용하는 것이 좋습니다. 파티션. LVM 도입에 대해서는 여기서 물리 볼륨, 논리 그룹, 논리 볼륨 등에 대해 자세히 설명하지 않겠습니다. LVM에 대한 다른 두 기사를 읽을 수 있습니다.

시나리오: /www 디렉토리는 웹사이트와 관련된 디렉토리입니다. 이 디렉토리에 마운트된 파티션은 원래 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에 남은 공간이 있는지 확인해야 합니다. 그렇지 않은 경우 먼저 vgwww에 pv를 추가해야 합니다.

# 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가 이미 존재하는 경우 vgwww 논리 볼륨 그룹에 새 pv를 추가하세요.

# 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 파일 시스템용) 또는 resize2fs(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

확장 작업을 시작합니다

# 首先卸载挂载点

# 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

특별한 주의가 필요한 또 다른 점: 이 파티션의 파일 시스템에 쓰면 안 됩니다. 그렇지 않으면 이전 데이터가 손실됩니다.

더 많은 관련 기술 기사를 보려면 linux 시스템 튜토리얼을 방문하세요. 칼럼!

위 내용은 파티션 용량이 부족한 경우 Linux에서 파티션 용량을 확장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.