U盘挂载不上的问题
# mount /dev/sda1 /mnt/
mount: mounting /dev/sda1 on /mnt/ failed: Invalid argument
#
# mount -t vfat /dev/sda1 /mnt/
mount: mounting /dev/sda1 on /mnt/ failed: No such device
1 首先确认U盘和挂载目录是存在的,确认OK以后再确认当前U盘的文件系统格式
# fdisk -l
...
Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type
/dev/sda1 0,1,1 1023,63,32 32 60604415 60604384 28.8G b Win95 FAT32 # Win95 FAT32
2 确认当前内核是否支持此种文件系统格式
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev tmpfs
nodev devtmpfs
nodev configfs
nodev debugfs
nodev sockfs
nodev pipefs
nodev devpts
ext2
squashfs
nodev pstore
nodev functionfs
如果不支持,一种方法是将U盘格式化为当前内核支持的文件系统格式,二则是在内核配置添加上,然后方可支持此种文件格式的U盘挂载。
3 内核配置方式
内核搜索 CONFIG_VFAT_FS 配置选项,然后配置为*号即可。
其他文件系统的支持同样的方式配置
fat 文件系统: CONFIG_VFAT_FS
nfs文件系统:CONFIG_NTFS_FS
如果配置上了以后提示
# mount -t vfat /dev/sda1 /mnt/
[ 46.134884] FAT-fs (sda1): codepage cp437 not found
mount: mounting /dev/sda1 on /mnt/ failed: Invalid argument
原因是没有配置相应的文件系统的codepage;
File systems --->
-*- Native language support --->
< * > Codepage 437 (United States, Canada)
把Codepage 437 (United States, Canada)这个选项添加上,如果需要支持其他语言,同样也可以选上。
如果挂载继续提示
[ 21.785549] FAT-fs (sda1): IO charset iso8859-1 not found
mount: mounting /dev/sda1 on /mnt/ failed: Invalid argument
再把 CONFIG_NLS_ISO8859_1 这项配置也添加上去。然后就可以挂载了。