/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。好吧,实际上我只有 3 个分区,因为扩展分区从分区号 5 开始,所以它是 p0、p5、p6、p7。

我已经使用另一台 PC 上的打印机中的读卡器格式化了这张卡,该 PC 暴露了 microSD 卡,/dev/sdxY并允许我创建 17 个分区。现在我将其放入带有内置读卡器的笔记本电脑中,但出现了上述错误。这是为什么?

它建议使用 LVM,但是来吧,microSD 上的 LVM 对于可移动存储来说太过分了,而且非常不方便。

答案1

如果您有 17 个分区,LVM 并不算大材小用。 (恕我直言)

至于分区限制,它恰好是默认的。可能没有人预料到一台原来只有几兆的设备上有这么多分区。

/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系统中的总数量。

就我个人而言,我宁愿减少分区的数量,这样它就可以在任何地方工作,而不仅仅是您的定制系统。

相关内容