/dev/mmcblk0 파티션 제한 사항

/dev/mmcblk0 파티션 제한 사항

방금 노트북에 17개의 파티션이 있는 microSD 카드를 설치했는데 YaST 파티션 도구에 다음 오류가 발생했습니다.

Your disk /dev/mmcblk0 contains 17 partitions. The maximum number of partitions that the
kernel driver of the disk can handle is 7. Partitions above 7 cannot be accessed

사실 – 나는 단지 /dev/mmcblkp0...7. 사실 확장 파티션은 파티션 번호 5로 시작하므로 p0, p5, p6, p7 파티션이 3개만 있습니다.

microSD 카드가 노출된 다른 PC의 프린터에 있는 카드 리더를 사용하여 이 카드를 포맷했고 /dev/sdxY17개의 파티션을 만들 수 있었습니다. 이제 카드 리더기가 내장된 노트북에 넣었는데 위와 같은 오류가 발생합니다. 왜 그런 겁니까?

LVM 사용을 권장하지만, microSD의 LVM은 이동식 저장소에 비해 과도하고 매우 불편합니다.

답변1

17개의 파티션이 있는 경우 LVM은 과하지 않습니다. (IMHO)

파티션 제한은 기본값입니다. 원래 몇 메가바이트에 불과했던 장치에 그렇게 많은 파티션이 있을 것이라고는 누구도 예상하지 못했을 것입니다.

/usr/src/linux/Documentation/devices.txt:

179 block       MMC block devices
                  0 = /dev/mmcblk0      First SD/MMC card
                  1 = /dev/mmcblk0p1    First partition on first MMC card
                  8 = /dev/mmcblk1      Second SD/MMC card
                    ...

                The start of next SD/MMC card can be configured with
                CONFIG_MMC_BLOCK_MINORS, or overridden at boot/modprobe
                time using the mmcblk.perdev_minors option. That would
                bump the offset between each card to be the configured
                value instead of the default 8.

CONFIG_MMC_BLOCK_MINORS=18따라서 커널 매개변수를 사용하여 커널을 다시 컴파일하면 작동할 수 있습니다 mmcblk.perdev_minors=18. (2의 거듭제곱이어야 한다면 32가 됩니다.) 그렇게 하면 mmcblkX시스템의 총 개수가 줄어듭니다.

개인적으로 저는 파티션 수를 줄여서 사용자 정의 시스템뿐만 아니라 어디에서나 작동하도록 하고 싶습니다.

관련 정보