a montagem mmcblk0p1 falhou com o argumento Invalid

7

Quando estou executando o linux do cartão SD e tento montar o cartão SD - não há problema, funciona bem. Mas quando estou executando o Linux a partir da memória flash não consigo montar o meu cartão SD:

# mount /dev/mmcblk0p1 /mnt/ 
mount: mounting /dev/mmcblk0p1 on /mnt/ failed: Invalid argument

Qual poderia ser o motivo básico desse erro?

Informações adicionais

root@Xilinx-ZC702-14_7:/# mount -t /dev/mmcblk0p1 /mnt
mount: can't find /mnt in /etc/fstab 

root@Xilinx-ZC702-14_7:/var/volatile/log# ls
wtmp

root@Xilinx-ZC702-14_7:/var/volatile/log# dmesg
dmesg: klogctl: Function not implemented
    
por gpuguy 04.03.2014 / 15:58

5 respostas

8

Como comentou sobre goldilocks , mount -t espera o tipo de sistema de arquivos a vir após -t , então não funcionará. Caso contrário, parece que você só precisa especificar o tipo de sistema de arquivos. Se você não sabe o tipo de sistema de arquivos, então há uma lista de métodos para descobrir em esta resposta . Se o comando file estiver disponível, esse provavelmente é o melhor método. Como root você faria:

file -s /dev/mmcblk0p1

Note também que se o tipo de sistema de arquivos não estiver listado em /proc/filesystems , o driver não será compilado no kernel e deverá estar disponível como um módulo externo. Depois de ter o tipo correto, você pode tentar:

mount -t correct_type /dev/mmcblk0p1 /mnt

Como um pensamento final, verifique também se o diretório /mnt existe! Se não criá-lo com mkdir /mnt .

    
por 26.03.2014 / 22:59
3

Razões básicas: (atualizado)

1) Seu sistema não inicializa (corretamente?) ou não reconhece o SD ao inicializar a partir do flash. Existe o dispositivo /dev/mmcblk0 depois de inicializar a partir do flash? O que diz fdisk -l /dev/mmcblk0 ?

2) Não existe um sistema de arquivos em / dev / mmcblk0p1, você precisa primeiro criar um sistema de arquivos ( mkfs ... ). Verifique com file -s /dev/mmcblk0p1

3) O sistema de arquivos em / dev / mmcblk0p1 está corrompido, você precisa verificar / repará-lo, tentar fsck /dev/mmcblk0p1 ou criar um novo

4) Seu kernel (ao inicializar a partir do flash) não possui o driver do sistema de arquivos necessário, verifique cat /proc/filesystems e ls "/lib/modules/$(uname -r)/kernel/fs/" e veja se essa lista contém o tipo de sistema de arquivos necessário. Normalmente, os kernels mais antigos não suportam o ext4, enquanto o seu sistema operacional pode já ter ferramentas para criar um sistema de arquivos ext4.

5) Defeito de hardware - pode ser o cartão SD, o controlador, a fiação ... mas se funcionar ao inicializar a partir do cartão SD, então este provavelmente não é o caso.

    
por 29.03.2014 / 09:31
2

Primeiro, verifique os sistemas de arquivos suportados no kernel.

[kevin@hexcore ~]
$ cat /proc/filesystems 
....
    ext3
    ext2
    ext4
....

Eu suponho que você está tentando montar o mesmo cartão SD a partir do qual você está executando o Linux. Se assim for, eu suponho, razoavelmente, que ele tem suporte nativo a sistemas de arquivos no Linux. Para certificar-se de ter carregado o driver do cartão SD, você pode tentar,

$ sudo modprobe sdhci
$ dmesg | tail -n 10
sdhci: Secure Digital Host Controller Interface driver

Agora, experimente o acesso de leitura às partições:

$ sudo dd if=/dev/mmcblk of=/dev/null bs=4k count=0  # note: count = 0

Alternativamente:

$ sudo fdisk -l /dev/mmcblk

fdisk também informará os tipos de partição.

Isso garante que o driver do cartão SD possa acessar o dispositivo de bloco. Agora você pode executar parted para imprimir os sistemas de arquivos:

$ sudo parted /dev/mmcblk
(parted) p
Number  Start   End     Size    Type     File system     Flags
 1      1049kB  8000MB  7999MB  primary  linux-swap(v1)
 2      8000MB  500GB   492GB   primary  ext4

Depois de conhecer o FS, monte-o com

$ sudo mount -t <FS> /dev/mmcblkpX </target/dir>
    
por 29.03.2014 / 23:53
-1

Parece que lembro que esse é o erro que você recebe quando o tipo de partição que você está tentando montar não é suportado.

    
por 26.03.2014 / 17:56
-1

Talvez você precise usar o comando (parted) devido ao tamanho da partição:

# /sbin/parted /dev/mmcblk0p1
(parted) mklabel gpt
this disk will be lost. Do you want to continue?
Yes/No? yes
....
(parted) quit

Para garantir que a partição seja criada corretamente, use /sbin/parted /dev/mmcblk0p1 print”

Então você tem que formatar a partição criada

/sbin/mkfs -t correct_type /dev/mmcblk0p1
    
por 28.03.2014 / 09:41

Tags