Linux가 파티션의 파티션 테이블을 읽도록 만드는 방법은 무엇입니까?

Linux가 파티션의 파티션 테이블을 읽도록 만드는 방법은 무엇입니까?

예를 들어, 디스크(GPT 파티션)가 있습니다 /dev/sda.

/dev/sda8이 디스크의 파티션입니다. 나는 이 cfdisk유틸리티 를 /dev/sda8./dev/sda8p1

Linux가 파티션 내의 파티션을 인식하고 가능하면 이를 자동화하도록 하려면 어떻게 해야 합니까?

답변1

파티션이 디스크처럼 자동으로 스캔된다는 사실을 몰랐으며 실제로 수동으로 스캔하는 것도 불가능합니다.

partx --add - /dev/sda8
partx: /dev/sda8: error adding partitions 1-2

그러나 루프 장치를 사용하여 파티션을 장치에 다시 매핑할 수 있으며 장치는 디스크처럼 검색할 수 있습니다. /dev/sda8두 개의 파티션이 있는 장치의 예:

losetup --show --find --partscan /dev/sda8
/dev/loop0

ls -1 /dev/loop0*    # Arg is #1, not lowercase "L"
/dev/loop0
/dev/loop0p1
/dev/loop0p2

완료되면 루프 장치를 삭제하는 것을 잊지 마십시오.

losetup -d /dev/loop0

답변2

이러한 중첩은 내가 알고 있는 파티션 테이블 사양의 일부가 아니기 때문에 이러한 중첩 파티션 구조는 자동으로 인식되지 않습니다.

그러나 kpartx를 사용하여 그러한 파티션 내 파티션에 대한 장치 매퍼 기반 장치 노드를 생성하는 데 사용할 수 있습니다 partx. 결과 파티션 장치는 다음과 같습니다 /dev/mapper/sda8p1.

이런 중첩된 파티션 구조할 수 있는예를 들어 파티션을 가상 머신의 가상 디스크로 매핑합니다. kpartx가상 머신에 시작을 방해하는 문제가 있는 경우 호스트를 통해 이러한 가상 디스크의 파티션에 액세스하는 것은 유용한 문제 해결 도구가 될 수 있습니다.

그러나 제한 사항을 알고 있어야 합니다. 가상 머신이 실행 중인 동안 호스트 시스템에서 가상 머신의 파티션에 액세스하려고 하면 호스트와 가상 머신의 파일 시스템 수준 캐시가 서로 통신할 수 없기 때문에 파일 시스템이 손상될 수 있습니다. 따라서 한 사람의 쓰기 작업으로 인해 다른 사람이 캐시한 일부 데이터가 무효화된다는 것을 아는 것은 불가능합니다.

관련 정보