1*bbf21555SRichard Lowe.\" 2*bbf21555SRichard Lowe.\" Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved. 3*bbf21555SRichard Lowe.\" Copyright 2021 Oxide Computer Company 4*bbf21555SRichard Lowe.\" 5*bbf21555SRichard Lowe.\" The contents of this file are subject to the terms of the 6*bbf21555SRichard Lowe.\" Common Development and Distribution License (the "License"). 7*bbf21555SRichard Lowe.\" You may not use this file except in compliance with the License. 8*bbf21555SRichard Lowe.\" 9*bbf21555SRichard Lowe.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*bbf21555SRichard Lowe.\" or http://www.opensolaris.org/os/licensing. 11*bbf21555SRichard Lowe.\" See the License for the specific language governing permissions 12*bbf21555SRichard Lowe.\" and limitations under the License. 13*bbf21555SRichard Lowe.\" 14*bbf21555SRichard Lowe.\" When distributing Covered Code, include this CDDL HEADER in each 15*bbf21555SRichard Lowe.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*bbf21555SRichard Lowe.\" If applicable, add the following below this CDDL HEADER, with the 17*bbf21555SRichard Lowe.\" fields enclosed by brackets "[]" replaced with your own identifying 18*bbf21555SRichard Lowe.\" information: Portions Copyright [yyyy] [name of copyright owner] 19*bbf21555SRichard Lowe.\" 20*bbf21555SRichard Lowe.Dd November 29, 2021 21*bbf21555SRichard Lowe.Dt PCFS 4FS 22*bbf21555SRichard Lowe.Os 23*bbf21555SRichard Lowe.Sh NAME 24*bbf21555SRichard Lowe.Nm pcfs 25*bbf21555SRichard Lowe.Nd FAT formatted file system 26*bbf21555SRichard Lowe.Sh SYNOPSIS 27*bbf21555SRichard Lowe.In sys/param.h 28*bbf21555SRichard Lowe.In sys/mount.h 29*bbf21555SRichard Lowe.In sys/fs/pc_fs.h 30*bbf21555SRichard Lowe.Ft int 31*bbf21555SRichard Lowe.Fo mount 32*bbf21555SRichard Lowe.Fa "const char *spec" 33*bbf21555SRichard Lowe.Fa "const char *dir" 34*bbf21555SRichard Lowe.Fa "int mflag" 35*bbf21555SRichard Lowe.Fa \(dqpcfs\(dq 36*bbf21555SRichard Lowe.Fa NULL 37*bbf21555SRichard Lowe.Fa 0 38*bbf21555SRichard Lowe.Fa "const char *optptr" 39*bbf21555SRichard Lowe.Fa "int optlen" 40*bbf21555SRichard Lowe.Fc 41*bbf21555SRichard Lowe.Sh DESCRIPTION 42*bbf21555SRichard Lowe.Nm 43*bbf21555SRichard Loweis a file system type that enables direct access to files on FAT formatted disks 44*bbf21555SRichard Lowefrom within the SunOS operating system. 45*bbf21555SRichard Lowe.Pp 46*bbf21555SRichard LoweOnce mounted, 47*bbf21555SRichard Lowe.Nm 48*bbf21555SRichard Loweprovides standard file operations and semantics. 49*bbf21555SRichard LoweUsing 50*bbf21555SRichard Lowe.Nm 51*bbf21555SRichard Loweyou can create, delete, read, and write files on a FAT formatted disk. 52*bbf21555SRichard LoweYou can also create and delete directories and list files in a directory. 53*bbf21555SRichard Lowe.Pp 54*bbf21555SRichard Lowe.Nm 55*bbf21555SRichard Lowesupports FAT12 (floppies) and FAT16 and FAT32 file systems. 56*bbf21555SRichard Lowe.Pp 57*bbf21555SRichard Lowe.Nm 58*bbf21555SRichard Lowefile systems can be force umounted using the 59*bbf21555SRichard Lowe.Fl -f 60*bbf21555SRichard Loweargument to 61*bbf21555SRichard Lowe.Xr umount 8 . 62*bbf21555SRichard Lowe.Pp 63*bbf21555SRichard LoweThe 64*bbf21555SRichard Lowe.Nm 65*bbf21555SRichard Lowefile system contained on the block special file identified by 66*bbf21555SRichard Lowe.Fa spec 67*bbf21555SRichard Loweis mounted on the directory identified by 68*bbf21555SRichard Lowe.Fa dir . 69*bbf21555SRichard Lowe.Fa spec 70*bbf21555SRichard Loweand 71*bbf21555SRichard Lowe.Fa dir 72*bbf21555SRichard Loweare pointers to pathnames. 73*bbf21555SRichard Lowe.Fa mflag 74*bbf21555SRichard Lowespecifies the 75*bbf21555SRichard Lowe.Fa mount 76*bbf21555SRichard Loweoptions. 77*bbf21555SRichard LoweThe 78*bbf21555SRichard Lowe.Dv MS_DATA 79*bbf21555SRichard Lowebit in 80*bbf21555SRichard Lowe.Fa mflag 81*bbf21555SRichard Lowemust be set. 82*bbf21555SRichard LoweMount options can be passed to 83*bbf21555SRichard Lowe.Nm 84*bbf21555SRichard Loweusing the optptr and optlen arguments. 85*bbf21555SRichard LoweSee 86*bbf21555SRichard Lowe.Xr mount_pcfs 8 87*bbf21555SRichard Lowefor a list of mount options supported by 88*bbf21555SRichard Lowe.Nm 89*bbf21555SRichard Lowe.Pp 90*bbf21555SRichard LoweBecause FAT formatted media can record file timestamps between January 1st 1980 91*bbf21555SRichard Loweand December 31st 2127, it's not possible to fully represent UNIX 92*bbf21555SRichard Lowe.Vt time_t 93*bbf21555SRichard Lowein 94*bbf21555SRichard Lowe.Nm 95*bbf21555SRichard Lowefor 32 bit or 64 bit programs. 96*bbf21555SRichard LoweIn particular, if post-2038 timestamps are present on a FAT formatted medium and 97*bbf21555SRichard Lowe.Nm 98*bbf21555SRichard Lowereturns these, 32bit applications may unexpectedly fail with 99*bbf21555SRichard Lowe.Er EOVERFLOW 100*bbf21555SRichard Loweerrors. 101*bbf21555SRichard LoweTo prevent this, the default behaviour of 102*bbf21555SRichard Lowe.Nm 103*bbf21555SRichard Lowehas been modified to clamp 104*bbf21555SRichard Lowepost-2038 timestamps to the latest possible value for a 32bit 105*bbf21555SRichard Lowe.Vt time_t , 106*bbf21555SRichard Lowewhich is January 19th 2038, 03:14:06 UTC when setting and retrieving file 107*bbf21555SRichard Lowetimestamps. 108*bbf21555SRichard LoweYou can override this behavior using the 109*bbf21555SRichard Lowe.Ar noclamptime 110*bbf21555SRichard Lowemount option, as described in 111*bbf21555SRichard Lowe.Xr mount_pcfs 8 . 112*bbf21555SRichard Lowe.Pp 113*bbf21555SRichard LoweTimestamps on FAT formatted media are recorded in local time. 114*bbf21555SRichard LoweIf the recording and receiving systems use different timezones, the 115*bbf21555SRichard Lowerepresentation of timestamps shown on the two systems for the same medium might 116*bbf21555SRichard Lowevary. 117*bbf21555SRichard LoweTo correct this, 118*bbf21555SRichard Lowe.Nm 119*bbf21555SRichard Loweprovides a timezone mount option to force interpretation 120*bbf21555SRichard Loweof timestamps as read from a FAT formatted medium in a given timezone 121*bbf21555SRichard Lowe.Pq that of the recorder . 122*bbf21555SRichard LoweBy default, the local timezone of the receiver is used. 123*bbf21555SRichard LoweSee 124*bbf21555SRichard Lowe.Xr mount_pcfs 8 125*bbf21555SRichard Lowefor details. 126*bbf21555SRichard Lowe.Pp 127*bbf21555SRichard LoweThe root directory of a FAT formatted medium has no timestamps and 128*bbf21555SRichard Lowe.Nm 129*bbf21555SRichard Lowereturns the time when the mount was done as timestamp for the root of the 130*bbf21555SRichard Lowefilesystem. 131*bbf21555SRichard Lowe.Pp 132*bbf21555SRichard LoweThe FAT filesystem doesn't support multiple links. 133*bbf21555SRichard LoweAs a result, the link count 134*bbf21555SRichard Lowefor all files and directories in 135*bbf21555SRichard Lowe.Nm 136*bbf21555SRichard Loweis hard-coded as 137*bbf21555SRichard Lowe.Dq 1 . 138*bbf21555SRichard Lowe.Ss Mounting File Systems 139*bbf21555SRichard LoweUse the following command to mount 140*bbf21555SRichard Lowe.Nm 141*bbf21555SRichard Lowefrom diskette: 142*bbf21555SRichard Lowe.Bd -literal -offset indent 143*bbf21555SRichard Lowemount -F pcfs device-special directory-name 144*bbf21555SRichard Lowe.Ed 145*bbf21555SRichard Lowe.Pp 146*bbf21555SRichard LoweYou can use: 147*bbf21555SRichard Lowe.Bd -literal -offset indent 148*bbf21555SRichard Lowemount directory-name 149*bbf21555SRichard Lowe.Ed 150*bbf21555SRichard Loweif the following line is in your 151*bbf21555SRichard Lowe.Pa /etc/vfstab 152*bbf21555SRichard Lowefile: 153*bbf21555SRichard Lowe.Bd -literal -offset indent 154*bbf21555SRichard Lowedevice-special - directory-name pcfs - no rw 155*bbf21555SRichard Lowe.Ed 156*bbf21555SRichard Lowe.Pp 157*bbf21555SRichard LoweUse the following command to mount 158*bbf21555SRichard Lowe.Nm 159*bbf21555SRichard Lowefrom non-diskette media: 160*bbf21555SRichard Lowe.Bd -literal -offset indent 161*bbf21555SRichard Lowemount -F pcfs device-special:logical-drive directory-name 162*bbf21555SRichard Lowe.Ed 163*bbf21555SRichard Lowe.Pp 164*bbf21555SRichard LoweYou can use: 165*bbf21555SRichard Lowe.Bd -literal -offset indent 166*bbf21555SRichard Lowemount directory-name 167*bbf21555SRichard Lowe.Ed 168*bbf21555SRichard Loweif the following line is in your 169*bbf21555SRichard Lowe.Pa /etc/vfstab 170*bbf21555SRichard Lowefile: 171*bbf21555SRichard Lowe.Bd -literal -offset indent 172*bbf21555SRichard Lowedevice-special:logical_drive - directory-name pcfs - no rw 173*bbf21555SRichard Lowe.Ed 174*bbf21555SRichard Lowe.Pp 175*bbf21555SRichard Lowe.Ar device-special 176*bbf21555SRichard Lowespecifies the special block device file for the diskette 177*bbf21555SRichard Lowe.Pq Pa /dev/disketteN 178*bbf21555SRichard Loweor the entire hard disk 179*bbf21555SRichard Lowe.Po 180*bbf21555SRichard LowePa /dev/dsk/cNtNdNp0 181*bbf21555SRichard Lowefor a SCSI, SATA, NVME disk, and 182*bbf21555SRichard Lowe.Pa /dev/dsk/cNdNp0 183*bbf21555SRichard Lowefor IDE disks 184*bbf21555SRichard Lowe.Pc 185*bbf21555SRichard Loweor the PCMCIA pseudo-floppy memory card 186*bbf21555SRichard Lowe.Pq Pa /dev/dsk/cNtNdNsN . 187*bbf21555SRichard Lowe.Pp 188*bbf21555SRichard Lowe.Ar logical-drive 189*bbf21555SRichard Lowespecifies either the DOS logical drive letter 190*bbf21555SRichard Lowe.Po 191*bbf21555SRichard Lowe.Sy c 192*bbf21555SRichard Lowethrough 193*bbf21555SRichard Lowe.Sy z 194*bbf21555SRichard Lowe.Pc 195*bbf21555SRichard Loweor a drive number 196*bbf21555SRichard Lowe.Pq 1 through 24 . 197*bbf21555SRichard LoweDrive letter 198*bbf21555SRichard Lowe.Sy c 199*bbf21555SRichard Loweis equivalent to drive number 200*bbf21555SRichard Lowe.Sy 1 201*bbf21555SRichard Loweand represents the Primary DOS partition on the disk; drive letters 202*bbf21555SRichard Lowe.Sy d 203*bbf21555SRichard Lowethrough 204*bbf21555SRichard Lowe.Sy z 205*bbf21555SRichard Loweare equivalent to drive numbers 206*bbf21555SRichard Lowe.Sy 2 207*bbf21555SRichard Lowethrough 208*bbf21555SRichard Lowe.Sy 24 , 209*bbf21555SRichard Loweand represent DOS drives within the Extended FAT partition. 210*bbf21555SRichard LoweNote that 211*bbf21555SRichard Lowe.Ar device-special 212*bbf21555SRichard Loweand 213*bbf21555SRichard Lowe.Ar logical-drive 214*bbf21555SRichard Lowemust be separated by a colon. 215*bbf21555SRichard Lowe.Pp 216*bbf21555SRichard Lowe.Ar directory-name 217*bbf21555SRichard Lowespecifies the location where the file system is mounted. 218*bbf21555SRichard Lowe.Pp 219*bbf21555SRichard LoweFor example, to mount the Primary DOS partition from a SCSI hard disk, 220*bbf21555SRichard Loweuse: 221*bbf21555SRichard Lowe.Bd -literal -offset indent 222*bbf21555SRichard Lowemount -F pcfs /dev/dsk/cNtNdNp0:c /pcfs/c 223*bbf21555SRichard Lowe.Ed 224*bbf21555SRichard Lowe.Pp 225*bbf21555SRichard LoweTo mount the first logical drive in the Extended DOS partition from an IDE hard 226*bbf21555SRichard Lowedisk, use: 227*bbf21555SRichard Lowe.Bd -literal -offset indent 228*bbf21555SRichard Lowemount -F pcfs /dev/dsk/cNdNp0:d /pcfs/d 229*bbf21555SRichard Lowe.Ed 230*bbf21555SRichard Lowe.Pp 231*bbf21555SRichard LoweTo mount a DOS diskette in the first floppy drive when volume management is not 232*bbf21555SRichard Lowerunning use: 233*bbf21555SRichard Lowe.Bd -literal -offset indent 234*bbf21555SRichard Lowemount -F pcfs /dev/diskette /pcfs/a 235*bbf21555SRichard Lowe.Ed 236*bbf21555SRichard Lowe.Pp 237*bbf21555SRichard LoweIf Volume Management is running, run 238*bbf21555SRichard Lowe.Xr volcheck 1 239*bbf21555SRichard Loweto automatically mount the floppy and some removable disks. 240*bbf21555SRichard Lowe.Pp 241*bbf21555SRichard LoweTo mount a PCMCIA pseudo-floppy memory card, with Volume Management not running 242*bbf21555SRichard Lowe.Pq or not managing the PCMCIA media , 243*bbf21555SRichard Loweuse: 244*bbf21555SRichard Lowe.Bd -literal -offset indent 245*bbf21555SRichard Lowemount -F pcfs /dev/dsk/cNtNdNsN /pcfs 246*bbf21555SRichard Lowe.Ed 247*bbf21555SRichard Lowe.Ss "Conventions" 248*bbf21555SRichard LoweFiles and directories created through 249*bbf21555SRichard Lowe.Nm 250*bbf21555SRichard Lowemust comply with either the FAT short file name convention or the long file name 251*bbf21555SRichard Loweconvention introduced with Windows 95. 252*bbf21555SRichard LoweThe FAT short file name convention is of the form 253*bbf21555SRichard Lowe.Pa filename[.ext] , 254*bbf21555SRichard Lowewhere 255*bbf21555SRichard Lowe.Em filename 256*bbf21555SRichard Lowegenerally consists of from one to eight upper-case characters, while the 257*bbf21555SRichard Loweoptional 258*bbf21555SRichard Lowe.Em ext 259*bbf21555SRichard Loweconsists of from one to three upper-case characters. 260*bbf21555SRichard Lowe.Pp 261*bbf21555SRichard LoweThe long file name convention is much closer to illumos file names. 262*bbf21555SRichard LoweA long file name can consist of any characters valid in a short file name, 263*bbf21555SRichard Lowelowercase letters, non-leading spaces, the characters 264*bbf21555SRichard Lowe.Sy +,;=[] , 265*bbf21555SRichard Loweany number of periods, and can be up to 255 characters long. 266*bbf21555SRichard LoweLong file names have an associated short file name for systems that do not 267*bbf21555SRichard Lowesupport long file names. 268*bbf21555SRichard LoweThe short file name is not visible if the system recognizes long file names. 269*bbf21555SRichard Lowe.Nm 270*bbf21555SRichard Lowegenerates a unique short name automatically when creating a long file name. 271*bbf21555SRichard Lowe.Pp 272*bbf21555SRichard LoweGiven a long file name such as 273*bbf21555SRichard Lowe.Pa This is a really long filename.TXT , 274*bbf21555SRichard Lowethe short file name will generally be of the form 275*bbf21555SRichard Lowe.Pa THISIS~N\&.TXT , 276*bbf21555SRichard Lowewhere 277*bbf21555SRichard Lowe.Em N 278*bbf21555SRichard Loweis a number. 279*bbf21555SRichard LoweThe long file name will probably get the short name 280*bbf21555SRichard Lowe.Pa THISIS~1.TXT , 281*bbf21555SRichard Loweor 282*bbf21555SRichard Lowe.Pa THISIS~2.TXT 283*bbf21555SRichard Loweif 284*bbf21555SRichard Lowe.Pa THISIS~1.TXT 285*bbf21555SRichard Lowealready exits 286*bbf21555SRichard Lowe.Po or 287*bbf21555SRichard Lowe.Pa THISIS~3.TXT 288*bbf21555SRichard Loweif both exist, and so forth 289*bbf21555SRichard Lowe.Pc . 290*bbf21555SRichard LoweIf you use 291*bbf21555SRichard Lowe.Nm 292*bbf21555SRichard Lowefile systems on systems that do not support long file names, you may want to 293*bbf21555SRichard Lowecontinue following the short file name conventions. 294*bbf21555SRichard LoweSee 295*bbf21555SRichard Lowe.Sx EXAMPLES . 296*bbf21555SRichard Lowe.Pp 297*bbf21555SRichard LoweWhen creating a file name, 298*bbf21555SRichard Lowe.Nm 299*bbf21555SRichard Lowecreates a short file name if it fits the FAT short file name format, otherwise 300*bbf21555SRichard Loweit creates a long file name. 301*bbf21555SRichard LoweThis is because long file names take more directory space. 302*bbf21555SRichard LoweBecause the root directory of a 303*bbf21555SRichard Lowe.Nm 304*bbf21555SRichard Lowefile system is fixed size, long file names in the root directory should be 305*bbf21555SRichard Loweavoided if possible. 306*bbf21555SRichard Lowe.Pp 307*bbf21555SRichard LoweWhen displaying file names, 308*bbf21555SRichard Lowe.Nm 309*bbf21555SRichard Loweshows them exactly as they are on the media. 310*bbf21555SRichard LoweThis means that short names are displayed as uppercase and long file names 311*bbf21555SRichard Loweretain their case. 312*bbf21555SRichard LoweEarlier versions of 313*bbf21555SRichard Lowe.Nm 314*bbf21555SRichard Lowefolded all names to lowercase, which can be forced with the 315*bbf21555SRichard Lowe.Dv PCFS_MNT_FOLDCASE 316*bbf21555SRichard Lowemount option. 317*bbf21555SRichard LoweAll file name searches within 318*bbf21555SRichard Lowe.Nm , 319*bbf21555SRichard Lowehowever, are treated as if they were uppercase, so 320*bbf21555SRichard Lowe.Pa readme.txt 321*bbf21555SRichard Loweand 322*bbf21555SRichard Lowe.Pa ReAdMe.TxT 323*bbf21555SRichard Lowerefer to the same file. 324*bbf21555SRichard Lowe.Pp 325*bbf21555SRichard LoweTo format a diskette or a PCMCIA pseudo-floppy memory card in FAT format in the 326*bbf21555SRichard LoweSunOS system, use either the 327*bbf21555SRichard Lowe.Xr fdformat 1 328*bbf21555SRichard Lowe.Fl -d 329*bbf21555SRichard Loweor the DOS 330*bbf21555SRichard Lowe.Sy FORMAT 331*bbf21555SRichard Lowecommand. 332*bbf21555SRichard Lowe.Ss Boot Partitions 333*bbf21555SRichard LoweOn x86 systems, hard drives may contain an fdisk partition reserved for the boot 334*bbf21555SRichard Loweutilities. 335*bbf21555SRichard LoweThe most common case is the EFI system partition. 336*bbf21555SRichard LoweThese partitions are special instances of 337*bbf21555SRichard Lowe.Nm . 338*bbf21555SRichard LoweYou can mount an x86 boot partition with the command: 339*bbf21555SRichard Lowe.Bd -literal -offset indent 340*bbf21555SRichard Lowemount -F pcfs device-special:boot directory-name 341*bbf21555SRichard Lowe.Ed 342*bbf21555SRichard Loweor you can use: 343*bbf21555SRichard Lowe.Bd -literal -offset indent 344*bbf21555SRichard Lowemount directory-name 345*bbf21555SRichard Lowe.Ed 346*bbf21555SRichard Loweif the following line is in your 347*bbf21555SRichard Lowe.Pa /etc/vfstab 348*bbf21555SRichard Lowefile: 349*bbf21555SRichard Lowe.Bd -literal -offset indent 350*bbf21555SRichard Lowedevice-special:boot - directory-name pcfs - no rw 351*bbf21555SRichard Lowe.Ed 352*bbf21555SRichard Lowe.Pp 353*bbf21555SRichard Lowe.Ar device-special 354*bbf21555SRichard Lowespecifies the special block device file for the entire hard disk 355*bbf21555SRichard Lowe.Pq Pa /dev/dsk/cNtNdNp0 356*bbf21555SRichard Lowe.Pp 357*bbf21555SRichard Lowe.Ar directory-name 358*bbf21555SRichard Lowespecifies the location where the file system is mounted. 359*bbf21555SRichard Lowe.Pp 360*bbf21555SRichard LoweAll files on a boot partition are owned by super-user. 361*bbf21555SRichard LoweOnly the super-user may create, delete, or modify files on a boot partition. 362*bbf21555SRichard Lowe.Sh ENVIRONMENT 363*bbf21555SRichard LoweSee 364*bbf21555SRichard Lowe.Xr environ 7 365*bbf21555SRichard Lowefor descriptions of the following environment variables 366*bbf21555SRichard Lowefor the current locale setting: 367*bbf21555SRichard Lowe.Ev LANG , 368*bbf21555SRichard Lowe.Ev LC_ALL , 369*bbf21555SRichard Lowe.Ev LC_CTYPE , 370*bbf21555SRichard Loweand 371*bbf21555SRichard Lowe.Ev LC_COLLATE . 372*bbf21555SRichard Lowe.Sh FILES 373*bbf21555SRichard Lowe.Bl -tag -width Pa 374*bbf21555SRichard Lowe.It Pa /usr/lib/fs/pcfs/mount 375*bbf21555SRichard Lowe.Nm 376*bbf21555SRichard Lowemount command. 377*bbf21555SRichard Lowe.It Pa /usr/kernel/fs/amd64/pcfs 378*bbf21555SRichard Lowe64-bit kernel module (x86). 379*bbf21555SRichard Lowe.El 380*bbf21555SRichard Lowe.Sh EXAMPLES 381*bbf21555SRichard Lowe.Sy Example 1 382*bbf21555SRichard LoweSample Displays of File Names 383*bbf21555SRichard Lowe.Pp 384*bbf21555SRichard LoweIf you copy a file 385*bbf21555SRichard Lowe.Pa financial.data 386*bbf21555SRichard Lowefrom a UNIX file system to 387*bbf21555SRichard Lowe.Nm , 388*bbf21555SRichard Loweit displays as 389*bbf21555SRichard Lowe.Pa financial.data 390*bbf21555SRichard Lowein 391*bbf21555SRichard Lowe.Nm 392*bbf21555SRichard Lowebut may show up as 393*bbf21555SRichard Lowe.Pa FINANC~1.DAT 394*bbf21555SRichard Lowein systems that do not support long file names. 395*bbf21555SRichard Lowe.Pp 396*bbf21555SRichard LoweThe following are legal long file names. 397*bbf21555SRichard LoweThey are also illegal short file names: 398*bbf21555SRichard Lowe.Bl -item -offset indent 399*bbf21555SRichard Lowe.It 400*bbf21555SRichard Lowe.Pa test.sh.orig 401*bbf21555SRichard Lowe.It 402*bbf21555SRichard Lowe.Pa data+ 403*bbf21555SRichard Lowe.El 404*bbf21555SRichard Lowe.Pp 405*bbf21555SRichard LoweOther systems that do not support long file names may see: 406*bbf21555SRichard Lowe.Bl -item -offset indent 407*bbf21555SRichard Lowe.It 408*bbf21555SRichard Lowe.Pa TESTSH~1.ORI 409*bbf21555SRichard Lowe.It 410*bbf21555SRichard Lowe.Pa DATA~1 411*bbf21555SRichard Lowe.It 412*bbf21555SRichard Lowe.Pa LOGIN~1 413*bbf21555SRichard Lowe.El 414*bbf21555SRichard LoweThe short file name is generated from the initial characters of the long file 415*bbf21555SRichard Lowename, so differentiate names in the first few characters. 416*bbf21555SRichard LoweFor example, these names: 417*bbf21555SRichard Lowe.Bl -item -offset indent 418*bbf21555SRichard Lowe.It 419*bbf21555SRichard Lowe.Pa WorkReport.January.Data 420*bbf21555SRichard Lowe.It 421*bbf21555SRichard Lowe.Pa WorkReport.February.Data 422*bbf21555SRichard Lowe.It 423*bbf21555SRichard Lowe.Pa WorkReport.March.Data 424*bbf21555SRichard Lowe.El 425*bbf21555SRichard Loweresult in these short names, which are not distinguishable: 426*bbf21555SRichard Lowe.Bl -item -offset indent 427*bbf21555SRichard Lowe.It 428*bbf21555SRichard Lowe.Pa WORKRE~1.DAT 429*bbf21555SRichard Lowe.It 430*bbf21555SRichard Lowe.Pa WORKRE~2.DAT 431*bbf21555SRichard Lowe.It 432*bbf21555SRichard Lowe.Pa WORKRE~2.DAT 433*bbf21555SRichard Lowe.It 434*bbf21555SRichard Lowe.Pa WORKRE~2.DAT 435*bbf21555SRichard Lowe.It 436*bbf21555SRichard Lowe.Pa WORKRE~13.DAT 437*bbf21555SRichard Lowe.El 438*bbf21555SRichard Lowe.Pp 439*bbf21555SRichard LoweThese names, however: 440*bbf21555SRichard Lowe.Bl -item -offset indent 441*bbf21555SRichard Lowe.It 442*bbf21555SRichard Lowe.Pa January.WorkReport.Data 443*bbf21555SRichard Lowe.It 444*bbf21555SRichard Lowe.Pa February.WorkReport.Data 445*bbf21555SRichard Lowe.It 446*bbf21555SRichard Lowe.Pa March.WorkReport.Data 447*bbf21555SRichard Lowe.El 448*bbf21555SRichard Loweresult in the more descriptive short names: 449*bbf21555SRichard Lowe.Bl -item -offset indent 450*bbf21555SRichard Lowe.It 451*bbf21555SRichard Lowe.Pa JANUAR~1.DAT 452*bbf21555SRichard Lowe.It 453*bbf21555SRichard Lowe.Pa FEBRUA~1.DAT 454*bbf21555SRichard Lowe.It 455*bbf21555SRichard Lowe.Pa MARCHW~1.DAT 456*bbf21555SRichard Lowe.El 457*bbf21555SRichard Lowe.Sh SEE ALSO 458*bbf21555SRichard Lowe.Xr chgrp 1 , 459*bbf21555SRichard Lowe.Xr chown 1 , 460*bbf21555SRichard Lowe.Xr dos2unix 1 , 461*bbf21555SRichard Lowe.Xr eject 1 , 462*bbf21555SRichard Lowe.Xr fdformat 1 , 463*bbf21555SRichard Lowe.Xr unix2dos 1 , 464*bbf21555SRichard Lowe.Xr volcheck 1 , 465*bbf21555SRichard Lowe.Xr ctime 3C , 466*bbf21555SRichard Lowe.Xr vfstab 5 , 467*bbf21555SRichard Lowe.Xr environ 7 , 468*bbf21555SRichard Lowe.Xr mount 8 , 469*bbf21555SRichard Lowe.Xr mount_pcfs 8 , 470*bbf21555SRichard Lowe.Xr umount 8 471*bbf21555SRichard Lowe.Sh WARNINGS 472*bbf21555SRichard LoweDo not physically eject a FAT floppy while the device is mounted as 473*bbf21555SRichard Lowe.Nm 474*bbf21555SRichard LoweIf Volume Management is managing a device, use the 475*bbf21555SRichard Lowe.Xr eject 1 476*bbf21555SRichard Lowecommand before physically removing media. 477*bbf21555SRichard Lowe.Pp 478*bbf21555SRichard LoweWhen mounting 479*bbf21555SRichard Lowe.Nm 480*bbf21555SRichard Loweon a hard disk, make sure the first block on that device contains a valid fdisk 481*bbf21555SRichard Lowepartition table. 482*bbf21555SRichard Lowe.Pp 483*bbf21555SRichard LoweBecause 484*bbf21555SRichard Lowe.Nm 485*bbf21555SRichard Lowehas no provision for handling owner-IDs or group-IDs on files, 486*bbf21555SRichard Lowe.Xr chown 1 487*bbf21555SRichard Loweor 488*bbf21555SRichard Lowe.Xr chgrp 1 489*bbf21555SRichard Lowemay generate various errors. 490*bbf21555SRichard LoweThis is a limitation of 491*bbf21555SRichard Lowe.Nm 492*bbf21555SRichard Lowebut it should not cause problems other than error messages. 493*bbf21555SRichard Lowe.Sh NOTES 494*bbf21555SRichard LoweOnly the following characters are allowed in 495*bbf21555SRichard Lowe.Nm 496*bbf21555SRichard Loweshort file names and extensions: 497*bbf21555SRichard Lowe.Bl -item -offset indent 498*bbf21555SRichard Lowe.It 499*bbf21555SRichard Lowe0-9 500*bbf21555SRichard Lowe.It 501*bbf21555SRichard LoweA-Z 502*bbf21555SRichard Lowe.It 503*bbf21555SRichard Lowe$#&@!%()-{}<>`_^~|' 504*bbf21555SRichard Lowe.It 505*bbf21555SRichard Lowe.El 506*bbf21555SRichard Loweillumos and FAT use different character sets and have different 507*bbf21555SRichard Lowerequirements for the text file format. 508*bbf21555SRichard LoweUse the 509*bbf21555SRichard Lowe.Xr dos2unix 1 510*bbf21555SRichard Loweand 511*bbf21555SRichard Lowe.Xr unix2dos 1 512*bbf21555SRichard Lowecommands to convert files between them. 513*bbf21555SRichard Lowe.Pp 514*bbf21555SRichard Lowe.Nm 515*bbf21555SRichard Loweoffers a convenient transportation vehicle for files between multiple systems. 516*bbf21555SRichard LoweBecause the FAT disk format was designed for use under DOS, it does not operate 517*bbf21555SRichard Loweefficiently under illumos and should not be used as the format for a regular 518*bbf21555SRichard Lowelocal storage. 519*bbf21555SRichard LoweInstead, use ZFS for local storage within an illumos system. 520*bbf21555SRichard Lowe.Pp 521*bbf21555SRichard LoweAlthough long file names can contain spaces 522*bbf21555SRichard Lowe(just as in UNIX file names) , 523*bbf21555SRichard Lowesome utilities may be confused by them. 524*bbf21555SRichard Lowe.Pp 525*bbf21555SRichard LoweWhen 526*bbf21555SRichard Lowe.Nm 527*bbf21555SRichard Loweencounters long file names with non-ASCII characters, it converts such long file 528*bbf21555SRichard Lowenames in Unicode scalar values into UTF-8 encoded filenames so that they are 529*bbf21555SRichard Lowelegible and usable with any of illumos UTF-8 locales. 530*bbf21555SRichard LoweIn the same context, when new file names with non-ASCII characters are created, 531*bbf21555SRichard Lowe.Nm 532*bbf21555SRichard Loweexpects that such file names are in UTF-8. 533*bbf21555SRichard LoweThis feature increases the interoperability of 534*bbf21555SRichard Lowe.Nm 535*bbf21555SRichard Loweon illumos with other operating 536*bbf21555SRichard Lowesystems. 537*bbf21555SRichard Lowe.Sh BUGS 538*bbf21555SRichard Lowe.Nm 539*bbf21555SRichard Loweshould handle the disk change condition in the same way that DOS does, so you do 540*bbf21555SRichard Lowenot need to unmount the file system to change floppies. 541