/ 경로가 가득 찬 가상 머신으로 Centos 서버가 있습니다. 그래서 파티션 크기를 50GB에서 70GB로 조정하려고 합니다.
나는 이 가이드를 따랐다 https://www.thomas-krenn.com/de/wiki/LVM_vergr%C3%B6%C3%9Fern
따라서 첫 번째 단계는 가상 머신 기본 설정의 크기를 늘리는 것입니다.
그 후 cfdisk를 사용하여 새 파티션을 만들었습니다.
앞으로:
sda1 NC Primary GPT 53687.10 *
Pri/Log Free Space 21474.84 *
작성 후:
sda1 NC Primary GPT 53687.10 *
sda2 Primary Linux 21474.84 *
가이드님 말씀대로 재부팅하지 않고 먼저 재부팅하고 partprobe 명령어를 사용했습니다.
partprobe
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.
Fix, by moving the backup to the end (and removing the old backup)?
Warning: Not all of the space available to /dev/sda appears to be used, you
can fix the GPT to use all of the space (an extra 41943040 blocks) or
continue with the current setting?
Warning: WARNING: the kernel failed to re-read the partition table on
/dev/sda (Device or resource busy). As a result, it may not reflect all of
your changes until after reboot.
이 메시지를 받은 후 확신이 없어서 결국 재부팅했습니다.
그런 다음 새 파티션을 PV로 초기화하려고 합니다.
[root]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 vg_atcrushftp lvm2 a-- 49.31g 10.00g
그리고 다음과 같은 오류 메시지가 나타났습니다:
[root]# pvcreate /dev/sda2
Can't open /dev/sda2 exclusively. Mounted filesystem?
이제 확실하지 않아서 df를 통해 찾았습니다.
[root]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_atcrushftp-lv_root
35G 8.4G 25G 26% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda2 477M 121M 331M 27% /boot
/dev/sda1 200M 260K 200M 1% /boot/efi
//192.168.0.53/pictures
[root]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_atcrushftp-lv_root
ext4 36380264 8720856 25804740 26% /
tmpfs tmpfs 1962068 0 1962068 0% /dev/shm
/dev/sda2 ext4 487652 123566 338486 27% /boot
/dev/sda1 vfat 204580 260 204320 1% /boot/efi
mount 명령은 다음을 보여줍니다.
[root]# mount
/dev/mapper/vg_atcrushftp-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda2 on /boot type ext4 (rw)
/dev/sda1 on /boot/efi type vfat (rw,umask=0077,shortname=winnt)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
제가 만든 파티션이 /boot라서 사용할 수 없는 것 같습니다. 이는 /boot의 정보가 손상되었음을 의미합니까? 시작하기 전에 스냅샷을 만들었습니다. 이렇게 하면 이전 상태를 복원할 수 있습니다.
다음에 무엇을 해야 합니까? 데이터 손실 없이 파티션 크기를 조정하고 싶습니다.
답변1
GPT 드라이브의 LVM 파티션 크기 조정
주문하다:
pvs Shows physical volume
lvs Shows logical volume
vgs Shows volume groups
vgdisplay Shows volume groups including mount points
lsblk Shows block hierarchy (plate, partition, LVM)
필요한 단계의 기본 흐름은 기본적으로 다음과 같습니다.
- 새 공간을 사용하려면 LVM 파티션의 크기를 조정하십시오.
- 새로 크기가 조정된 공간을 사용하려면 LVM 파티션의 물리 볼륨 크기를 조정하십시오.
- 볼륨 그룹 내의 논리 볼륨 크기를 새 크기로 조정합니다.
- 크기에 맞게 각 논리 볼륨의 파일 시스템 크기를 조정합니다.
경고: 전에 백업을 만드세요
복구 모드로 재부팅
또는 온라인 상태에서는 파티션 크기를 조정할 수 없으므로 Live CD/USB 환경으로 재부팅하세요.
(GPT 파티션 디스크이므로 FDisk 대신 Parted 도구를 사용해야 합니다.)
복구 모드 또는 라이브 환경에서 아직 터미널이 없는 경우 터미널을 열고 다음 명령을 입력하여 Parted를 시작하여 어레이를 확인하십시오.
$ sudo parted /dev/sda
GNU Parted 2.3
Using /dev/sda Welcome to GNU Parted!
Type 'help' to view a list of commands.
이제 "(parted)" 프롬프트가 생겼습니다. 먼저, 사용하는 측정 단위를 섹터로 전환해야 합니다. 다음 명령을 실행하여 이를 수행하십시오.
(parted) u s
이제 "print" 명령을 사용하여 기존 파티션을 나열하십시오. 다음과 비슷한 내용이 표시됩니다.
(parted) print
Model: INTEL SRCSATAWB (scsi)
Disk /dev/sda: 19521474560s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 1953791s 1951744s ext4 Boot boot
2 (red)1953792s(/red) 19521474526s 19519520735s MYSERVER_HDD lvm
참고: GPT 테이블이 디스크 끝에 없다는 경고 메시지가 표시될 수 있습니다. 이는 디스크 크기가 시스템 예상보다 작음을 나타냅니다(어레이 크기를 조정했기 때문에 기억하시나요?). 이 문제를 해결할 것인지 묻는 메시지가 표시됩니다. "F"를 입력하고 Enter를 누르세요. 그러면 커널이 아직 변경 사항을 인식하지 못한다는 경고가 표시될 수 있습니다. "I"를 입력하고 Enter 키를 눌러 "무시"에 응답합니다. Parted를 사용하는 경우 후자의 메시지를 여러 번 입력하라는 메시지가 나타날 수 있습니다. 대답은 매번 "무시"입니다. 이 환경에서는 어쨌든 마지막에 재부팅하므로 현재 커널은 이러한 변경 사항을 알 필요가 없습니다.
위에서 빨간색으로 강조 표시된 항목은 장치의 전체 섹터(새로 확장된 어레이의 전체 크기를 나타냄)와 두 번째 파티션의 시작 섹터입니다.귀하의 번호를 다시 한번 확인하여 정확한지 확인하시기 바랍니다. 여기에 실수가 있으면 데이터가 손상될 수 있습니다.
이제 배열에서 새로 생성된 공간을 모두 사용하도록 두 번째 파티션의 크기를 조정하겠습니다. 안타깝게도 GPT의 크기는 조정할 수 없습니다. 대신 파티션을 삭제하고 다시 생성해야 합니다.무섭게 들리겠지만 이 프로세스에서는 드라이브의 데이터가 변경되지 않으므로 걱정하지 마세요.단순히 드라이브에 있는 파티션의 시작과 끝과 관련된 기하학적 데이터를 삭제합니다. 다음 명령을 사용하여 두 번째 파티션을 삭제합니다.
(parted) rm 2
이제 이를 대체할 새 파티션을 생성해 보겠습니다. 다음을 입력:
(parted) mkpart
파티션 이름을 입력하라는 메시지가 표시됩니다. 이전과 동일한 이름을 지정하거나 필요한 경우 새 이름을 지정합니다.
Partition name? []? MYSERVER_HDD
그런 다음 파일 시스템 유형을 묻는 메시지가 나타납니다. 여기서는 LVM을 지정할 수 없으므로 Enter를 눌러 "ext2"를 수락하면 됩니다. 나중에 변경하겠습니다.
File system type? [ext2]?
그런 다음 시작 섹터를 제공하라는 메시지가 표시됩니다. 이전에 기록한 두 번째 파티션의 시작 값을 지정합니다. 끝에 문자 "s"를 쓰지 마십시오.
Start? 1953792
그런 다음 종료 섹터를 제공하라는 메시지가 표시됩니다. 앞에서 기록한 총 드라이브 크기에서 1을 뺀 값을 지정합니다. 실제 값을 지정하면 값이 "장치 외부"라는 오류 메시지가 표시됩니다. 이것이 바로 해당 제한 내에 있는 값을 지정하는 이유입니다.
End? 19521474559
그러면 시스템이 실제로 해당 위치에 파티션을 생성할 수 없다는 메시지가 표시됩니다(디스크에 공간을 차지하는 다른 파티션이 있기 때문). 따라서 시스템은 다음으로 가장 가까운 값(남은 공간 중 가장 큰 값)을 제공합니다. 배열에서. 그냥 "Y"라고 대답하세요.
Warning: You requested a partition from 1953792s to 19521474559s. The
closest location we can manage is 1953792s to 19521165533s. Is this
still acceptable to you? Yes/No?
이제 다음과 같이 파티션 유형을 LVM으로 변경해야 합니다.
(parted) toggle
Partition number? 2
Flag to Invert? lvm
이제 파티셔닝이 완료되었으므로 quit 명령을 사용하여 종료합니다.
(parted) quit
서버를 다시 시작하세요
정상적으로 시작됩니다. parted 또는 fdisk를 사용하여 드라이브를 확인하면 이제 어레이에 새로 추가된 공간을 포함한 전체 파티션 크기가 표시되어야 하지만 아직 이를 사용하는 것은 없습니다. 이제 다음 명령을 사용하여 물리 볼륨의 크기를 조정하여 LVM에 새 공간을 사용하도록 지시할 차례입니다.
$ sudo pvresize /dev/sda2
완료되면 이제 다음 명령을 실행하여 LVM 물리 그룹에서 새로운 여유 공간(여유 범위로 표시됨)을 확인할 수 있습니다:
$ sudo pvdisplay
이제 새로 얻은 여유 공간을 LVM 논리 볼륨에 할당할 수 있습니다. 먼저 정의된 모든 논리 볼륨의 목록을 가져옵니다.
$ sudo lvdisplay
공간을 추가하려는 각 논리 볼륨의 "LV 이름"을 기록해 두십시오.
이제 논리 볼륨의 크기를 조정해 보겠습니다. 이를 수행하는 방법에는 두 가지가 있습니다. 한 가지 접근 방식은 논리 볼륨의 새 크기를 정의하는 절대값을 지정하거나 기존 크기에 추가될 값을 지정하는 것입니다. 첫 번째 예에서는 /dev/myserver/mylogicvolume이라는 논리 볼륨의 크기를 절대 크기 20GB로 변경하겠습니다.
$ sudo lvextend -L20G /dev/myserver/mylogicalvolume
...이렇게 하면 이전 크기에 관계없이 /dev/myserver/myologicalvolume 논리 볼륨의 크기가 20GB로 변경됩니다. 기존 크기는 증가하지 않습니다. 또는 다음을 사용하여 기존 크기에 공간을 추가합니다.
$ sudo lvextend -L+20G /dev/myserver/mylogicalvolume
(-L과 20G 사이의 더하기 기호에 유의하십시오.)...이렇게 하면 /dev/myserver/myologicalvolume 논리 볼륨에 20GB의 공간이 추가됩니다. 이전 크기가 10GB였다면 현재 크기는 30GB가 됩니다. 또는 남은 여유 공간을 모두 논리 볼륨에 할당하려면 다음 명령을 실행하십시오.
$ sudo lvextend -l +100%FREE /dev/myserver/mylogicalvolume
(이 매개변수는 대문자 L이 아니라 소문자 L입니다.) 확장하려는 모든 논리 볼륨에 대해 이 과정을 반복하십시오. 공간을 할당하는 다른 방법도 있지만 위의 방법이 가장 일반적입니다. 자세한 내용은 lvextend 명령에 대한 매뉴얼 페이지를 참조하십시오.
다음 명령을 실행하여 각 논리 볼륨의 새 크기를 확인할 수 있습니다.
$ sudo lvdisplay
거의 다 왔어! 이제 새로 할당된 공간을 사용하도록 논리 볼륨에 포함된 파일 시스템의 크기를 조정하는 일만 남았습니다. 다시 한 번 앞서 기록한 LV 이름을 사용하여 수정한 각 논리 볼륨에 대해 다음 명령을 지정합니다.
$ sudo resize2fs /dev/myserver/mylogicalvolume
모든 논리 볼륨에서 파일 시스템을 확장한 후 다음 명령을 실행하여 각 파일 시스템의 여유 공간을 확인할 수 있습니다.
$ df -h
그게 다야! GPT 파티션 배열에서 LVM 파티션을 성공적으로 확장했습니다! 등을 두드려주세요. 이제 끝났습니다.
원본 게시물:
오랜 검색 끝에 이 가이드가 도움이 되었습니다. http://www.serenux.com/2013/11/howto-resize-an-lvm-partition-on-a-gpt-drive-after-expanding-the-underlying-array/
(가능한 한 포맷을 잘 하려고 최선을 다했습니다.)