1:首先确认linux设备识别到U盘
方法1:dmesg 查看到U盘插入
root@imx8qxpc0mek:/huali# dmesg | grep usb
# 显示
[ 538.704733] usb 1-1.1: new high-speed USB device number 6 using cdns-usb3
[ 538.809733] usb 1-1.1: New USB device found, idVendor=0781, idProduct=5567
[ 538.816686] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 538.824161] usb 1-1.1: Product: SanDisk 3.2Gen1
[ 538.828886] usb 1-1.1: Manufacturer: USB
[ 538.833053] usb 1-1.1: SerialNumber: 0901673e9a6e15772e6298fb11a51622110985a3ff565b4ca93b1a30217fc355faa6000000000000000000007cc0a3e7ff0b5d2067558107cb28d691
[ 538.859101] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[ 538.870040] scsi host1: usb-storage 1-1.1:1.0
方法2:lsblk 查看到对应存储空间的设备
root@imx8qxpc0mek:/huali# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 57.3G 0 disk
`-sdb1 8:17 1 57.3G 0 part
mmcblk0 179:0 0 7.1G 0 disk
|-mmcblk0p1 179:1 0 100M 0 part
|-mmcblk0p2 179:2 0 2.7G 0 part /
如果U盘插入没有识别到的话,那么需要检查linux设备的驱动
lsblk -f可以查看U盘格式
如下所示,sdb1是U盘,文件系统是 ntfs格式
root@imx8qxpc0mek:/huali# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
`-sdb1 ntfs U_pan 7EA23241A231FDE9
mmcblk0
|-mmcblk0p1 vfat C94B-A9F5
|-mmcblk0p2 ext4 eab62553-943e-4fc0-a9e5-d5b44c259d66 /
2:挂载U盘及常见报错处理
ntfs 格式的设备挂载需要使用ntfs-3g指令,直接使用mount指令挂载设备会报错
mount: /huali/emmc: unknown filesystem type 'ntfs'.
ntfs-3g软件安装包
wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2021.8.22.tgz
ntfs-3g挂载报错
root@imx8qxpc0mek:/huali# ./ntfs-3g /dev/sdb1 emmc/
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.14.98
ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root
首先尝试一下 "modprobe fuse"指令
root@imx8qxpc0mek:/huali# modprobe fuse
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.14.98
首先确认一下当前系统下是否存在 “/lib/modules/4.14.98” 这个路径
如果路径不对的话,就直接修改一下名称
# 修改名称之前,请确认配置内核和运行内核是一致的
root@imx8qxpc0mek:/huali# uname -r
4.14.98
root@imx8qxpc0mek:/lib/modules# ls
4.14.98-2.3.2+g0347fe7527d0
root@imx8qxpc0mek:/lib/modules# mv 4.14.98-2.3.2+g0347fe7527d0/ 4.14.98
再次重试挂载
报格式错误,说明当前fuse.ko文件和当前系统格式不匹配;那么需要重新编译linux内核,从编译的内核中查找 fuse.ko文件,并替换本地的fuse.ko文件
root@imx8qxpc0mek:/huali# ./bin/ntfs-3g /dev/sdb1 emmc/
modprobe: ERROR: could not insert 'fuse': Exec format error
ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root
再次尝试挂载, 已挂载成功,可以查看到/dev/sdb1 设备信息
root@imx8qxpc0mek:/huali# ./ntfs-3g /dev/sdb1 emmc/
root@imx8qxpc0mek:/huali# ls emmc/
MocarOS_OBU_C320-C820_B25CN_MEXICO_V.2.5.11 System Volume Informationgiht_temp.txt
root@imx8qxpc0mek:/huali# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 2.7G 1.4G 1.2G 54% /
devtmpfs 396M 4.0K 396M 1% /dev
tmpfs 876M 8.0K 876M 1% /dev/shm
tmpfs 876M 41M 836M 5% /run
tmpfs 876M 0 876M 0% /sys/fs/cgroup
tmpfs 876M 22M 855M 3% /tmp
tmpfs 876M 244K 876M 1% /var/volatile
/dev/mmcblk0p6 1.1G 2.7M 977M 1% /upgrade
/dev/mmcblk0p7 58M 60K 54M 1% /userdata
/dev/mmcblk0p8 178M 208K 164M 1% /app
/dev/mmcblk0p9 1.9G 291M 1.5G 17% /huali
/dev/sdb1 58G 2.2G 56G 4% /huali/emmc
插拔SIM卡之后报错,说明上次挂载之后没有正常卸载,需要手动 “umount /dev/sdb1” 卸载一下即可
ls: cannot access '/run/media/sdb1': Transport endpoint is not connected