Linux挂载U盘(使用mount命令)

挂载 U 盘和挂载光盘的方式是一样的,只不过光盘的设备文件名是固定的(/dev/sr0 或 /dev/cdrom),而 U 盘的设备文件名是在插入 U 盘后系统自动分配的。

因为 U 盘使用的是硬盘的设备文件名,而每台服务器上插入的硬盘数量和分区方式都是不一样的,所以 U 盘的设备号需要单独检测与分配,以免和硬盘的设备文件名产生冲突。

U 盘的设备文件名是系统自动分配的,我们只要查找出来然后挂载可以了。首先把 U 盘插入 Linux 系统中,这里需要注意的是,如果是虚拟机,则需要先把鼠标点入虚拟机再插入 U 盘。

通过使用 fdisk 命令,即可查看到 U 盘的设备文件名,执行命令如下:

[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5GB, 21474836480 bytes
#系统硬盘
…省略部分输出…
Disk/dev/sdb: 8022 MB, 8022654976 bytes
#这就是识别的U盘,大小为8GB
94 heads, 14 sectors/track, 11906 cylinders
Units = cylinders of 1316 * 512 = 673792 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 11907 7834608 b W95 FAT32
#系统给U盘分配的设备文件名

查看到 U 盘的设备文件名,接下来就要创建挂载点了。命令如下:

[root@localhost ~]# mkdir /mnt/usb

然后就是挂载了,挂载命令如下:

[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/
挂载U盘。因为是Windows分区,所以是vfat文件系统格式
[root@localhost ~]# cd /mnt/usb/
#去挂载点访问U盘数据
[root@localhost usb]# ls
#输出为乱码
#之所以出现乱码,是因为编码格式不同

之所以出现乱码,是因为 U 盘是 Windows 中保存的数据,而 Windows 中的中文编码格式和 Linux 中的不一致,只需在挂载的时候指定正确的编码格式就可以解决乱码问题,命令如下:

[root@localhost ~]# mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb/
#挂载U盘,指定中文编码格式为UTF-8
[root@localhost ~]# cd /mnt/usb/
[root@localhost usb]# ls
1111111年度总结及计划表.xls ZsyqlHL7osKSPBoGshZBr6.mp4 协议书
12月21日.doc 恭喜发财(定).mp4 新年VCR(定).mp4
#可以正确地查看中文了

因为我们的 Linux 在安装时采用的是 UTF-8 编码格式,所以要让 U 盘在挂载时也指定为 UTF-8 编码格式,才能正确显示。

[root@localhost ~]# echo $LANG
zh_CN.UTF-8
#查看一下Linux默认的编码格式

注意,Linux 默认是不支持 NTFS 文件系统的,所以默认是不能挂载 NTFS 格式的移动硬盘的。要想让 Linux 支持移动硬盘,主要有三种方法:
  1. 重新编译内核,加入 ntfs 模块,然后安装 ntfs 模块即可;
  2. 不自己编译内核,而是下载已经编译好的内核,直接安装即可;
  3. 安装 NTFS 文件系统的第三方插件,也可以支持 NTFS 文件系统;