/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システムの総数が減ります。

個人的には、パーティションの数を減らして、カスタムシステムだけでなくどこでも動作させるようにしたいと思います。

関連情報