现在,小巧方便的USB存储设备已经非常普遍。虽然样子小巧,但其存储容量却可以从16MB到上百GB,并且价格也越来越便宜(尤其是16MB和32MB的优盘,价格已经非常低,各种移动硬盘的价格也下降得非常快)。
USB设备的流行有很多原因,其中主要的原因之一是其不仅携带方便,而且使用起来也非常方便(可以热插拨)。虽然USB存储设备已经非常流行,但与在Windows中相比,在Linux中使用USB设备还不是很方便(即便在Fedora中也没有太大的改观)。所以本文中我将介绍一种一劳永逸的办法,只要在机器上对USB存储设备进行一次设置,以后就可以非常方便地使用它。
现在,作为一个便携的存储设备,存储卡的使用已经非常普遍。不过,要读取存储卡的内容,我们一般需要卡读取器(这种类型的卡一般用于数码相机中)。此外,由于这种类型的卡格式不尽相同,比如有CompactFlash、Memory Stick和SmartMedia等,并且不同的卡需要不同的卡读取器来进行读取,所以在此不分别对其进行讨论,而只讨论通用的USB存储设备。
设备的兼容性
首先我们需要了解的是,并不是所有的USB存储设备都可以在Linux上使用,只有与Linux系统兼容的设备才可以在Linux中使用。那么到底哪些USB存储设备可以在Linux中使用呢?在我们购买USB存储设备时,包装盒上一般都会注明它可以在Windows和Mac中使用,或者说在Windows 2000及以后的版本中无需安装驱动程序即可以使用。一般来说,这样的设备就可以在Linux中使用。当然,对于各种型号的读卡器,由于其所读的卡很多,所以情况不尽相同。我的建议是,在购买这种类型的卡时,最好只购买其中一种卡。
如果对自己的设备没有信心,那么可以到一个Linux论坛上与别人交流一下,看一看是否有人在使用这种类型的设备,或者直接到Google中搜索一下,看有没有人对你使用的设备的兼容性提出一些建议。搜索方法很简单,一般只要输入设备的型号和Linux即可以看到结果。
在Linux中查找设备
在设置系统以让其可以使用USB存储设备之前,我们有必要先了解一下它是如何被Linux处理的。Linux中处理USB存储设备的驱动方式和SCSI(小型机接口)设备差不多,SCSI曾经是最流行的外围设备,但如今它已经风光不在,因为更加便宜也更易于使用的USB设备比其更有竞争力。Linux处理SCSI和USB设备的方式意味着无论是SCSI还是USB设备,在“硬件浏览器”中它们都将被显示在/dev目录下,且被显示为/sda、/sdb、/sdc等,显示的内容取决于你安装的这种类型的设备数量。事实上,这里显示的设备名称(sda、sdb、sdc等)的意思是SCSI Device A、B、C等。
在Fedora中,查看USB设备最简单的方法就是使用“硬件浏览器”。打开该浏览器的方法是依次点击:“系统工具”→“硬件浏览器”。如果当前的身份不是root,那么系统会要求输入root密码。然后就会弹出一个窗口,在窗口的左边列表中点击“硬盘驱动器”(注意不是“USB设备”)。这时,如果USB存储设备是和Linux兼容的,那么就会出现在这个地方,并且名字很可能是/dev/sda1(假设机器上只有一个这种类型的设备),如果机器上有多个这种类型的设备,那么其显示的名字可能会是sdb1、sdc1等。我的机器上安装有两个USB存储设备,一个是60GB的移动硬盘(有两个分区),另外一个是128MB的优盘。我运行“硬盘浏览器”时显示的结果如图1所示。
图1 通过“硬件浏览器”查看USB存储设备
除了通过硬件浏览器来查看系统连接的USB存储设备外,也可以通过fdisk命令来查看。下面是在我的机器上运行fdisk l时显示的情况:
[root@myserver root]# fdisk -l
Disk /dev/sda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3697 29696121 c Win95 FAT32 (LBA)
/dev/sda2 3698 7295 28900935 c Win95 FAT32 (LBA)
Disk /dev/sdb: 131 MB, 131072000 bytes
5 heads, 50 sectors/track, 1024 cylinders
Units = cylinders of 250 * 512 = 128000 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1024 127975 c Win95 FAT32 (LBA)
Disk /dev/hda: 122.9 GB, 122942324736 bytes
……
进行设置
如果已经看到了如图1所示的内容,那么就说明系统已经可以识别存储设备,但现在还不能非常方便地使用它。为了能够让USB存储设备点击几下鼠标就可以使用,需要为USB设备在fstab文件中添加一些内容。
使用一个编辑器打开/etc/fstab文件,然后为在图1中“硬件浏览器”显示的USB存储设备添加一行内容:
/dev/sda1 /mnt/usb1 auto defaults,users,noauto 0 0
下面我们来看一看该行所表示的意思:
◆第一部分“/dev/sda1”(或者“/dev/sdb1”等)是告诉系统设备所在的位置。这些信息可以从“硬件浏览器”中获得。这里的1指的是第一个USB设备中的第一个分区(如果只有一个设备则显示的设备名称就是/etc/sda1)。
◆第二部分“/mnt/usb1”是设备所要使用的挂载点。这个挂载点可以是一个已经存在的文件夹,也可以自己新建一个文件夹。需要注意的是,如果使用的是一个已经存在的文件夹,那么挂载完以后,文件夹原来的内容将不可访问(并没有丢失,卸载设备后即可访问)。
◆第三部分指明的是设备所使用的文件系统,一般情况下,只需将其设为auto,让系统自己识别设备所使用的文件系统即可。
◆接下来的三个部分,即“defaults,users,noauto”,对设备进行了一些设置(注意三者之间是用逗号而不是空格来分隔)。其中defaults告诉系统使用缺省的方式来处理该设备;users则允许本机器原所有用户都可以使用它该设备;noauto告诉系统在启动时不要自动加载该设备。因为是可移动的存储器,所以很有可能在系统启动时没有插上。
◆最后一个部分是两个零,因为解释起来需要比较大的篇幅,所以在此不详细说明,我们只需要记住是使用两个零,并且两个零之间使用一个空格进行分隔即可(如需了解详细内容可查阅其它资料)。
如果实在搞不清楚各个部分所表示的意义其实也没有关系,不过需要注意的是,在有空格的地方不要使用Tab键来代替,因为在一些文本编辑器中会导致一些问题。添加完上述内容后,保存fstab文件并且退出编辑。
到此我们已经编辑好了fstab文件,如果这时在fstab文件中所列的挂载点还没有创建的话请马上创建一个。在本例中,我使用“mkdir /mnt/usb1”来创建所需的挂载点。
使用USB存储设备
完成上述步骤后,就可以非常轻松地使用USB存储设备了。现在将设备插入,然后在桌面上击右键,在弹出选单中选择:“磁盘”→“usb1”,这时就会在桌面上出现一个新的驱动器(在Red Hat 9中需要重新启动机器,这样新的存储设备名字才会出现在弹出的选单中)。这时,我们就可以像使用其它设备一样使用它了,要查看其中的内容,只需要双击该图标即可(如图2所示)。
图2 查看USB存储设备中的内容
Fedora用户需要注意的是,如果是从USB存储设备中拖拉文件至桌面,执行的是移动操作,而不是拷贝操作。而向其它的位置拖拉文件则进行的复制操作。在Red Hat 9中,所有的拖拉操作执行的都是复制操作。
在拨出USB设备前,我们应该先对其进行卸载,否则可能会造成数据的丢失。要卸载USB存储设备,所要做的只是在桌面图标上单击鼠标右键,然后在弹出选单中选择“卸载文件卷”。注意,在卸载之前要关闭所有查看USB存储设备内容的窗口,否则系统不会允许进行卸载操作。
按照前面的方法,我们可以添加其它的USB存储设备。在我的机器上,总共添加了三个挂载点(如图3所示)。
图3 添加多个USB存储设备
小结
在使用USB存储设备时,虽然我们也可以通过mount命令来挂载和卸载USB存储设备,但是本文介绍的方法却要方便和快捷得多,特别是对那些习惯于图形化界面的用户来说,本文的方法可以更轻松地使用Linux。(T111)