Lorsque j'exécute linux à partir d'une carte SD et que j'essaie de monter une carte SD - pas de problème, cela fonctionne bien. Mais lorsque j'utilise Linux à partir de la mémoire flash, je ne parviens pas à monter ma carte SD:
# mount /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed: Invalid argument
Quelle pourrait être la raison principale de cette erreur?
Information additionnelle
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 ...
) pour que l'fstab
entrée ne soit pas utilisée./var/log/messages
? Et alorsdmesg | tail
?mount -t /dev/mmcblk0p1 /mnt
n'est pas une commande complète. Si vous connaissez le type de système de fichiers, vous devez le spécifier après l'argument -t (par exemplemount -t vfat /dev/mmcblk0p1 /mnt
) ou omettre complètement -t.Réponses:
Comme l'a commenté goldilocks ,
mount -t
attend le type de système de fichiers après-t
, donc ça ne marchera pas. Sinon, il semble que vous ayez juste besoin de spécifier le type de système de fichiers. Si vous ne connaissez pas le type de système de fichiers, il existe une liste de méthodes à découvrir dans cette réponse . Si lafile
commande est disponible, c'est probablement la meilleure méthode. En tant que root, vous feriez:Notez également que si le type de système de fichiers n'est pas répertorié dans
/proc/filesystems
, le pilote n'est pas compilé dans le noyau et doit donc être disponible en tant que module externe. Une fois que vous avez le bon type, vous pouvez essayer:Enfin, assurez-vous également que le
/mnt
répertoire existe! Sinon, créez-le avecmkdir /mnt
.la source
Raisons fondamentales: (mise à jour)
1) Votre système n'initialise pas (correctement?) Ou ne reconnaît pas la SD lors du démarrage à partir du flash. Existe-t-il l'
/dev/mmcblk0
appareil après le démarrage à partir du flash? Quefdisk -l /dev/mmcblk0
dit-on?2) Il n'y a pas de système de fichiers sur / dev / mmcblk0p1, vous devez d'abord créer un système de fichiers (
mkfs ...
). Vérifier avecfile -s /dev/mmcblk0p1
3) Le système de fichiers sur / dev / mmcblk0p1 est corrompu, vous devez le vérifier / le réparer, essayer
fsck /dev/mmcblk0p1
ou en créer un nouveau4) Votre noyau (lors du démarrage du flash) n'a pas le pilote de système de fichiers nécessaire, vérifier
cat /proc/filesystems
etls "/lib/modules/$(uname -r)/kernel/fs/"
voir si cette liste contient le type de système de fichiers nécessaire. En règle générale, les noyaux plus anciens ne prennent pas en charge ext4, tandis que votre système d'exploitation peut déjà avoir des outils pour créer un système de fichiers ext4.5) Défaut matériel - pourrait être la carte SD, le contrôleur, le câblage ... mais si cela fonctionne lors du démarrage à partir de la carte SD, ce n'est probablement pas le cas.
la source
/proc/filesystems
sont uniquement ceux qui sont compilés dans le noyau. Par exemple, my/proc/filesystems
ne contient pasvfat
, mais je peux toujours monter unvfat
système car il est disponible en tant que module.util-linux
montage essaie d'identifier le système de fichiers viablkid
puis tente tout dans/etc/filesystems
ou/proc/filesystem
. Je pense que c'est labusybox
monture, donc ça fait probablement moins. L'un ou l'autre manquerait probablement un système de fichiers flash spécialisé.Vérifiez d'abord les systèmes de fichiers pris en charge dans le noyau.
Je suppose que vous essayez de monter la même carte SD à partir de laquelle vous exécutez Linux. Si c'est le cas, je suppose, tout à fait raisonnablement, qu'il prend en charge le système de fichiers natif sous Linux. Pour vous assurer que vous avez chargé le pilote de la carte SD, vous pouvez essayer,
Maintenant, essayez d'accéder en lecture aux partitions:
Alternativement:
fdisk
vous indiquera également les types de partition.Cela vous assure que le pilote de la carte SD peut accéder au périphérique de blocage. Vous pouvez maintenant exécuter
parted
pour imprimer les systèmes de fichiers:Une fois que vous connaissez le FS, montez-le avec
la source
parted
essaie de déterminer le type de système de fichiers. Commentaire supprimé.Il me semble que c'est l'erreur que vous obtenez lorsque le type de partition que vous essayez de monter n'est pas pris en charge.
la source
blkid
, sinon, et c'est un environnement Linux plus conventionnel,lsblk
est probablement préférable.Vous devrez peut-être utiliser (commande séparée) en raison de la taille de la partition:
Pour vous assurer que la partition est correctement créée, utilisez
/sbin/parted /dev/mmcblk0p1 print”
Ensuite, vous devez formater la partition créée
la source
parted
on/dev/mmcblk0p1
créera une table de partition sur une partition d'un périphérique qui a déjà été partitionné. De plus, le fait de suivre ces instructions effacera toutes les données sur l'appareil .