myrescue(2)
π NAME π
myrescue β Harddisc Rescue π¦
(and yeah bestie, this one lives in section 2, the System Calls Manual, so that's the whole myrescue(2) thing β iykyk β¨)
π SYNOPSIS π
myrescue [-b block-size] [-B bitmap-file] [-A] [-S] [-r retry-count] [-f skip-failed] [-s start-block] [-e end-block] [-R] [-G good-range] [-F failed-range] [-T] [-J jump-after-blocks] [-U usb-device-file] input-file output-file
πΈ DESCRIPTION πΈ
okay so picture this: your harddisk is damaged and you're lowkey panicking. myrescue is the program that goes in and rescues the still-readable data off of it. πͺ Its whole purpose is basically dd_rescue's twin, except β plot twist β it can be run in multiple passes, and it has options to avoid the damaged areas so that you handle the not-yet-damaged part of the disk first. main character energy, honestly.
The way it works: the program tries to copy the device blockwise to a file, and it keeps a table (a "block bitmap") noting whether each block has been successfully copied, not yet handled, or has had errors. That block bitmap is the whole blueprint β in successive passes it's used to only read the blocks that haven't been rescued yet. slay.
Then there's the special skip mode for handling read errors. Here's the tea β: usually harddisk surface defects cover more than just one block, and continuous reading in defect areas can damage the surface, the heads, and (by permanent recalibration) the drive mechanics. If that happens, the chances of rescuing the remaining undamaged data drop dramatically. So in skip mode, myrescue tries to get out of damaged areas quickly by exponentially increasing the stepsize. The skipped blocks get marked as unhandled in the block bitmap, and you can retry them later. no cap.
As another alternative, the program can jump around on the disc, trying random blocks to first get an overview of the damage. In case of regular defects (e.g. an entire failed head) this can be used to determine the physical disc structure and to avoid these regions in the first run. very detective of it π
Also there are options to avoid getting close to already recognized defects, or to stay in the proximity of good regions.
And finally β the program has an option to multiply try to read a block before considering it damaged. π
β οΈ NOTE β οΈ
This tools is no replacement for a professional data recovery service! If you do have the latter option, don't even think of using myrescue, as it may further damage your disk. This tool is provided only for the case that you are absolutely desperate and definitely cannot afford a professional data recovery and know what you are doing.
okay bestie, read that again. fr fr. π
Data recovery β whether professional or DIY β is always careful detective work. Damaged drives deteriorate rapidly and behave nondeterministically, you may not get a second chance once you made a mistake. So you have to be fully aware of what you're doing and understand precisely what's happening. If you are unsure it's probably best to stop right now and ask a linux guru for assistance. π§
In any case, do not expect too much. While complete restores have been witnessed, you should not take them for granted. A better attitude is to consider your data lost and be glad for any survivors that turn up. πΈ
The usual GPL disclaimer applies. Especially the NON-WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. Don't blame (or sue) me if it fails to recover or further damages your data. π
And a final word you probably don't want to hear in this situation: for the future consider a routinely backup to avoid a "next time". π
β¨ OPTIONS β¨
-b block-sizeβ the size of the blocks (in bytes). Set this to your harddiscs error detection/correction unit size. Usually this is4096, which happens to be the default. π―-B bitmap-fileβ the file containing the status table of all blocks. Nice (or frightening...) to view withhexdump.01means OK;02means that the block was OK, but took a long time to read;00means not yet done; negative values mean the number of failed read attempts. If not given, defaults tooutput-file.bitmap. π-Aβ abort when encountering errors.-Sβ activate skip mode: when encountering errors, increase the stepsize exponentially until a readable block is found. π¦-f skip-failedβ skip blocks that have already had skip-failed failures. Useful to avoid scratching the same block over and over again. (be nice to your disk pls)-r retry-countβ the number of times to read a block before it is declared bad for this run. (You can still retry it on the next run.) Default:1-s start-blockβ the number of the block to start with. Default:0-e end-blockβ the number of the block where reading stops (not included!). Default: size ofinput-filedivided byblock-size.-Rβ reverse reading direction, i.e. fromend-block(excluded) tostart-block. π-G good-rangeβ only try to read blocks withingood-rangeblocks from an already successfully read block.-F failed-rangeβ extends-fto also skip any block withinfailed-rangeblocks of a block to be skipped as specified by-f.-Tβ also avoid blocks that were successfully read, but took an unusually long time to read. In case of growing defects, these blocks can mark the boundaries of defective regions. This options makes-A,-Sand-Ftreat such blocks as defective. π-J jump-after-blocksβ randomly jump across the disc after readingjump-after-blocksblocks in both directions. This might be useful to scan discs with scattered defects. In jump mode-Scausesmyrescueto jump to a new block upon the first failed sector or upon hitting a sector to be skipped as specified by-f,-Gor-F.-U usb-device-fileβ (Linux-specific feature) perform a bus reset for the specifiedusb-device-fileafter every failed read attempt. Certain faulty SD cards will disappear completely from the bus after a read error occurs and the USB reader has to be reset completely in order to continue. π-h,-?β display usage information.
π RECOMMENDED PROCEDURE π
NOTE: In data recovery every case needs special consideration and a specific approach β mindlessly running procedures is a bad idea. So consider the following an example, keep a close eye on the process and be prepared to stop and reconsider if anything unusual happens. And once again: If you are feeling unsure, stop and ask someone experienced for assistance.
- Make sure you have sufficient disk space for twice the whole partition (complete partition size, not just the used amount of data) plus some space for the block bitmap (
1byte per block). Of course this should NOT be on the damaged disc. π« - Determine the hardware block size (CRC/ECC unit) of your harddisk. This may be found out from
hdparm, some entries in/proc/ide/hd?or on the web. I have not yet checked whether this is possible with anioctl. If you have, please let me know. π - Start a skip mode run with one retry per block to first copy the undamaged area.
- Start a normal run with one retry per block to copy the remaining skipped blocks. You may try to use
-f 1to skip the damaged blocks from the first run. - Repeat until the number of errors seems to have converged. Try waiting a couple of hours between the retries. β³
- Repeat this with higher retry counts and wait for convergence.
- Make a copy of the rescued data and run
fsckon it. The copy is important! Runningfsckis risky if blocks containing filesystem structures (superblocks, directories, inodes, journal, ...) are missing. Sometimes the well-meant attempt to correct the filesystem can damage the image file, so always work on a copy. π - Mount the filesystem (if copied to a file: via loopback) and check your data. If directory information has been destroyed,
fsckmoves unidentifiable file fragments tolost+found, so you should also check this location.
It may help to try reading non-defect areas in between to allow the drive to recalibrate. π§
The developers are glad to hear about your experiences. Please post them to the Experiences forum on the Sourceforge Project page. Thank you! π«Ά
π KNOWN BUGS π
- The handling of the
bitmap-filecurrently relies on the filesystem semantics, that whenlseek(2)ing beyond the end of file and then writing, the space in between is filled with zero-bytes. - The block bitmap maxes out after 127 failed read attempts.
π AUTHORS π
Kristof Koehler <kristofk@users.sourceforge.net>, Peter Schlaile <schlaile@users.sourceforge.net>
π¦ SEE ALSO π¦
dd(1),dd_rescue(no manpage?)- http://www.google.de/search?q=data+recovery
- http://myrescue.sourceforge.net/
and that's the whole page bestie, myrescue version 0.9.6, dated February 2018 β go save some data, and pls back up next time πβ¨π
π¦ where this page comes from
- debian bookworm: myrescue 0.9.8-3 Β· GPL-2.0-or-later
- debian trixie: myrescue 0.9.8-3 Β· GPL-2.0-or-later
- ubuntu jammy: myrescue 0.9.8-3 Β· GPL-2.0-or-later
- ubuntu noble: myrescue 0.9.8-3 Β· GPL-2.0-or-later
- ubuntu resolute: myrescue 0.9.8-3build1 Β· GPL-2.0-or-later
- ubuntu stonking: myrescue 0.9.8-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms