Por que metade das minhas partições lógicas não está disponível?

0

Estou tentando particionar o eMMC em um Black Beaglebone. Aqui está como eu tenho / dev / mmcblk1 particionado:

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

É exatamente assim que deve ser. A partição 1 é primária, a partição 2 é estendida e o restante é lógico. No entanto, quando listo dispositivos, vejo apenas as partições 1, 2, 5, 6 e 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

O lsblk mostra o mesmo:

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

Isso é verdade mesmo depois de uma reinicialização. Eu estou tentando fazer isso inicializado a partir do cartão SD executando o Debian 9 (Linux beaglebone 4.4.84-ti-r120).

Alguém sabe o que pode estar acontecendo aqui? Eu acertei algum limite?

    
por Dave 03.03.2018 / 01:05

3 respostas

2

Pelo menos no desenvolvedor do Kernel parece assumir um limite fixo de quatro partições para o MMC. link

EDITAR:

A pergunta já foi feita no superusuário e respondida com a ajuda do mantenedor do kernel do Beaglebone Black, Robert C Nelson. A resposta é basicamente a mesma que Ignacio Vazquez-Abrams já postou , mas falta informações sobre o argumento de inicialização.

Lendo a fonte, parece que o kernel deve imprimir mmcblk: using 16 minors per device se o argumento de inicialização mmcblk.perdev_minors=16 estiver funcionando corretamente. link

    
por 03.03.2018 / 01:18
2

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.

fonte

Então, passe mmcblk.perdev_minors=16 na linha de inicialização do kernel.

    
por 03.03.2018 / 01:11
1

Assim como Dave, não ajudou eu passar o parâmetro do kernel mmcblk.perdev_minors = 16 (sim, meu kernel foi configurado com CONFIG_MMC_BLOCK = y). Usando o script extract-vmlinux e pesquisando o binário descompactado para strings, descobriu-se que o meu kernel queria o seguinte parâmetro:

mmc_block.perdev_minors = 16

Substituir mmcblk por mmc_block permitiu-me ver todas as minhas partições. Eu estou usando o kernel 4.4.75, a documentação ainda diz mmcblk ao invés de mmc_block naquela árvore de código.

Eu encontrei essa pergunta com suas respostas muito úteis para começar a depurar meu problema e espero que minha resposta ajude outras pessoas com novos kernels.

    
por 11.07.2018 / 21:11