Linux
為什麼我的一半邏輯分區不可用?
我正在嘗試在 Beaglebone Black 上對 eMMC 進行分區。這是我對 /dev/mmcblk1 進行分區的方式:
root@beaglebone:~# fdisk -l /dev/mmcblk1 Disk /dev/mmcblk1: 3.6 GiB, 3825205248 bytes, 7471104 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x9ccd5613 Device Boot Start End Sectors Size Id Type /dev/mmcblk1p1 * 2048 206847 204800 100M c W95 FAT32 (LBA) /dev/mmcblk1p2 206848 7112703 6905856 3.3G 5 Extended /dev/mmcblk1p5 208896 823295 614400 300M 83 Linux /dev/mmcblk1p6 825344 1849343 1024000 500M 83 Linux /dev/mmcblk1p7 1851392 2875391 1024000 500M 83 Linux /dev/mmcblk1p8 2877440 3901439 1024000 500M 83 Linux /dev/mmcblk1p9 3903488 4927487 1024000 500M 83 Linux /dev/mmcblk1p10 4929536 7026687 2097152 1G 83 Linux
這正是它應該看起來的樣子。分區 1 是主分區,分區 2 是擴展分區,其餘是邏輯分區。但是,當我列出設備時,我只看到分區 1、2、5、6 和 7。
root@beaglebone:~# ls -l /dev/mmcblk1p* brw-rw---- 1 root disk 179, 9 Mar 2 23:53 /dev/mmcblk1p1 brw-rw---- 1 root disk 179, 10 Mar 2 23:53 /dev/mmcblk1p2 brw-rw---- 1 root disk 179, 13 Mar 2 23:53 /dev/mmcblk1p5 brw-rw---- 1 root disk 179, 14 Mar 2 23:53 /dev/mmcblk1p6 brw-rw---- 1 root disk 179, 15 Mar 2 23:53 /dev/mmcblk1p7
lsblk 顯示相同:
root@beaglebone:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 7.2G 0 disk └─mmcblk0p1 179:1 0 3.3G 0 part / mmcblk1 179:8 0 3.6G 0 disk ├─mmcblk1p1 179:9 0 100M 0 part ├─mmcblk1p2 179:10 0 1K 0 part ├─mmcblk1p5 179:13 0 300M 0 part ├─mmcblk1p6 179:14 0 500M 0 part └─mmcblk1p7 179:15 0 500M 0 part mmcblk1boot0 179:16 0 4M 1 disk mmcblk1boot1 179:24 0 4M 1 disk
即使在重新啟動後也是如此。我正在嘗試從執行 debian 9(Linux beaglebone 4.4.84-ti-r120)的 SD 卡啟動。
有人知道這裡可能會發生什麼嗎?我是否達到了某種極限?
至少在核心開發人員似乎假設 MMC 有四個分區的固定限制。 https://elixir.bootlin.com/linux/v3.3/source/drivers/mmc/card/block.c#L1587
編輯:
超級使用者已經問過這個問題,並在 Beaglebone Black 核心維護者 Robert C Nelson 的幫助下回答了這個問題。答案與已發布的 Ignacio Vazquez-Abrams基本相同,但缺少有關啟動參數的資訊。
mmcblk: using 16 minors per device
閱讀原始碼,如果mmcblk.perdev_minors=16
引導參數正常工作 ,核心應該會列印出來。https://elixir.bootlin.com/linux/v4.4.84/source/drivers/mmc/card/block.c#L2694