Kiedy uruchamiam Linux z karty SD i próbuję zamontować kartę SD - brak problemu, działa dobrze. Ale kiedy korzystam z systemu Linux z pamięci flash, nie mogę zamontować karty SD:
# mount /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed: Invalid argument
Co może być podstawową przyczyną tego błędu?
Dodatkowe informacje
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 ...
), abyfstab
wpis nie był używany./var/log/messages
? Jak odmesg | tail
?mount -t /dev/mmcblk0p1 /mnt
nie jest kompletnym poleceniem. Jeśli znasz typ pliku file, powinieneś go podać po argumencie -t (np.mount -t vfat /dev/mmcblk0p1 /mnt
) Lub całkowicie pominąć -t.Odpowiedzi:
Jak skomentował goldilocks ,
mount -t
oczekuje , że typ systemu plików pojawi się później-t
, więc nie będzie działać. W przeciwnym razie wygląda na to, że wystarczy określić typ systemu plików. Jeśli nie znasz typu systemu plików, w tej odpowiedzi znajduje się lista metod . Jeślifile
polecenie jest dostępne, jest to prawdopodobnie najlepsza metoda. Jako root zrobiłbyś:Zauważ również, że jeśli typ systemu plików nie znajduje się na liście
/proc/filesystems
, sterownik nie jest wkompilowany w jądro i dlatego musi być dostępny jako moduł zewnętrzny. Gdy masz odpowiedni typ, możesz spróbować:Na koniec upewnij się, że
/mnt
katalog istnieje! Jeśli nie, utwórz go za pomocąmkdir /mnt
.źródło
Podstawowe powody: (zaktualizowano)
1) Twój system nie inicjuje (poprawnie?) Lub nie rozpoznaje karty SD podczas uruchamiania z pamięci flash. Czy istnieje
/dev/mmcblk0
urządzenie po uruchomieniu z pamięci flash? Cofdisk -l /dev/mmcblk0
mówi2) Nie ma systemu plików na / dev / mmcblk0p1, musisz najpierw utworzyć system plików (
mkfs ...
). Sprawdź zfile -s /dev/mmcblk0p1
3) System plików na / dev / mmcblk0p1 jest uszkodzony, musisz go sprawdzić / naprawić, wypróbować
fsck /dev/mmcblk0p1
lub utworzyć nowy4) Twój jądra (podczas bootowania z pamięci flash) nie ma potrzebnego sterownika systemu plików, sprawdź
cat /proc/filesystems
ils "/lib/modules/$(uname -r)/kernel/fs/"
i sprawdzić, czy lista zawiera potrzebne typ systemu plików. Zazwyczaj starsze jądra nie obsługują ext4, podczas gdy twój system operacyjny może już mieć narzędzia do tworzenia systemu plików ext4.5) Wada sprzętowa - może to być karta SD, kontroler, okablowanie ... ale jeśli działa podczas uruchamiania z karty SD, najprawdopodobniej tak nie jest.
źródło
/proc/filesystems
to tylko te, które są wkompilowane w jądro. Na przykład mój/proc/filesystems
nie zawieravfat
, ale nadal mogę zamontowaćvfat
system, ponieważ jest on dostępny jako moduł.util-linux
Zamontować próbuje zidentyfikować plików poprzezblkid
spróbuje wszystkiego w/etc/filesystems
lub/proc/filesystem
. Myślę, że to jestbusybox
wierzchowiec, więc prawdopodobnie robi mniej. Oba prawdopodobnie przegapiłyby specjalistyczny system plików flash.Najpierw sprawdź systemy plików obsługiwane w jądrze.
Zakładam, że próbujesz zamontować tę samą kartę SD, z której działa Linux. Jeśli tak, zakładam, całkiem rozsądnie, że ma on obsługę natywnego systemu plików w systemie Linux. Aby upewnić się, że załadowałeś sterownik karty SD, możesz spróbować,
Teraz spróbuj uzyskać dostęp do odczytu partycji:
Alternatywnie:
fdisk
powie ci również typy partycji.Zapewnia to, że sterownik karty SD może uzyskać dostęp do urządzenia blokowego. Teraz możesz uruchomić,
parted
aby wydrukować systemy plików:Kiedy poznasz FS, zamontuj go
źródło
parted
próbuje określić typ systemu plików. Komentarz usunięty.Wydaje mi się, że pamiętam ten błąd, który pojawia się, gdy typ partycji, którą próbujesz zamontować, nie jest obsługiwany.
źródło
blkid
, jeśli nie, i jest to bardziej konwencjonalne środowisko Linux,lsblk
prawdopodobnie jest lepsze.Być może trzeba użyć polecenia (parted) ze względu na rozmiar partycji:
Aby upewnić się, że partycja jest poprawnie utworzona, użyj
/sbin/parted /dev/mmcblk0p1 print”
Następnie musisz sformatować utworzoną partycję
źródło
parted
on/dev/mmcblk0p1
spowoduje utworzenie tabeli partycji na partycji urządzenia, które zostało już podzielone na partycje. Postępowanie zgodnie z tymi instrukcjami spowoduje również usunięcie wszystkich danych z urządzenia .