Ketika saya menjalankan linux dari kartu sd dan mencoba me-mount kartu sd -tidak ada masalah, berfungsi dengan baik. Tetapi ketika saya menjalankan linux dari memori flash, saya tidak dapat memasang kartu SD saya:
# mount /dev/mmcblk0p1 /mnt/
mount: mounting /dev/mmcblk0p1 on /mnt/ failed: Invalid argument
Apa yang bisa menjadi alasan dasar untuk kesalahan ini?
Informasi tambahan
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 ...
) agarfstab
entri tidak digunakan./var/log/messages
? Bagaimana dengandmesg | tail
?mount -t /dev/mmcblk0p1 /mnt
bukan perintah yang lengkap. Jika Anda mengetahui tipe file files, Anda harus menentukannya setelah argumen -t (mis.mount -t vfat /dev/mmcblk0p1 /mnt
) Atau menghilangkan -t sepenuhnya.Jawaban:
Seperti yang dikomentari oleh goldilocks ,
mount -t
mengharapkan tipe sistem file yang akan datang-t
, sehingga tidak akan berfungsi. Kalau tidak, sepertinya Anda hanya perlu menentukan jenis sistem file. Jika Anda tidak tahu tipe sistem file, maka ada daftar metode untuk mengetahuinya dalam jawaban ini . Jikafile
perintah tersedia, ini mungkin metode terbaik. Sebagai root, Anda akan melakukan:Perhatikan juga bahwa jika tipe sistem file tidak ada dalam daftar
/proc/filesystems
, maka driver tidak dikompilasi ke dalam kernel dan karenanya harus tersedia sebagai modul eksternal. Setelah Anda memiliki jenis yang benar, Anda dapat mencoba:Sebagai pemikiran terakhir, pastikan juga
/mnt
direktori tersebut ada! Jika tidak membuatnya denganmkdir /mnt
.sumber
Alasan dasar: (diperbarui)
1) Sistem Anda tidak (dengan benar?) Menginisialisasi atau tidak mengenali SD saat booting dari flash. Apakah ada
/dev/mmcblk0
perangkat setelah Anda boot dari flash? Apa yangfdisk -l /dev/mmcblk0
dikatakan?2) Tidak ada sistem file di / dev / mmcblk0p1, Anda harus membuat sistem file terlebih dahulu (
mkfs ...
). Periksa denganfile -s /dev/mmcblk0p1
3) Sistem file pada / dev / mmcblk0p1 rusak, Anda perlu memeriksa / memperbaikinya, mencoba
fsck /dev/mmcblk0p1
, atau membuat yang baru4) kernel Anda (ketika booting dari flash) tidak memiliki driver sistem file yang dibutuhkan, memeriksa
cat /proc/filesystems
danls "/lib/modules/$(uname -r)/kernel/fs/"
dan melihat apakah daftar yang berisi dibutuhkan jenis file system. Biasanya, kernel yang lebih lama tidak mendukung ext4, sementara OS Anda mungkin sudah memiliki alat untuk membuat sistem file ext4.5) Cacat perangkat keras - bisa berupa kartu SD, pengontrol, kabel ... tetapi jika berfungsi saat booting dari kartu SD maka ini kemungkinan besar tidak demikian.
sumber
/proc/filesystems
hanya yang dikompilasi ke dalam kernel. Misalnya saya/proc/filesystems
tidak mengandungvfat
, tetapi saya masih bisa memasangvfat
sistem karena tersedia sebagai modul.util-linux
me-mount mencoba untuk mengidentifikasi filesystem melaluiblkid
upaya maka semuanya di/etc/filesystems
atau/proc/filesystem
. Saya pikir ini adalahbusybox
mount, jadi mungkin kurang. Kemungkinan besar akan melewatkan sistem file flash spesialis.Pertama periksa sistem file yang didukung di kernel.
Saya berasumsi bahwa Anda mencoba memasang kartu SD yang sama dari mana Anda menjalankan Linux. Jika demikian, saya berasumsi, cukup masuk akal, bahwa ia memiliki dukungan sistem file asli di Linux. Untuk memastikan Anda telah memuat driver kartu SD, Anda dapat mencoba,
Sekarang, coba baca akses ke partisi:
Kalau tidak:
fdisk
akan memberi tahu Anda tipe partisi juga.Ini meyakinkan Anda bahwa driver kartu SD dapat mengakses perangkat blok. Sekarang Anda dapat menjalankan
parted
untuk mencetak sistem file:Setelah Anda mengetahui FS, pasang dengan
sumber
parted
memang mencoba untuk menentukan jenis sistem file. Komentar dihapus.Sepertinya saya ingat ini adalah kesalahan yang Anda dapatkan ketika jenis partisi yang Anda coba pasang tidak didukung.
sumber
blkid
, jika tidak, dan ini lingkungan Linux yang lebih konvensional,lsblk
mungkin lebih disukai.Mungkin Anda perlu menggunakan (perintah parted) karena ukuran partisi:
Untuk memastikan bahwa partisi dibuat dengan benar, gunakan
/sbin/parted /dev/mmcblk0p1 print”
Maka Anda harus memformat partisi yang dibuat
sumber
parted
on/dev/mmcblk0p1
akan membuat tabel partisi pada partisi perangkat yang sudah dipartisi. Juga, mengikuti petunjuk ini akan menghapus semua data pada perangkat .