블록 디바이스 드라이버에서 사용하는 마이너 번호의 목적은 무엇입니까?

블록 디바이스 드라이버에서 사용하는 마이너 번호의 목적은 무엇입니까?

"Linux 커널 이해" 책에서 블록 장치 드라이버에 대한 장을 읽은 후 부 번호 사용에 대해 약간 혼란스러워졌습니다.
나는 이전에 메이저 및 마이너 숫자와 그 사용법에 대해 읽은 적이 있습니다. 따라서 주 번호는 물리적 하드 디스크 I/O 요청을 처리하는 데 사용되는 드라이버를 식별합니다. 부 번호는 여러 하드 드라이브와 파티션을 식별하기 위해 드라이버 자체에서만 사용됩니다. 내가 찾은 거의 모든 설명은 이런 식으로 설명됩니다.
위 책의 장에서 저자는 초기화 중에 드라이버가 기존의 각 하드 디스크에 대해 젠디스크 구조를 생성하며 여기에는 사용 가능한 첫 번째 마이너 번호와 사용 가능한 마이너 번호의 개수만 기록된다고 말합니다.
따라서 하드 디스크에 액세스하기 전에 커널의 공통 블록 계층은 파티션 내의 상대 섹터 번호를 하드 디스크 내의 절대 섹터 번호로 변환합니다. 따라서 장치 드라이버는 파티션에 대해 신경 쓸 필요가 없습니다.
내가 상상할 수 있는 유일한 목적은 파티션이 아닌 다른 하드 드라이브를 구별하는 것입니다. 나는 내가 틀렸다고 생각하며 누군가가 진실을 안다면 좋을 것입니다.

답변1

내가 상상할 수 있는 유일한 목적은 파티션이 아닌 다른 하드 드라이브를 구별하는 것입니다.

좋아요.

많은 블록 장치 드라이버와 다양한 유형의 파티션이 있습니다. 기본 블록 장치 드라이버는 지원되는 파티션 수를 설정하는 것 이외의 파티션 처리를 구현할 필요가 없습니다.

예외를 사용하는 주요 목적은 LVM과 같은 장치에서 파티션 지원을 방해하는 것이 아닙니다. 이러한 장치에는 일반적으로 필요하지 않기 때문입니다.

(만약 너라면하다LVM에 하위 파티션을 제공하기 위해 커널이 필요한 경우 kpartx이를 사용하여 장치 이름이 일반 파티션 이름 패턴과 유사할 수 있는 새 장치 매퍼 장치를 생성할 수 있습니다.

관련 정보