Quando estou executando o linux a partir do cartão SD e tento montar o cartão SD - sem problemas, funciona bem. Mas quando estou executando o Linux a partir da memória flash, não consigo montar 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ção adicional
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
-t ...
) para que afstab
entrada não seja usada./var/log/messages
? Que taldmesg | tail
?mount -t /dev/mmcblk0p1 /mnt
não é um comando completo. Se você conhece o tipo de sistema de arquivos, especifique-o após o argumento -t (por exemplomount -t vfat /dev/mmcblk0p1 /mnt
) ou omita -t completamente.Respostas:
Conforme comentado por goldilocks ,
mount -t
espera que o tipo de sistema de arquivos venha depois-t
, para que não funcione. Caso contrário, parece que você só precisa especificar o tipo de sistema de arquivos. Se você não conhece o tipo de sistema de arquivos, há uma lista de métodos para descobrir nesta resposta . Se ofile
comando estiver disponível, este é provavelmente o melhor método. Como root você faria:Observe também que, se o tipo de sistema de arquivos não estiver listado
/proc/filesystems
, o driver não será compilado no kernel e, portanto, deverá estar disponível como um módulo externo. Depois de ter o tipo correto, você pode tentar:Como pensamento final, verifique também se o
/mnt
diretório existe! Caso contrário, crie-o commkdir /mnt
.fonte
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
/dev/mmcblk0
dispositivo após a inicialização do flash? O quefdisk -l /dev/mmcblk0
diz?2) Não existe um sistema de arquivos em / dev / mmcblk0p1, você precisa primeiro criar um sistema de arquivos (
mkfs ...
). Verificar comfile -s /dev/mmcblk0p1
3) O sistema de arquivos em / dev / mmcblk0p1 está corrompido, é necessário verificar / reparar, tentar
fsck /dev/mmcblk0p1
ou criar um novo4) Seu kernel (ao inicializar a partir do flash) não possui o driver do sistema de arquivos necessário, verifique
cat /proc/filesystems
e verifiquels "/lib/modules/$(uname -r)/kernel/fs/"
se essa lista contém o tipo de sistema de arquivos necessário. Normalmente, os kernels mais antigos não suportam ext4, enquanto o seu sistema operacional já pode 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, provavelmente não é esse o caso.
fonte
/proc/filesystems
são apenas os que são compilados no kernel. Por exemplo, o meu/proc/filesystems
não contémvfat
, mas ainda posso montar umvfat
sistema, pois ele está disponível como um módulo.util-linux
montagem tenta identificar o sistema de arquivos via, emblkid
seguida, tenta tudo em/etc/filesystems
ou/proc/filesystem
. Eu acho que esse é obusybox
monte, então provavelmente faz menos. Qualquer um dos dois provavelmente sentiria falta de um sistema de arquivos flash especializado.Primeiro, verifique os sistemas de arquivos suportados no kernel.
Presumo que você esteja tentando montar o mesmo cartão SD a partir do qual você está executando o Linux. Nesse caso, presumo, razoavelmente, que ele tenha suporte nativo ao sistema de arquivos no Linux. Para garantir que você carregou o driver do cartão SD, tente:
Agora, tente o acesso de leitura às partições:
Alternativamente:
fdisk
também informará os tipos de partição.Isso garante que o driver do cartão SD possa acessar o dispositivo de bloqueio. Agora você pode executar
parted
para imprimir os sistemas de arquivos:Depois de conhecer o FS, monte-o com
fonte
parted
tenta determinar o tipo de sistema de arquivos. Comentário removido.Parece que lembro que esse é o erro que você recebe quando o tipo de partição que você está tentando montar não é suportado.
fonte
blkid
, se não, e é um ambiente Linux mais convencional,lsblk
provavelmente é preferível.Talvez você precise usar (comando partido) devido ao tamanho da partição:
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
fonte
parted
on/dev/mmcblk0p1
criará uma tabela de partição em uma partição de um dispositivo que já foi particionado. Além disso, seguir estas instruções apagará todos os dados no dispositivo .