xref: /illumos-gate/usr/src/man/man4fs/pcfs.4fs (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
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