Commit graph

102 commits

Author SHA1 Message Date
3d7881328f
Move ddrescue out of wk/hw section 2022-04-06 19:08:09 -06:00
46eb737dc8
Move SMART functions to their own file 2022-04-06 16:22:58 -06:00
5ffa6d8261
Replace references to details with attributes 2022-04-04 18:58:45 -06:00
8582046948
Update HW diags and ddrescue to use new HW classes 2022-04-04 18:31:52 -06:00
8dd8701e8d
Split read phase into two parts
Addresses issue #184

The first read phase will skip a lot more to try to recover more data
from the whole source.  Then the second read phase will fill in like
the previous configuration.
2022-03-25 18:45:28 -06:00
4e61025e99
Fix --sector-size argument 2022-03-08 13:02:33 -07:00
b66f25dfea
Only open ddrescueview if running with a DISPLAY 2022-03-08 12:36:49 -07:00
b82493b12b
Generate new map files when starting a recovery
This is done to define the domain size and let us use --complete-only.

This also enables us to open ddrescueview immediately since that tool
requires a valid map file from the start.  If you open an empty map
file ddrescueview doesn't auto-reload the file correctly.

Addresses #184
2022-03-08 11:55:23 -07:00
9d2eb8b175
Fix initial and max skip sizes
ddrescue's minimum is 64KiB so we should respect that.

Addresses #184
2022-03-08 11:53:56 -07:00
ea9e3b3696
Disable broken --sector-size argument
Addresses #184
2022-03-08 11:52:04 -07:00
c3ec690318
Add new ddrescue argument options
Addresses #184
2022-03-07 23:49:15 -07:00
a35ffdda23
Open ddrescueview during recovery
Addresses issue #182
2022-02-20 18:10:13 -07:00
90fb97ad91
Fix various pylint warnings 2021-09-27 21:48:11 -06:00
ffa2df416b
Set source drive to sleep instead of detaching it 2021-04-16 01:07:56 -06:00
a4ee7b890c
Disable image mode in ddrescue-tui (for now) 2021-04-13 23:16:55 -06:00
d781038e88
Enable ddrescue-tui under macOS
Currently limited to only cloning whole disks, not select partitions.
We need to specify the --size due to a bug under macOS; it fails to
detect the size of the device/partition and reports 8192 PiB instead.
2021-04-13 02:18:17 -06:00
9d3508909a
Add DRIVE_POWEROFF_TIMEOUT to wk.cfg.ddrescue
This replaces a magic number
2021-04-08 23:40:00 -06:00
830e088ccf
Report if the dest starts failing during recovery 2021-04-08 23:17:00 -06:00
5a2d35d3cc
Prevent recovering to wrong devices or paths
Before starting a recovery run verify the source and destination have
not changed.  This will prevent issues on some extreme edge cases but
the main goal is for disappearing source drives with heavy damage.

e.g. A very damaged source drive disappears mid-recovery, drops off and
before would need a restart, or unplug/replug, to continue.  Now we can
attempt to re-detect the drive and resume recovery without leaving the
script.  If for some reason the drive order were to change then we'll
avoid using the wrong source or destination device.
2021-04-08 23:09:00 -06:00
43fd30322e
Expand checks for missing source or destination
Addresses issue #155
2021-04-08 22:43:13 -06:00
18bc139d25
Add 'Detect drives' option to ddrescue-tui 2021-04-08 20:55:28 -06:00
c452256fe7
Fix pylint issues in wk/hw/ddrescue.py 2021-04-08 20:49:21 -06:00
1a3b57da66
Poweroff source drives after ddrescue errors
Addresses issue #165
2021-04-08 19:41:05 -06:00
9818d5196f
Export state objects as pickle files
This should better ensure debugging an issue will have all the relevant
info at the ready.
2021-03-25 21:15:56 -06:00
a4df2f41d3
Added wk.exe.stop_process()
* Replaced wk.hw.ddrescue.stop_ddrescue()
2020-02-25 20:52:08 -07:00
45a6b31910
Added periodic destination health check
* Addresses issue #158
2020-02-25 20:45:59 -07:00
94a428f6da
Added check for missing source/destination
* Addresses issue #155
2020-02-25 20:15:13 -07:00
ebbdedef6c
Added get_fstype_macos() 2020-01-30 13:59:12 -07:00
ad1adba837
Add APFS and HFS/HFS+ to RECOMMENDED_MAP_FSTYPES 2020-01-30 13:51:23 -07:00
c161ebac2a
Save ddrescue results to log at exit
* Instead of printing them since it should be run in tmux
  * And as such the results would be obscured from the user anyway
2020-01-13 22:11:07 -07:00
e9b1fe7819
Adjusted clone settings filename
* Use source path if the model wasn't detected
  * Avoids names like "Clone_.json"
2020-01-13 21:59:40 -07:00
76a9d90ecb
Adjusted ddrescue TUI results report 2020-01-08 20:35:32 -07:00
6e3f02961c
Made load_settings() and save_settings() private
* Clears a pylint issue and makes sense to me
2020-01-08 19:50:04 -07:00
43cf4e2727
Added generate_report() to wk.hw.ddrescue.State() 2020-01-08 19:46:40 -07:00
72787d5c24
Fix destination checks when imaging 2020-01-04 18:42:55 -07:00
b79deefdd6
Fix map name when using loopback devices 2020-01-04 18:28:43 -07:00
383b7c331a
Safety wheels are off 2020-01-04 18:07:28 -07:00
64645cdf1f
Expanded logging (slightly) 2020-01-04 18:06:57 -07:00
5926c3170d
Reworked retry sections
* Edit the map file directly instead of using --retrim and --try-again
  * Allows for more accurate pass status reporting
  * Allows for simpler pass break/continue logic
* Create the map file before running ddrescue
  * Allows file to be edited by the current user instead of just root/ddrescue
* Added check for empty map files
  * Avoids incorrectly marking a pass as complete
2020-01-04 18:01:39 -07:00
470524dfff
Added pause after "No actions performed" message 2020-01-04 16:54:28 -07:00
4acdab8c0f
Mark passes Skipped as appropriate 2020-01-04 16:53:56 -07:00
c71e30e4fb
Adjusted debug reports 2020-01-04 15:58:43 -07:00
a68e52322c
Fixed aborting when multiple parts selected 2020-01-04 15:41:15 -07:00
e6e51498dd
Clear ddrescue pane every minute 2020-01-03 18:36:53 -07:00
30a5df8a00
Fix timezone in SMART pane 2020-01-03 18:36:40 -07:00
4a2b18e4f7
Added confirmation to Quit if recovery < 100% 2020-01-03 17:55:23 -07:00
848ccc3ef1
Made several State() functions "private" 2020-01-03 17:54:55 -07:00
097360ca0a
Always ask GPT/MBR/Source when formatting a disk
* This fixes cloning partitions when not creating a boot partiton
2020-01-03 17:32:51 -07:00
6eaf5c2bc2
Get accurate size from ddrescuelog
* Reported size is off by one sector in some cases
2020-01-03 17:25:12 -07:00
eb702577ae
Mark clones as started to allow resuming 2020-01-03 16:45:47 -07:00