A tentativa de montar a partição ext4 do eMMC fornece o erro “Argumento inválido”

1

Estou tentando configurar uma instalação personalizada do Linux em um tablet Android baseado no Intel Atom (Baytrail), usando o Qt 5.5 para criação de dispositivos. O sistema de compilação é baseado no projeto Yocto e cria uma imagem do Linux embarcada. Para executar esta imagem no tablet (que é originalmente e tablet Android), estou substituindo a partição de inicialização, com uma imagem contendo o kernel, initramfs e script de inicialização inicial, e substituindo a partição do sistema com a imagem completa, então piscando para o dispositivo com a Intel Manufacturing Tool.

Até agora, tenho o dispositivo inicializando em meu novo kernel com o initramfs e executando o script de inicialização. O problema surge ao tentar montar a partição principal no flash incorporado. O comando para montar a partição do sistema falha com "Argumento Inválido".

Um cat proc / filesystems mostra que o ext4 é suportado e parted -l mostra que as partições no MMC interno são todas ext4, com exceção do primeiro, que é a partição de inicialização do EFI. Não consigo montar nenhuma das partições do ext4, mas posso montar a partição EFI, então acho que isso significa que todo o MMC deve estar acessível.

A execução do fdisk -l mostra apenas a primeira partição (a partição de inicialização do EFI), mas acho que isso ocorre porque o fsdisk não suporta o GPT.

Alguém sabe por que eu não seria capaz de montar as partições do ext4? Eles estão todos listados em / dev como:

mmcblk0 mmcblk0p1 mmcblk0p2 mmcblk0p3 mmcblk0p4 mmcblk0p5 mmcblk0p6 mmcblk0p7

O mmcblk0p1 é montável e é a partição de inicialização do EFI.

Desculpe, não posso postar nada da saída real, então isso é tudo da memória, mas a bateria acabou de morrer no dispositivo quando eu comecei a escrever isso. Eu deveria ser capaz de obter alguma saída real dos comandos, se for necessário, uma vez que é cobrado novamente.

Atualizar

Então eu recompilei o Busybox, habilitando o suporte a GPT no fdisk, e o fdisk listando as partições. Eu também instalei o TestDisk no dispositivo e posso navegar no sistema de arquivos usando o TestDisk. Tentar montar as partições listadas em / dev / mmcblk0p (2 - 7) ainda não funciona, mas posso montar uma partição com êxito obtendo o setor de início do fdisk -l, depois configurando um dispositivo de loop via losetup -o ( Inicie Sector * Tamanho do Setor) / dev / loop0 / dev / mmcblk0 e, finalmente, monte / dev / loop0. Por que eu tenho que passar por esse método, em vez de apenas montar o / dev / mmcblk0p2, etc.?

    
por Andrew Porritt 07.09.2015 / 18:56

1 resposta

0

OK, o problema foi que nem todas as partições estavam sendo listadas em / dev. O eMMC tem 15 partições, mas apenas 1 - 7 foram listadas. Eu pensei que o 1 - 7 eram apenas partições ext4, e que as outras partições (que não estão formatadas no ext4) simplesmente não apareceriam lá. Então, quando eu pensei que estava montando as partições ext4, estava tentando montar essas outras, o que não era possível, daí o erro. O problema originou-se da configuração do kernel, particularmente CONFIG_MMC_BLOCK_MINORS, cujo padrão é 8, eu acho, então apenas as primeiras partições apareceram. Eu recompilei o kernel com o valor em 20, e o resto das partições aparecem em / dev / mmcblk0p8, 9, 10, etc., e eu posso montá-las bem.

    
por 08.09.2015 / 19:08