ノートブックに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/sdxY
17のパーティションを作成できました。これで、カードリーダーが内蔵ノートブックに入れられましたが、上記のエラーが発生します。なぜそんなことですか?
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
システムの総数が減ります。
個人的には、パーティションの数を減らして、カスタムシステムだけでなくどこでも動作させるようにしたいと思います。