루프백 블록 장치에서 논리 볼륨을 사용 가능하게 만드는 방법은 무엇입니까?

루프백 블록 장치에서 논리 볼륨을 사용 가능하게 만드는 방법은 무엇입니까?

hdd.img하드 드라이브의 원시 이미지인 파일이 있습니다 . 하드 드라이브에는 BIOS/DOS 파티션 테이블이 있고 두 번째 파티션은 논리 볼륨을 생성하기 위한 LVM용 단일 물리 볼륨으로 설정됩니다.

내 목표는 이러한 논리 볼륨으로 표시되는 파티션/파일 시스템에 액세스하는 것입니다.

hdd.img다음 명령을 사용하여 루프백 블록 장치 매핑을 설정했습니다.

$ sudo losetup --partscan -f hdd.img

이로 인해 루프백 장치에서 이미지에 포함된 두 개의 파티션이 표시되었습니다 loop17.

$ lsblk | grep 'loop17'
loop17                7:17   0  30G  0 loop
├─loop17p1          259:4    0   1G  0 loop
└─loop17p2          259:5    0  29G  0 loop

이제 질문은입니다. 실제로 액세스하려는 논리 볼륨을 찾기 위해 /dev/loop17p2를 검색하도록 시스템에 어떻게 지시합니까?

고쳐 쓰다

패키지를 설치 kpartx하고 다음을 수행하십시오.

$ sudo losetup -f hdd.img
$ sudo kpartx -a /dev/loop17

위에 포함된 볼륨에 대한 lvm 매핑이 실제로 생성되었습니다 /dev/loop17p2. 이것이 즉각적인 요구 사항을 해결하지만 vgscan논리 볼륨이 포함된 블록 장치를 이미 생성한 후에 왜 작동하지 않는지 아는 것이 좋을 것입니까 ?losetup --partscan -f hdd.img/dev/loop17p2

답변1

사용 lvscan. vgscan볼륨 그룹을 검색 중입니다...

답변2

이 명령에는 스캔 결과를 캐시에 저장하는 데 사용해야 하는 vgscan명령줄 옵션이 있어 후속 호출에서 맵을 생성할 수 있습니다.--cachevgchange -ay <vg>

간단히 말해서 이것은 작동합니다:

$ sudo losetup --partscan -f hdd.img
$ sudo vgscan --scan
$ sudo vgchange -ay <vg>

이는 vg볼륨 그룹(vgscan)에서 보고하는 볼륨 그룹 중 하나입니다.

그러나 이것은아니요일하다:

$ sudo losetup --partscan -f hdd.img
$ sudo vgscan
$ sudo vgchange -ay <vg>

두 번째 명령은 스캔 결과 를 --cache.--cache캐시됨실제 스캔을 수행하는 대신 값을 사용합니다.

관련 정보