2 .\" Copyright (c) 2001 Joerg Wunsch
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
15 .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
16 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
19 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48 utility reads floppy disks. Effective read blocking based on the track
49 size is performed, and floppy-specific error recovery of otherwise
50 bad blocks can be enabled.
55 will always read an entire floppy medium, and write its contents to
56 the respective output file. Unlike other tools like
59 automatically uses a read block size that is more efficient than
60 reading single blocks (usually one track of data at a time), but
61 falls back to reading single floppy sectors in case of an input/output
62 error occurred, in order to obtain as much valid data as possible.
65 is working, kernel error reporting for floppy errors is turned off, so
66 the console and/or syslog are not flooded with kernel error messages.
70 utility accepts the following options:
71 .Bl -tag -width indent
73 Turn on quiet mode. By default, the medium parameters of the device
74 are being written to standard error output, progress will be indicated
75 by the approximate number of kilobytes read so far, and errors will be
76 printed out in detail, including the information about the location of
77 recovered data in the output. In quiet mode, none of these messages
80 Enable error recovery. By default,
82 stops after the first unrecovered read error, much like
84 does. In recovery mode, however, one of two recovery actions will be
88 If the error was a CRC error in the data field, the
89 kernel is told to ignore the error, and data are transferred to the
92 Note that this will cause the erroneous data
93 to be included in the output file!
95 Still, this is the best recovery action that can be taken at all.
97 All other errors are really fatal (usually, the FDC didn't find the
98 sector ID fields), thus a dummy block with fill
99 bytes will be included in the output file.
102 Unless operating in quiet mode, the action taken and the location of
103 the error in the output file will be displayed.
105 Specify the input floppy device, defaulting to
109 must be a valid floppy disk device.
111 Value of the fill byte used for dummy blocks in the output file in
112 recovery mode. Defaults to
116 The value can be specified using the usual C language notation of
119 Specify the output file to be
121 By default, the data will be written to standard output.
125 sector ID fields, and write out their contents to standard output.
126 Each sector ID field contains recorded values for the cylinder number
130 the record number (sector number starting with 1)
133 .Em sector shift value
134 (0 = 128 bytes, 1 = 256 bytes, 2 = 512 bytes, 3 = 1024 bytes)
138 option is mutually exclusive with all other options except
143 Specify the track number (cylinder number * number of heads + head
144 number) to read the sector ID fields from; only allowed together with
150 .Bl -tag -width /dev/fd0
152 Default device to read from.
157 utility sets the exit value according to
159 In recovery mode, the exit value will be set to
161 if any error occurred during processing (even in quiet mode).
163 Unless running in quiet mode, upon encountering an error, the status
164 of the floppy disc controller (FDC) will be printed out, both in
165 hexadecimal form, followed by a textual description that translates
166 those values into a human-readable form for the most common error
167 cases that can happen in a PC environment.
169 The FDC error status includes the three FDC status registers
174 as well as the location of the error (physical cylinder, head, and sector
176 .Dq sector shift value ,
177 respectively). See the manual for the NE765 or compatible for details
178 about the status register contents.
180 The FDC's status is then examined to determine whether the error is
181 deemed to be recoverable. If error recovery was requested, the
182 location of the bad block in the output file is indicated by its
183 (hexadecimal) bounds. Also, a summary line indicating the total number
184 of transfer errors will be printed before exiting.
194 utility was written mainly to provide a means of recovering at least some of
195 the data on bad media, and to obviate the need to invoke
197 with too many hard to memorize options that might be useful to handle
200 The command appeared in
203 Program and man page by
206 Concurrent traffic on the second floppy drive located at the same FDC
207 will make error recovery attempts pointless, since the FDC status
208 obtained after a read error occurred cannot be guaranteed to actually
209 belong to the erroneous transfer. Thus using option
213 is the only active drive on that controller.
215 No attempt beyond the floppy error retry mechanism of
217 is made in order to see whether bad sectors could still be read
218 without errors by trying multiple times.
220 Bits that are (no longer) available on the floppy medium cannot be