분할된 스크립트 시도가 실패했습니다.

분할된 스크립트 시도가 실패했습니다.

virt-clone/KVM을 사용하여 다른 VM을 구축하는 데 사용하는 VM 템플릿이 있습니다. VM 템플릿은 공간을 절약하기 위해 4GB입니다. 여기에서 구축한 VM용 스토리지는 iSCSI 대상 또는 LVM 볼륨(기능에 따라 다름)에 있으며 해당 파일 시스템 크기는 머신의 역할에 따라 다릅니다.

템플릿에서 새 VM을 생성한 후 4GB 이상의 디스크가 필요한 무언가를 구축하는 경우 루트 파티션의 크기를 조정해야 합니다. 이는 parted를 대화식으로 사용하는 동안에는 잘 작동하지만 스크립트로 사용하지는 않습니다. 파일 시스템을 제거하려고 할 때 '-s'를 사용해도 계속할 것인지 묻는 메시지가 나타납니다.

아래 출력은 실패한 스크립트 시도와 이를 달성하기 위해 작동하는 대화형 세션을 보여줍니다.

간단히 스크립트로 작성할 수 있는 복제 후 루트 파티션의 크기를 조정하는 가장 좋은 방법은 무엇입니까?

분할된 스크립트 시도가 실패했습니다.

복제 후 파티션

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

스크립트 제거 시도

# parted /dev/vda -s rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
#

제거 실패 후 파티션

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

대화형 크기 조정 작업(재부팅 후)

제거 전 파티션

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4294MB  4293MB  primary  ext4         boot

디스크 전체를 사용하는 새 파티션 제거 및 생성

# parted /dev/vda
(parted) rm 1
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
Yes/No? y
Error: Partition(s) 1 on /dev/vda have been written, but we have been unable to
inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before
making further changes.
Ignore/Cancel? I
(parted) mkpart p ext4 1 -1
(parted)

# parted /dev/vda p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.7GB  10.7GB  primary  ext4

파일 시스템 크기 조정

# resize2fs /dev/vda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vda1 is now 2621184 blocks long.

# df -kh  .
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       9.8G  1.6G  7.9G  17% /

답변1

나는 이것을하는 방법을 알아 냈습니다. 핵심은 VM 외부(하이퍼바이저 호스트에서)에서 LVM을 분할하여 사용할 수 있도록 만드는 kpartx입니다. 그런 다음 파티션 크기를 수정한 다음 게스트를 부팅하고 파일 시스템을 늘립니다.

따라서 /dev/VMS/VIRT-TESTVM에 스토리지가 있는 TESTVM이라는 게스트가 있는 경우 하이퍼바이저 호스트에서 다음을 수행합니다.

# kpartx -a /dev/VMS/VIRT-TESTVM
# parted /dev/VMS/VIRT-TESTVM rm 1
# parted /dev/VMS/VIRT-TESTVM mkpart -a optimal p ext4 0% 100% 
# kpartx -d /dev/VMS/VIRT-TESTVM

그런 다음 간단히 기계를 시작하고 로그인하고 다음을 수행하십시오.

# resize2fs /dev/vda1 

안전을 위해 다시 재부팅하세요.

관련 정보