KVM 호스트에 가상 머신의 LVM 파티션을 마운트하는 방법은 무엇입니까?


11

KVM 호스트에서 다음을 수행하려고하면 :

# kpartx -av /dev/VolGroup00/kvm101_img
add map kvm101_img1 : 0 208782 linear /dev/VolGroup00/kvm101_img 63
add map kvm101_img2 : 0 125612235 linear /dev/VolGroup00/kvm101_img 208845
# mount /dev/mapper/kvm101_img1 /mnt

그런 다음 / boot 파티션이 마운트됩니다. 그러나 다음을 입력하면 오류가 발생합니다.

# mount /dev/mapper/kvm101_img2 /mnt
mount: you must specify the filesystem type

게스트 컴퓨터의 fdisk 레이아웃은 다음과 같습니다.

# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        7832    62806117+  8e  Linux LVM

게스트에서 루트 파티션을 찾아 호스트 시스템에 마운트 할 수 있습니까?


kvm101_img2에 대한 참조가 오타라고 가정합니다. 대신 _img1이어야합니까?
joechip

_img1은 위의 방법으로 올바르게 마운트되지만 _img1은 / boot 파티션이며 게스트의 / dev / hda1과 같습니다. 문제는 / dev / hda2 Linux LVM을 포함하는 _img2를 마운트 할 수 없다는 것입니다. 해당 파티션 레이아웃은 CentOS 설치 프로그램의 기본값입니다.
Evolver

오, 좋아, KVM에 대한 언급으로 버려졌습니다. 이 질문에 KVM 고유의 것은 없으며, 다른 것 안에 하나의 LVM 구조 일뿐입니다.
joechip

답변:


14

내가 필요한 일을하는 방법을 마침내 알아 낸 것 같습니다. 여기 내가 한 일이 있습니다.

# kpartx -av /dev/VolGroup00/kvm101_img
# vgscan

게스트 및 호스트 시스템에서 VolGroup 이름이 동일하면 게스트 VolGroup의 이름을 바꿔야합니다.

# vgrename <uuid> VolGroupXX

체크인 할 수있는 VolGroup의 uuid입니다 vgdisplay. 따라서 트릭은 게스트 VolGroup을 활성화하는 것입니다.

# lvscan
# vgchange -ay VolGroupXX
# lvscan

그 후에는 쉽게 마운트됩니다.

# mount /dev/VolGroupXX/LogVol00 /mnt

마지막으로 역방향 프로세스는 다음과 같습니다.

# umount /mnt
# vgchange -an VolGroupXX
# kpartx -dv /dev/VolGroup00/kvm101_img
# pvscan

마지막 명령은 LVM 캐시를 정리하고 kpartx가 생성 한 물리적 볼륨을 LVM에서 제거합니다.


VolGroup00 대신 VolGroupXX를 사용하려면 게스트의 fstab을 편집해야 할 수도 있습니다.
joechip

4

상황에 맞게 알아서 다행입니다.

보다 일반적인 경우 게스트 드라이브는 qcow, qcow2 등과 같은 다양한 형식 일 수 있으므로 직접 작업 할 수 없습니다. 이 경우 호스트와 같은 것을 사용할 수 있습니다.

# modprobe nbd
# kvm-nbd -c /dev/nbd0 file.qcow2

그런 다음 원시 게스트 드라이브로 / dev / nbd0에 액세스 할 수 있습니다. 이 장치의 사용을 중지하려면 다음을 실행해야합니다.

# nbd-client -d /dev/nbd0

반면에 게스트 드라이브가 원시 형식 인 경우 losetup을 사용합니다.

# losetup -f file.raw

이것은 사용 가능한 첫 번째 루프 장치 (예 : / dev / loop0)를 찾아서 사용합니다. 사용을 중지하려면 다음을 실행하십시오.

# losetup -d /dev/loop0

이 후 당신은 당신의 대답에 설명하는 kpartx / vgscan / lvscan / mount 절차를 수행 할 수 있습니다.


2

guestfish를 사용하여 할 수 있습니다-http: //libguestfs.org/guestfish.1.html


제안에 감사하지만 불행히도 guestfish를 설치할 수 없었습니다. 나는 인터넷 검색과 조사에 몇 시간을 보냈습니다. 모두 쓸모가 없지만 작동하지 않습니다 : (Linux 파티션을 마운트하는 다른 방법이 있습니까? 하나의 도구로 LVM 만 설치
Evolver

1
실행하려고합니다 qemu-img info /path/to/image. 유형 상자에있는 것이 "RAW"가 아닌 경우 OS는이 이미지를 qemu 특정 가상 디스크로 포맷하기 때문에이 이미지를 파티션으로 마운트 할 수있는 방법이 없습니다. 이것이 guestfish가 다루는 것입니다. 단순한 마운팅 도구가 아닙니다
dyasny

1

libguestfs 패키지 guestfish에서 사용하는 것이 더 쉬울 수 있습니다.이 패키지는 수동으로 시도하는 대신 모든 성가신 세부 사항을 해결해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.