Commit Graph

24 Commits

Author SHA1 Message Date
Xin LI
d44ae92a69 Correct type for DIOCGSTRIPESIZE. Without this there
would be a stack overflow which will crash the program
later.

PR:		bin/176953
Submitted by:	r4721 tormail org
MFC after:	3 days
2013-03-14 20:05:49 +00:00
Xin LI
399fe4799b Use stripesize as smallest block size if it's available.
MFC after:	2 weeks
2013-02-04 19:17:15 +00:00
Ulrich Spörlein
09655d35a0 Fix mdoc date from previous commit. 2012-01-06 11:42:03 +00:00
Ulrich Spörlein
b93ce255b5 Document the detrimental effect of kern.cam.XX.retry_count for recoverdisk(1)
recoverdisk(1) wants to know about read errors when doing the 1MB/64k
reads as fast as possible so it can continue and retry them later with
smaller reads (down to sector size). Any retries by lower layers will
only slow it down.

Prodded by:	arundel
2012-01-05 21:36:20 +00:00
Ed Schouten
1efe3c6b58 Add missing static keywords for global variables to tools in sbin/.
These tools declare global variables without using the static keyword,
even though their use is limited to a single C-file, or without placing
an extern declaration of them in the proper header file.
2011-11-04 13:36:02 +00:00
Ulrich Spörlein
5df69e92de recoverdisk(8): treat output file consistently and abort on EINVAL
This improves usability a little as we no longer require using touch.
Also reword the manpage wrt. parameters and fix usage() [1]

With no media in a cd(4) drive, the reads will loop producing EINVAL,
abort in that case [2].

Document the shortcoming of sectorsize and MAXPHYS (a quick solution
to this might be having MAXPHYS as the "bigsize", in short testing it
didn't make a difference on throughput).

Submitted by:	arundel [1]
PR:		bin/154528 [2]
2011-05-01 20:14:10 +00:00
Ruslan Ermilov
106d839190 Switch the default WARNS level for sbin/ to 6.
Submitted by:	Ulrich Spörlein
2009-10-19 16:00:24 +00:00
Poul-Henning Kamp
0353e472df Save (empty) worklist at successful completion 2009-03-23 11:07:34 +00:00
Ed Schouten
d81c1141f6 Also use %zu to print the allocation size when malloc(3) fails.
Discussed with:	phk
2009-03-11 17:40:39 +00:00
Poul-Henning Kamp
ab5792a9aa Fix printf warnings on amd64 etc. 2009-03-11 16:32:00 +00:00
Poul-Henning Kamp
5d5b73ad97 One Pp is more than enough.
Says:	brueffer
2009-03-11 11:42:17 +00:00
Poul-Henning Kamp
584f5546ee Some improvements to recoverdisk 2009-03-11 10:37:02 +00:00
Poul-Henning Kamp
972b3f3056 Bail on ENXIO, you won't get any further any way.
Submitted by:	tobez
2009-01-17 11:57:32 +00:00
Poul-Henning Kamp
601c3cc018 Improve reporting in recoverdisk a good deal.
Submitted by:	Ulrich Spoerlein <uspoerlein@gmail.com>
PR:	111630
2007-04-23 12:17:27 +00:00
Ruslan Ermilov
6b4674389d Revise markup. 2006-09-30 17:21:37 +00:00
Matteo Riondato
89d500c6a8 Make recoverdisk compile on amd64 and possibly other 64bit archs.
Bump WARNS to 6.

PR:		amd64/97566
Reviewed by:	phk@
MFC after:	3 days
2006-05-30 19:10:18 +00:00
Maxim Konovalov
fd64dc9a18 o Take an account a media sectorsize for medium and bigsize calculation.
o Introduce -r and -w keys which allow to load and save a worklist.
o Replace README by man page.

PR:		bin/96677
Submitted by:	Ulrich Spoerlein
Approved by:	phk
MFC after:	1 month
2006-05-06 19:52:25 +00:00
Maxim Sobolev
db45c56d7d Extend utility to allow recovering single file from the deffective
media.

MFC after:      2 weeks
2005-08-29 23:08:01 +00:00
Ruslan Ermilov
e653b48c80 Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by:	core
2004-12-21 08:47:35 +00:00
Ruslan Ermilov
a35d88931c For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
Dag-Erling Smørgrav
dadba0d1a1 Use %zu to format size_t instead of %jd and an intmax_t cast.
Approved by:	hamlet
2004-10-23 15:58:50 +00:00
Poul-Henning Kamp
091aa0964b Stop amd64 warnings. 2004-10-23 12:42:18 +00:00
Poul-Henning Kamp
1f6ac570e4 Only print progress statistics once per second. 2004-10-08 10:50:40 +00:00
Poul-Henning Kamp
39d969aedf This is a small tool which will read an entire disk(partition) using
1M blocks and optionally write the read data to a file or disk.

If a read error happens, the 1M block gets put on the end of the worklist
and will be retried with 64k blocksize.

If a read error happens again, the 64k block gets put at the end of the
worklist and will be retried with single sector reads.

The program keeps trying until you stop it.

You can refresh a disk:

	recoverdisk /dev/ad1 /dev/ad1

or salvage a floppy:

	recoverdisk /dev/fd0 myfloppy.flp
2004-09-28 22:00:01 +00:00