가상화 프로그램에서 가상 디스크의 크기를 늘렸지만, Ubuntu가 아직 루트에 모든 공간을 사용하지 않습니다. 디스크는 먼저 하이퍼바이저 측에서 키워야 하며, 새 용량이 게스트에서 보이도록 해야 합니다. 이 과정은 단순한 ext4 파티션에 직접 마운트된 루트 /에 대해서만 관련이 있습니다.

파티션과 파일 시스템은 서로 다른 두 층입니다. 이 절차는 먼저 파티션 항목을 확장한 다음 ext4를 늘립니다. 앞선 점검이 머신과 일치할 경우에만 다음 단계로 진행하십시오.
ext4 루트, 디스크 및 파티션 식별하기
먼저 /에 마운트된 파일 시스템의 출처와 유형을 파악한 다음, 장치와 그 관계를 살펴보십시오 :
findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk
첫 번째 명령은 루트가 있는 파티션을 나타내야 하며, 두 번째 명령은 ext4를 나타내야 합니다. lsblk에서 이 파티션의 부모 디스크로 올라가십시오. 명확한 열을 얻으려면 검사를 다음과 같이 보완할 수 있습니다 :
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
예를 들어 디스크 이름을 추정하지 마십시오. 루트는 /dev/vda2에 있을 수 있습니다: 그러면 디스크는 /dev/vda이고 파티션 번호는 2입니다. NVMe의 경우, /dev/nvme0n1p2는 디스크 /dev/nvme0n1 및 번호 2에 해당합니다. 항상 자신의 출력에서 이러한 요소가 확인되도록 하십시오.
아래 명령에서 /dev/sdX는 전체 디스크의 자리 표시자로, 절대 파티션을 나타내지 않습니다. N은 실제 루트 파티션 번호를 나타냅니다. 실행하기 전에 이들을 교체하십시오; 이러한 예제를 그대로 복사하지 마십시오.
그런 다음 식별된 디스크의 파티션 테이블과 경계를 살펴보십시오. 다음 명령에서 /dev/sdX를 확인한 전체 디스크 경로로 교체하십시오 :
sudo fdisk -l /dev/sdX
fdisk -l은 여기서 테이블을 읽는 데 사용되며 수정하지 않습니다. 디스크 용량, 파티션 경계 및 순서를 비교하십시오. 사용 가능한 공간은 루트 파티션 바로 다음에 위치해야 하며, 두 파티션 사이에 다른 파티션이 없어야 합니다. fdisk 문서는 이 도구가 표시하는 테이블 정보를 설명합니다; 이러한 읽기는 실제 토폴로지를 확인하는 것을 대체하지 않습니다.
쓰기 전에 시행 착오 진단을 수행하십시오. 두 자리 표시자를 실제 식별된 디스크와 파티션 번호로 교체하십시오 :
sudo growpart --dry-run /dev/sdX N
--dry-run 모드는 도구가 테이블을 수정하지 않고 무엇을 할 것인지 보고합니다. 이는 인접한 사용 가능한 공간에서 올바른 파티션의 확장이 가능하다고 보고해야 합니다. Ubuntu growpart 문서는 디스크-파티션 번호 구문과 진단 작성을 설명합니다.
루트가 LVM, LUKS 또는 RAID를 거치거나 파일 시스템이 Btrfs 또는 XFS인 경우 — 또는 ext4가 아닌 경우 — 확장/논리 파티션이나 다른 층이 토폴로지를 모호하게 만드는 경우, 또는 루트 앞에 여유 공간이 없거나 인접하지 않거나 루트 다음에 다른 파티션이 있는 경우 중단하십시오. 또한 디스크가 확장되지 않거나 도구가 누락되거나 진단에서 기대되는 확장이 보고되지 않거나 오류가 반환되면 중단하십시오. 이러한 경우를 파티션 조작으로 우회하려고 하지 마십시오.
변경 준비 및 롤백
파티션 테이블을 수정하는 이 절차의 유일한 커맨드를 실행하기 전에 복원 가능한 백업이 있는지 확인하고, 복원 방법을 알고 있으며, 검사 출력이 저장되고 있는지 확인하십시오. 스냅샷은 실제로 복원할 수 있는 경우에만 롤백으로 유용합니다.
또한 머신의 복구 콘솔과 하이퍼바이저에 대한 접근 권한이 있는지 확인하고 Ubuntu 재부팅이 가능한지 확인하십시오. 중재 시간을 고려하십시오: 커널이 새로운 파티션 크기를 즉시 인식하지 않는 경우 재부팅이 필요할 수 있습니다. 백업, 콘솔 접근 또는 재부팅 가능성이 확보되지 않았으면 중단하십시오.
파일 시스템의 현재 상태를 기록하고 findmnt, lsblk, fdisk -l 및 시행 착오 진단의 결과를 보관하여 이후 비교하십시오 :
df -hT /
이 출력은 비교의 기준점이며, 파티션과 ext4가 이미 확장되었다는 증거는 아닙니다.
파티션 항목 확장하기
모든 이전 확인이 일치하고 데이터베이스가 준비되었으며 복구 접근과 재부팅이 가능할 때만 진행하십시오. 다음 명령은 파티션 테이블을 수정합니다. /dev/sdX와 N를 반드시 유효한 디스크와 번호로 교체하십시오; 첫 번째는 전체 디스크, 두 번째는 루트 파티션을 지정합니다.
sudo growpart /dev/sdX N
기대되는 결과는 인접한 사용 가능한 공간으로 루트 파티션 항목이 확장됐다는 보고입니다. growpart는 파티션의 크기를 변경하며, ext4 파일 시스템의 크기는 변경하지 않습니다.
명령이 오류를 반환하거나, 확장이 보고되지 않거나, 테이블에 대한 경고를 표시하거나, 다른 장치를 대상으로 하는 경우 중단하십시오. resize2fs를 연속해서 실행하지 마십시오; 무작위로 파티션을 재생성하거나 수정하려 하지 마십시오.
커널이 인식하는 크기 확인하기
작업 후 테이블과 장치를 대조하십시오. /dev/sdX를 확인된 디스크로 교체하십시오 :
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
sudo fdisk -l /dev/sdX
findmnt -no SOURCE /
같은 파티션은 여전히 루트를 가져야 하며, 커널이 lsblk에서 제공하는 현재 크기는 커질 것이고 확장된 파티션 항목과 일치해야 합니다. 테이블에서 보이는 변경만으로는 충분하지 않으며 커널이 여전히 이전 크기를 노출하고 있으면 안 됩니다.
크기가 변경되지 않았거나, 테이블 재탐색이 실패했거나, 테이블과 커널이 일치하지 않거나, 인식된 파티션이 /에 마운트된 것이 아닌 경우 중단하십시오; resize2fs를 실행하지 마십시오. 만약 재탐색이 필요하고 테이블 확장이 확인되었다면, 복구 콘솔을 사용하여 신중하게 재부팅 계획을 세우십시오. 재부팅 후, 소스, 유형 및 크기의 확인을 다시 수행하십시오. 예상한 크기가 여전히 인식되지 않거나 부팅 문제가 있는 경우 중단하고 머신의 진단을 요청하십시오; 무작위로 명령을 여러 번 실행하지 마십시오.
파티션 확인 후 ext4 확장하기
이 단계는 findmnt가 여전히 동일한 ext4 루트를 확인하고 lsblk가 해당 파티션이 실제로 새 크기를 가지고 있음을 확인할 경우에 한합니다. 자리 표시자 /dev/sdXN은 여기서 루트 파티션의 전체 경로를 나타내며 전체 디스크가 아닙니다. 확인된 출처로 교체하십시오; NVMe의 경우, 파티션 이름은 주로 /dev/nvme0n1p2와 같은 형태입니다.
sudo resize2fs /dev/sdXN
기대되는 결과는 이제 더 큰 파티션 내에서 ext4 파일 시스템의 확장입니다. resize2fs 문서는 이 작업을 테이블 수정과 구별합니다: resize2fs는 파티션을 변경하지 않습니다. 온라인 확장은 커널과 파일 시스템의 지원에 따라 결정되며 어떤 구성에서도 성공할 것이라는 가정은 피하십시오.
유형이 ext4가 아닐 경우, 파티션이 여전히 이전 크기를 유지할 경우, 출처가 이제 마운트된 루트와 일치하지 않거나 명령이 오류를 보고할 경우 중단하십시오. /를 분리하여 다른 절차를 임시로 수행하지 마십시오; 마운트된 루트에 대해 축소나 e2fsck를 수행하지 마십시오. 오류는 적절한 진단을 요구하며, 무작위로 새로운 명령을 실행할 필요는 없습니다.
사용 가능한 공간 확인하기
소스, 유형, 파티션 크기 및 사용 가능한 공간을 확인하는 것으로 마무리하십시오 :
findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
df -hT /
유효한 확장이 이루어졌다고 결론 내리려면 동일한 루트 출처, 유형 ext4, 커널에 의해 인식된 새 파티션 크기 및 df -hT /에서 나타나는 파일 시스템 용량이 필요합니다. 파티션의 크기와 df가 보고하는 공간은 같지 않습니다: ext4는 자신의 구조에 일부 용량을 사용합니다.
만약 df가 증가하지 않았거나, 값이 일치하지 않거나, 한 명령이 오류를 보고했다면, 작업이 성공적이었다고 선언하지 마십시오; growpart를 반복하지 마십시오. 진단을 위해 출력을 보관하십시오. fdisk로 확장할 비루트 ext4 데이터 파티션의 경우 과정이 다르며 이 절차가 적용되지 않습니다.
결론적으로: 루트를 정확히 식별하고, 연속된 공간과 시행 착오의 결과를 확인하고, 백업 및 복구를 준비한 후, 커널과 ext4의 인식된 파티션을 별도로 확인하십시오. 최소한의 차이가 있을 경우 다음 단계로 진행하지 마십시오.