ラップトップに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から始まるため、実際には3つのパーティションしかありません。つまり、p0、p5、p6、p7です。
MicroSDカードを/dev/sdxY
として公開している別のPCのプリンターのカードリーダーを使用してこのカードをフォーマットし、17のパーティションを作成できるようにしました。今私はそれを内蔵のカードリーダーを備えたラップトップに入れました、そしてそれは上記のエラーを与えます。何故ですか?
LVMを使用することをお勧めしますが、microSD上のLVMはやり過ぎであり、リムーバブルストレージの地獄としては不便です。
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
カーネルパラメータを使用してカーネルを再コンパイルすると、うまくいく場合があります。 (または2のべき乗でなければならない場合は32)。そうすることで、システム内のmmcblkX
の総数が減ります。
個人的には、パーティションの数を減らして、カスタマイズしたシステムだけでなく、どこでも機能するようにします。