USBDISK(4) USBDISK(4) NAME usbdisk, usbfat: - serve USB mass storage devices SYNOPSIS usb/disk [ -dDfl ] [ -m mountpoint ] [ -s srvname ] [ ctrlno id ] usbfat: [ -fl ] [ disk [ mntpt ] ] DESCRIPTION Disk serves a directory named mountpoint (default /n/disk) containing the files ctl and n, where n is the number of a LUN to access, for all detected LUNs of the named or found USB device. Disk searches for a USB device with class 8 (storage), subclass 2 (ATAPI CD/DVD/BD), 5 (removable, ATAPI-like) or 6 (SCSI transparent), and protocol 0x50 (bulk), or uses /dev/usb/ctrlno/id if specified. In every LUN directory are the files data and raw. data gives read/write access to blocks of the device. raw is a raw SCSI-like interface (talk to it with scuzz(8)). The root directory's ctl file accepts the command `reset', which tells disk to again fetch the information about all LUNs, and yields the device geometries when read. The -d option generates debugging output. The -f option avoids freaking out some cheap USB flash disks by not issu- ing UMS reset commands to them. The -l option asks the device for its maximum LUN. By default, disk assumes a max- imum LUN of zero, since some devices get upset if you ask them for their maximum LUN. Flash memory devices are likely to have multiple LUNs. The -m option mounts the served hierarchy on mountpoint instead of /n/disk. The -s option posts a mountable file descriptor as /srv/srvname. The -D option prints all 9P messages. EXAMPLES Access the usual preformatted FAT partition: % usb/usbd % usb/disk -l % disk/fdisk -p /n/disk/0/data part dos 7 31559 % dossrv -f /n/disk/0/data:7 usbstorage dossrv: serving #s/usbstorage % mount /srv/usbstorage /n/d: % ls -l /n/d: alrw-rw-rw- M 39 bill trog 180364 Oct 5 18:14 /n/d:/9LOAD d-rwxrwxrwx M 39 bill trog 0 Nov 13 14:30 /n/d:/benedict USBDISK(4) USBDISK(4) The latter part of the above example, from disk/fdisk to mount, has been packaged up as usbfat:, which mounts the FAT file system in the DOS partition of the named disk (by default /n/disk/0/data) on mntpt (by default /n/usb). FILES /n/disk default mountpoint /n/usb default mountpoint for FAT file system on the disk /srv/usbfat.$user FAT file system service SOURCE /sys/src/cmd/usb/disk /rc/bin/usbfat: SEE ALSO fs(3), sd(3), usb(3), partfs(8), prep(8), scuzz(8) BUGS Should implement sd(3)'s interface for each LUN. Currently, if there are multiple partitions, you can use fs(3) to man- age them. If `fdisk -p' prints nothing, there is no parti- tion table on the device, so one can invoke dossrv(4) directly. USB 1 flash disks' I/O rates are slow and variable. Reading and writing in large units (e.g., 4KB) seems to be faster by an order of magnitude when transferring large volumes of data.