/dev/sdb
크기가 10G인 가상 디스크( 로 표시됨)가 있는 VM이 있습니다.
관리자는 가상 디스크의 크기를 60G로 늘렸습니다.
머신을 재부팅하고 이제 디스크가 더 커진 것을 확인했습니다.
root@DMZMHLX3:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 0 60G 0 disk
└─sdb1 8:17 0 10G 0 part /app
...
이제 다른 파티션을 추가하고 싶습니다.
gdisk는 디스크 크기가 60G이지만 마지막으로 사용할 수 있는 섹터는 이전 10G 디스크 이미지 크기에 해당하는 섹터라고 알려줍니다.
root@DMZMHLX3:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 125829120 sectors, 60.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 20969471 10.0 GiB 8300
마지막으로 사용 가능한 섹터는 20971486이 아닌 125829120과 같아야 합니다.
따라서 디스크 이미지 크기가 증가하고 VM에서 변경 사항을 확인하더라도 새로 사용 가능한 공간을 어떻게 사용해야 할지 모르겠습니다.
fdisk는 다음을 보여줍니다:
root@DMZMHLX3:~# fdisk -l /dev/sdb
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
Disk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D
Device Start End Sectors Size Type
/dev/sdb1 2048 20969471 20967424 10G Linux filesystem
불일치를 인식합니다.
GPT PMBR 크기 불일치(20971519 != 125829119)는 w(rite)로 수정됩니다. 그러나 fdisk를 작성하려고 하면 실패합니다.
Command (m for help): w
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
root@xxx:~#
이 문제를 어떻게 해결할 수 있나요?
궁극적인 목표는 기존 파티션의 크기를 늘리는 것이지만 새 파티션만 추가해도 이미 만족스러울 것입니다.
답변1
에 따르면잘못된 인수로 인해 파티션 fdisk 크기 조정이 실패함게시물을 보면 귀하가 사용하는 것으로 보입니다.나뉜(예를 들어 sudo parted -l
) 그리고 "고치다"파티션 테이블이 전체 디스크를 포함하지 않는 문제입니다.
해당 문제를 해결하기 위해 해당 도구를 사용하여 수정 사항을 적용한 후에는 명령을 사용하여 앞으로 나아가고 나중에 sudo fdisk /dev/sdb1
실행하여 sudo resize2fs /dev/sdb1
변경 사항을 적용하면 됩니다.
중요한: 디스크 파티션을 변경하기 전에 전체 시스템을 백업하는 것을 잊지 마십시오.
나는 이 문제를 비교적 간단하게 해결할 수 있었습니다. parted를 설치했는데 실행했을 때 파티션 테이블이 전체 디스크를 포함하지 않는다는 메시지가 표시되어(duh) 수정/취소를 요청했고 이에 대해 Fix로 응답했습니다.
분명히 를 사용하여 파티션을 전체 크기로 수정할 수 있었기 때문에 트릭이 수행되었지만 나중에 변경 사항을 적용하려면
sudo fdisk /dev/vda
실행해야 했습니다 .sudo resize2fs /dev/vda3
추가적으로 다른 분들의 조언도 있습니다.잘못된 인수로 인해 파티션 fdisk 크기 조정이 실패함유용하고 유익할 수 있는 답변과 의견의 형태로 게시하세요.
지원 리소스
답변2
게시물 Linux에서 VMware 디스크의 파티션 확장 다음 절차가 있습니다.
- parted를 사용하여 GPT 테이블을 복구합니다.
sudo parted -l
이러한 디스크에 액세스하는 모든 서비스를 중지하고 디스크를 마운트 해제합니다. 예:
sudo systemctl stop jenkins.service sudo systemctl stop apache2.service sudo umount /dev/sdb1
아래 설명된 대로 GParted 디스크에서 부팅하면 이 단계를 피할 수 있습니다.
fdisk에서 파티션을 확장합니다.
sudo fdisk /dev/sdb
VM 내에서 디스크를 확장하려면 디스크를 사용하고 있을 수 있는 모든 서비스를 중지해야 하므로 다음을 사용하여 VM을 부팅하면 이를 방지할 수 있습니다. GParted.
기사 GParted를 사용하여 Linux 기본 파티션의 디스크 크기 늘리기 전체 과정을 자세히 설명합니다.
답변3
그 이유는 GPT에는 디스크 끝에 배치된 파티션 테이블의 백업 복사본이 있으므로 디스크에 "새 끝"이 있어도 백업이 자동으로 해당 디스크로 이동하지 않고 사용 가능한 블록을 이전 블록으로 제한하기 때문입니다. "영역".
간단히 GPT를 "zap"(삭제)하고( x
그런 다음 z
에서 gdisk
) 동일한 파티션 항목을 사용하여 새 파티션을 생성할 수 있습니다(동일한 시작 및 선택적으로 동일한 끝을 입력하여).
UEFI 부팅을 수행하는 경우 유지해야 할 부팅 코드가 없어야 하므로 보호 MBR도 제거하는 것이 좋습니다.
x
편집: 실제로 간단하게 and then e
in 을 수행할 수 있는 것 같습니다 gdisk
.