在插入 USB 存储之前,需要确保文件集已经正确安装。要求下列文件集能存取此 USB 存储:

# lslpp -L devices.usbif.08025002.rte
 Fileset Level State Type Description (Uninstaller)
devices.usbif.08025002.rte
7.1.0.15 A F USB Mass Storage Device
 Software
# lslpp -L devices.common.IBM.usb.rte
  Fileset                      Level  State  Type  Description (Uninstaller)
  devices.common.IBM.usb.rte
                            7.1.0.15    A     F    USB System Software


插入这个 USB 存储并运行 cfgmgr 来发现它:
# cfgmgr


发现后,系统就具备了两个设备(块和原始设备):
ls -l *usbms0
cr--r--r--    1 root     system       44,  0 Aug 22 18:59 rusbms0
br--r--r--    1 root     system       44,  0 Aug 22 18:59 usbms0


同样显示在这些设备输出中:
# lsdev |grep usb
usb0       Available               USB System Software
usbhc0     Available 08-08         USB Host Controller (33103500)
usbhc1     Available 08-09         USB Host Controller (33103500)
usbhc2     Available 08-0a         USB Enhanced Host Controller (3310e000)
usbms0     Available 2.1           USB Mass Storage


对于 AIX 5.3,第一个 USB 设备显示为 flashdrive0。

这时,我可以将这个 USB 存储视为一个原始卷并向它写入数据。但是,在该展示中,我将这个 USB 存储作为一个文件系统加载。我觉得没有必要为此 USB 加载创建一个日志加载,因为暂存文件系统的本质就是临时的,传递数据时的速度才是最为重要的。要创建这个 USB 存储文件系统,可以使用如下命令:

# mkfs -V jfs2 -o ea=v2 /dev/usbms0
mkfs: destroy /dev/usbms0 (yes)?
File system created successfully.
3927736 kilobytes total disk space.
Device /dev/usbms0:
  Standard empty filesystem
  Size:           7855472 512-byte (DEVBLKSIZE) blocks

之前的命令已对该 USB 存储进行初始化。选择 "Yes" 取消,否则初始化此设备。此文件系统的类型为 jfs2。我不认为 jfs2 类型对于此任务有多重要,因为此文件系统根本不会使用 jfs2 日志设备。但是由于这是创建文件系统的一个常规做法,于是我也就选择了 jfs2 类型。为了确保此文件系统具有可伸缩性,我使用 'ea' 选项对其进行了指定。在本示例中,要使用的设备就是所插入的这个 USB 存储,即 usbms0。

对于 AIX 5.3,加载命令中没有 NOLOG 选项。

接下来,加载该文件系统,指定是否不使用日志设备对其进行加载;确保首先创建要被加载的目录:

# mkdir /usb_mnt

# mount -o log=NULL /dev/usbms0 /usb_mnt

# df -g |grep usb
/dev/usbms0        3.75      3.73    1%        4     1% /usb_mnt

如果想要使用一个日志设备来加载该 USB 存储,那么可以使用 inline 日志。这就可以确保将它包含在此文件系统中:

# mkfs -olog=INLINE,ea=v2 -Vjfs2 /dev/usbms0
mkfs: destroy /dev/usbms0 (yes)?
logform: Format inline log for  ?y
File system created successfully.
3912376 kilobytes total disk space.
Device /dev/usbms0:
  Standard empty filesystem
  Size:           7824752 512-byte (DEVBLKSIZE) blocks
# mkdir /usb_mnt
# mount -V jfs2 -o log=/dev/usbms0 /dev/usbms0 /usb_mnt

卸载一个存储

使用完 USB 存储文件系统后,就可以卸载或移除它,然后再删除 usbms0 设备:

# umount /usb_mnt
# rmdev -dl usbms0

存储上的数据

在该演示中,我使用了一个名为 plaks.txt 的 CSV 文本文件。它是节取自一个数据库,此文件的部分内容如下所示:

alpha,uk01w,12001,jan,-2
bravo,ge01w,98801,jan,-3
charlie,se01w,98111,jan,0
delta,my01w,18811,jan,4
echo,sg01w,34131,janq,2

我之前曾指出,USB 存储的读取速度很快,但其写入速度会比内部磁盘慢。这一点可以通过一个示例复制操作得到验证。首先,我将一个文件从 USB 存储复制到一个内部磁盘。然后,我使用 timex 命令将同样的一个文件从内部磁盘再复制到此 USB 存储来显示此复制命令的计时。在进行这两次复制操作之前,文件系统已经进行了卸载和重加载,目的是为了使此操作不会使用文件系统缓存,不会因此影响计时的准确性。

首先,将此文件从 USB 存储复制到一个内部磁盘的 /holding 目录:

# pwd
/usb_mnt
# timex cp plaks.txt /holding/
real 0.03

接下来,从 USB 存储删除此文件并卸载和重加载此文件系统。

然后,将此文件从 /holding 复制回 USB 存储。

# cd /holding
# timex cp plaks.txt /usb_mnt/
real 0.06
10-05 13:18