Linux/FreeBSD系统下U盘使用教程:挂载方法与驱动详解
首先了解一个基本概念:所有带有USB接口的存储设备——例如USB硬盘、通过USB转接头连接的CF卡、MMC卡等——操作系统都会将其识别并当作U盘来处理。这意味着它们都可以归入“U盘”这一类别来管理。
在Linux和FreeBSD环境中,U盘会被统一模拟为SCSI硬盘。因此,当你插入U盘时,系统分配的设备节点通常如下:
Linux下:/dev/sda, /dev/sdb …
FreeBSD下:/dev/da0s1, /dev/da0s2 …
不同系统版本和内核设置会导致USB驱动模块的差异。建议使用RedHat 7.2及以上版本(以内核版本为准),或FreeBSD 4.7及更高版本,这样在驱动兼容性方面可以省去许多麻烦。
U盘插入后,挂载操作实际上只需几步即可完成:
首先在/mnt目录下创建一个专用挂载点:
mkdir /mnt/usbdsk
然后执行挂载命令:
Linux:mount -t msdos /dev/sda1 /mnt/usbdsk
FreeBSD:mount -t msdos /dev/da0s1 /mnt/usbdsk
需要特别留意的是:部分U盘内建了虚拟的开机或杀毒软盘,插入后系统可能会识别出两个SCSI硬盘设备,例如/dev/sda和/dev/sdb。此时执行mount命令时,请仔细选择你要使用的正确设备节点。另外,如果U盘的文件系统并非FAT16格式,记得通过-t参数指定相应的文件系统类型。
我自己曾经使用过一块64MB的MMC卡(西门子6688手机上的那种),格式为FAT16,通过MMC转USB接头连接到ThinkPad笔记本上。系统是FreeBSD 4.7的mini installation,插入后系统提示检测到SCSI盘,直接运行mount -t msdos /dev/da0s1 /mnt/usbdsk即可成功挂载。
关于驱动模块,它们实际上是支持动态加载的。Linux系统主要涉及usb-storage.o、scsi_mod.o和sd_mod.o这三个内核模块。新版本的Linux默认会自动加载这些模块,用户无需额外操作。FreeBSD下对应模块的名称我不太确定,但原理相同。如果确实需要手动加载,请先找到上述三个模块文件的具体位置(不同发行版路径不同),然后使用modprobe命令加载即可。举例说明:/lib/modules/2.4.18-14/kernel/drivers/usb/storage/modprobe -r usb-storage.o。
(个人在FreeBSD下测试通过)
