/ dev / mmcblk0 ограничение разделов

Я только что установил карту microSD, которая имеет 17 разделов на моем ноутбуке, и я получаю следующую ошибку в блоке 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 . Ну, на самом деле у меня есть только 3 раздела, потому что расширенный раздел начинается с номера раздела 5, поэтому это p0, p5, p6, p7.

Я отформатировал эту карту с помощью устройства чтения карт в принтере на другом ПК, который показывал карту microSD как /dev/sdxY и разрешил мне создавать 17 разделов. Теперь я положил его в ноутбук со встроенным кард-ридером, и он дает вышеприведенную ошибку. Почему это?

Предлагается использовать LVM, но, возможно, LVM на microSD является излишним и неудобным для удалённого хранилища.

LVM не является излишним, если у вас есть 17 разделов. (ИМХО)

Что касается предела раздела, это просто по умолчанию. Вероятно, никто не ожидал, что многие разделы на устройстве будут иметь всего несколько мегабайт.

/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 . (Или 32 в случае, если она должна быть равна 2). Это уменьшит общее количество mmcblkX , которое может быть у вас в вашей системе.

Лично я бы предпочел снизить количество разделов, чтобы он работал повсюду, а не только ваша индивидуальная система.