Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FDREAD(1)		    General Commands Manual		     FDREAD(1)

NAME
       fdread -- read floppy disks

SYNOPSIS
       fdread [-qr] [-d	device]	[-f fillbyte] [-o file]
       fdread [-d device] -I numsects [-t trackno]

DESCRIPTION
       The  fdread  utility reads floppy disks.	 Effective read	blocking based
       on the track size is performed, and floppy-specific error  recovery  of
       otherwise bad blocks can	be enabled.

       The  fdread utility will	always read an entire floppy medium, and write
       its contents to the respective output file.  Unlike  other  tools  like
       dd(1),  fdread  automatically uses a read block size that is more effi-
       cient than reading single blocks	(usually one track of data at a	time),
       but falls back to reading single	floppy	sectors	 in  case  of  an  in-
       put/output  error  occurred,  in	 order to obtain as much valid data as
       possible.  While	fdread is working, kernel error	reporting  for	floppy
       errors is turned	off, so	the console and/or syslog are not flooded with
       kernel error messages.

       The fdread utility accepts the following	options:

       -q      Turn  on	 quiet mode.  By default, the medium parameters	of the
	       device are being	written	to  standard  error  output,  progress
	       will  be	 indicated by the approximate number of	kilobytes read
	       so far, and errors will be printed out in detail, including the
	       information about the location of recovered data	in the output.
	       In quiet	mode, none of these messages will be generated.

       -r      Enable error recovery.  By  default,  fdread  stops  after  the
	       first  unrecovered read error, much like	dd(1) does.  In	recov-
	       ery mode, however, one of two recovery actions will be taken:

	          If the error	was a CRC error	in the data field, the	kernel
		   is  told  to	 ignore	the error, and data are	transferred to
		   the output file anyway.  Note that this will	cause the  er-
		   roneous  data  to  be  included in the output file!	Still,
		   this	is the best recovery action that can be	taken at all.

	          All other errors are	really fatal (usually, the FDC did not
		   find	the sector ID fields), thus a dummy  block  with  fill
		   bytes will be included in the output	file.

	       Unless  operating in quiet mode,	the action taken and the loca-
	       tion of the error in the	output file will be displayed.

       -d device
	       Specify the input floppy	device,	defaulting to  /dev/fd0.   The
	       parameter device	must be	a valid	floppy disk device.

       -f fillbyte
	       Value of	the fill byte used for dummy blocks in the output file
	       in recovery mode.  Defaults to `0xf0'.  (Mnemonic: "foo".)  The
	       value  can  be specified	using the usual	C language notation of
	       the number base.

       -o file
	       Specify the output file to be file.  By default,	the data  will
	       be written to standard output.

       -I numsects
	       Read numsects sector ID fields, and write out their contents to
	       standard	output.	 Each sector ID	field contains recorded	values
	       for  the	 cylinder  number  (`C'),  the	head number (`H'), the
	       record number (sector number starting with 1)  (`R'),  and  the
	       sector  shift  value  (0	 =  128	 bytes,	1 = 256	bytes, 2 = 512
	       bytes, 3	= 1024 bytes) (`N').  The -I option is mutually	exclu-
	       sive with all other options except -d device and	-t trackno.

       -t trackno
	       Specify the track number	(cylinder number * number of  heads  +
	       head  number)  to  read the sector ID fields from; only allowed
	       together	with the -I numsects option.

FILES
       /dev/fd0	 Default device	to read	from.

EXIT STATUS
       The fdread utility sets the exit	value according	 to  sysexits(3).   In
       recovery	 mode, the exit	value will be set to EX_IOERR if any error oc-
       curred during processing	(even in quiet mode).

DIAGNOSTICS
       Unless running in quiet mode, upon encountering an error, the status of
       the floppy disc controller (FDC)	will be	printed	out, both in hexadeci-
       mal form, followed by a textual description that	translates those  val-
       ues into	a human-readable form for the most common error	cases that can
       happen in a PC environment.

       The  FDC	 error	status	includes the three FDC status registers	`ST0',
       `ST1', and `ST2', as well as the	location of the	error (physical	cylin-
       der, head, and sector number, plus the "sector  shift  value",  respec-
       tively).	  See the manual for the NE765 or compatible for details about
       the status register contents.

       The FDC's status	is then	examined to determine  whether	the  error  is
       deemed  to  be recoverable.  If error recovery was requested, the loca-
       tion of the bad block in	the output file	is indicated by	its (hexadeci-
       mal) bounds.  Also, a summary  line  indicating	the  total  number  of
       transfer	errors will be printed before exiting.

SEE ALSO
       dd(1), fdwrite(1), sysexits(3), fdc(4), fdcontrol(8)

HISTORY
       The  fdread utility was written mainly to provide a means of recovering
       at least	some of	the data on bad	media, and to obviate the need to  in-
       voke  dd(1) with	too many hard to memorize options that might be	useful
       to handle a floppy.

       The command appeared in FreeBSD 5.0.

AUTHORS
       Program and man page by Jorg Wunsch.

BUGS
       Concurrent traffic on the second	floppy drive located at	the  same  FDC
       will  make  error recovery attempts pointless, since the	FDC status ob-
       tained after a read error occurred cannot be guaranteed to actually be-
       long to the erroneous transfer.	Thus using option -r is	only  reliable
       if device is the	only active drive on that controller.

       No attempt beyond the floppy error retry	mechanism of fdc(4) is made in
       order  to see whether bad sectors could still be	read without errors by
       trying multiple times.

       Bits that are (no longer) available on  the  floppy  medium  cannot  be
       guessed by fdread.

FreeBSD	15.0			 May 14, 2001			     FDREAD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fdread&sektion=1&manpath=FreeBSD+15.0-RELEASE+and+Ports.quarterly>

home | help