U盘/SD卡挂载

来源:互联网 发布:怎么查看占用的端口号 编辑:程序博客网 时间:2024/06/01 08:54
说明:
U盘和SD卡大部分操作上是一样的,因此下面将用U盘进行说明,如无特别说明在U盘上的操作在SD卡上同样有效;
U盘和SD卡里的文件系统比较常用的是fat32;这里也是基于fat32来说明的;


挂载:
挂载前首先要保证U盘已经被系统识别到了。被识别到了后在/dev下会有节点显示,需要注意的是U盘的节点和硬盘的节点都是以sd开头的,注意不要搞错;SD卡的节点比较特殊,是以mmcblk开头的;这里假设U盘的设备节点为sdc,SD卡的设备节点为mmcblk0
有一点需要注意,U盘/SD卡插入后有时只有一个设备节点,而有时会有两个节点,一个设备节点和一个分区节点;设备节点为上面提到的sdc或者mmcblk0,而分区节点为sdc1,mmcblk0p1;


如果有分区节点的话,要选择分区节点;这里假设存在分区节点,即sdc1和mmcblk0p1
选择挂载目录,即你想在哪个目录下访问U盘/SD卡里面的内容,这个目录必须是已经存在了的,这里假设要挂载到/mnt/usb目录下,并且该目录已经存在
输入命令:
U盘:mount -t vfat /dev/sdc1 /mnt/usb
SD卡:mount -t vfat /dev/mmcblk0p1 /mnt/usb
注意,挂载时当前目录不能为要挂载的目录,如输入上面的命令是不能在/mnt/usb目录下执行


卸载:
完成对U盘的读写操作后需要将U盘卸载后才能拔出,不然可能会对里面的数据造成损坏或者数据不同步。卸载时要确保里面的内容没有被访问,并且保证当前目录不是挂载目录及其子目录,否则卸载时会提示设备繁忙,导致卸载失败,如上面挂载在/mnt/usb目录,卸载时不能在/mnt/usb执行
输入命令:
U盘:umount /mnt/usb


扩展说明:
1.U盘/SD卡和硬盘一样可以有多个分区的,但在Windows系统下只能识别第一个分区;有时U盘会被错误的识别为移动硬盘,这个时候就能识别多个分区(不清楚是U盘出现异常还是Windows系统出现异常);
2.单分区下,有些U盘/SD卡在linux会有两个节点,一个设备节点和一个分区节点;而有些只有一个设备节点,没有分区节点,出现这样的情况是因为MBR,当U盘中有MBR时,就会有设备节点和分区节点,如果没有,则只有一个设备节点;
3.对于fat32这类标准文件系统,linux会自动识别的,所以挂载时-t vfat是可以省略的,输入如下命令也是可以的:mount /dev/sdc1 /mnt/usb;此方法可以用于ext2/3等其他标准文件系统,但ntfs可能不行(未实际验证过,猜测而已,因为ntfs挂载时需要ntfs-3g这样一个第三方库支持)
4.挂载的时候加上参数usefree可以加快挂载速度,仅适用于fat32,前提是fsinfo扇区的值有效;而且事实上对于U盘这些容量不大的存储设备效果并不明显;仅供参考
5.卸载提示设备繁忙,卸载失败时可以用下面的命令查看是哪个进程在访问该目录:fuser -u /mnt/usb;或者直接将访问该目录的进程干掉(就是这么简单粗暴),fuser -ck /mnt/usb
0 0