Commit Graph

49 Commits

Author SHA1 Message Date
Poul-Henning Kamp
d21ce74dcc Register the bad read before bailing on terminal errors.
This way running recoverdisk in a loop will not get stuck on a bad
block which causes the disk or SD card detach.
2021-02-02 12:01:38 +00:00
Kyle Evans
7cc42f6d25 Do a sweep and remove most WARNS=6 settings
Repeating the default WARNS here makes it slightly more difficult to
experiment with default WARNS changes, e.g. if we did something absolutely
bananas and introduced a WARNS=7 and wanted to try lifting the default to
that.

Drop most of them; there is one in the blake2 kernel module, but I suspect
it should be dropped -- the default WARNS in the rest of the build doesn't
currently apply to kernel modules, and I haven't put too much thought into
whether it makes sense to make it so.
2020-10-01 01:10:51 +00:00
Poul-Henning Kamp
ca9acde238 Don't send clear screen until we are committed to run. 2020-05-09 10:55:34 +00:00
Mateusz Piotrowski
b75ab02f57 Bump date after recent changes and lint 2020-04-03 13:05:26 +00:00
Poul-Henning Kamp
9546e08e7b Add two options to recoverdisk(1) inspired by a recent
data-archæology project:

-u pattern

    Fill unread parts of the output with pattern.
    Default pattern is "_UNREAD_", empty pattern disables.

-v

    Fancy status reporting using ANSI escapes and UTF-8
2020-04-02 15:17:53 +00:00
Andriy Voskoboinyk
ec835c9dec recoverdisk(1): fclose() file supplied via '-r readlist' parameter when
it's no longer needed

PR:		204952
Reported by:	David Binderman <dcb314@hotmail.com>
MFC after:	5 days
2019-02-07 14:40:28 +00:00
Pedro F. Giffuni
64de3fdd58 SPDX: use the Beerware identifier. 2017-11-30 20:33:45 +00:00
Bryan Drewery
ea825d0274 DIRDEPS_BUILD: Update dependencies.
Sponsored by:	Dell EMC Isilon
2017-10-31 00:07:04 +00:00
Pedro F. Giffuni
f32d2926b0 sbin: ake use of our rounddown() macro when sys/param.h is available.
No functional change.
2016-05-01 02:24:05 +00:00
Glen Barber
406d87b1c3 Explicitly add more files to the 'runtime' package.
Sponsored by:	The FreeBSD Foundation
2016-02-09 20:19:31 +00:00
Simon J. Gerraty
ccfb965433 Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
Simon J. Gerraty
44d314f704 dirdeps.mk now sets DEP_RELDIR 2015-06-08 23:35:17 +00:00
Simon J. Gerraty
ee7b0571c2 Merge head from 7/28 2014-08-19 06:50:54 +00:00
Baptiste Daroussin
bd0891ceb3 use .Mt to mark up email addresses consistently (part1)
PR:		191174
Submitted by:	Franco Fichtner  <franco@lastsummer.de>
2014-06-20 09:40:43 +00:00
Simon J. Gerraty
fae50821ae Updated dependencies 2014-05-16 14:09:51 +00:00
Simon J. Gerraty
76b28ad6ab Updated dependencies 2014-05-10 05:16:28 +00:00
Simon J. Gerraty
3caf0790a8 Merge head@256284 2013-10-13 02:35:19 +00:00
Sergey Kandaurov
05d98029e9 Sweep man pages replacing ad -> ada.
Approved by:	re (blackend)
MFC after:	1 week
X-MFC note:	stable/9 only
2013-10-01 18:41:53 +00:00
Simon J. Gerraty
d1d0158641 Merge from head 2013-09-05 20:18:59 +00:00
Oleg Bulyzhin
a34becb373 Fix 'SEE ALSO' list. 2013-07-12 09:20:55 +00:00
Simon J. Gerraty
69e6d7b75e sync from head 2013-04-12 20:48:55 +00:00
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
Simon J. Gerraty
7cf3a1c6b2 Updated dependencies 2013-03-11 17:21:52 +00:00
Simon J. Gerraty
f5f7c05209 Updated dependencies 2013-02-16 01:23:54 +00:00
David E. O'Brien
d9a447559b Sync with HEAD. 2013-02-08 16:10:16 +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
Marcel Moolenaar
7750ad47a9 Sync FreeBSD's bmake branch with Juniper's internal bmake branch.
Requested by: Simon Gerraty <sjg@juniper.net>
2012-08-22 19:25:57 +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