Commit graph

251 commits

Author SHA1 Message Date
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
9478000cdf
Add Clock Sync option to HW-Diags menu under macOS 2021-04-06 16:57:31 -06:00
61f2b00a2a
Export SMC data in HW Diagnostics
Addresses issue #154
2021-04-06 15:53:19 -06:00
ae42634a8e
Add SMART override for some Samsung devices
* Addresses issue #163
2021-03-26 00:57:08 -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
3f48b10942
Apply "temp" fix for macOS HW-Diags 2021-03-25 21:11:21 -06:00
7d77aa81b0 Update sensors.py to improve CPU data
Include AMD CCD sensors
Exclude current sensors
2021-01-09 21:08:53 -07: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
0a00e17536
Avoid another rare crash when saving average temps 2020-02-17 16:54:51 -07:00
1f1fdfc738
Avoid rare crash when saving average temps 2020-02-17 16:44:33 -07:00
3b640ac85b
Addressed issue #153 2020-02-03 18:09:46 -07:00
a66c27be84
Updated get_disk_details_macos() 2020-01-30 14:01:30 -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
385b2158fd
Improved method to avoid crash during self-tests 2020-01-30 13:28:52 -07:00
dc6dcfb845
Revert "Avoid crash during SMART self-test"
This reverts commit cc8c0992f6.
2020-01-30 13:25:46 -07:00
c8f95d866a
Typo fix 2020-01-30 13:24:49 -07:00
86f0f1e5fd
Avoid rare crash concerning disk attributes
* Crash would occur under these circumstances:
  * Disk Attributes test was not selected
  * One or more other disk tests were selected
  * A non-blocking attribute error was detected
2020-01-30 13:16:48 -07:00
98032a0fed
Removed stale TODO statements 2020-01-28 19:00:47 -07:00
1a26aead44
Network test working under macOS 2020-01-28 18:38:33 -07:00
f14f5e0d72
Adjusted logging 2020-01-28 18:21:24 -07:00
5cc0456f40
Improve performance under macOS by using rdisks 2020-01-28 18:12:53 -07:00
0c8701e3e4
Support get_disks_macOS() on older macOS versions 2020-01-28 18:10:10 -07:00
cc8c0992f6
Avoid crash during SMART self-test 2020-01-28 18:09:33 -07:00
fe50ce8994
Use new Mac fan sections in HW Diags 2020-01-28 18:08:26 -07:00
5cbb86abd8
Clear screen before starting diags 2020-01-22 15:37:26 -07:00
bfc17942cd
Added header to SMART self-test output
* Matches badblocks header
* Also added Initializing message
2020-01-22 11:22:47 -07:00
e92ceb070c
Adjusted I/O Benchmark screen layout 2020-01-22 11:21:49 -07:00
79abbcfaf8
Avoid crash when getting NVMe attributes 2020-01-22 11:20:39 -07:00
710fcc29dc
Catch non-blocking SMART errors between tests
* This doesn't block further tests, just ensures Disk Attributes fails
2020-01-20 18:31:29 -07:00
1b473b1ab0
Fix pipes when run from hw-diags 2020-01-19 15:14:03 -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
16dbffd91c
Enable SAT usage for USBs to expand SMART support
* Only enabled for USB devices
* Only enabled if attributes weren't found using --device=auto
* Addresses issue #109
2020-01-13 17:12:58 -07:00
d8617df871
Adjusted self-test results formatting 2020-01-13 15:45:07 -07:00
ea9a9f9a46
Pass Disk Attribute test for devices lacking SMART
* Since these can't fail I think passing them makes sense
2020-01-11 19:51:57 -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
0a2976d9ce
Set pass/fail attributes in disk_attribute_check() 2020-01-08 19:02:09 -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
276e2e0dda
Made mode a State() variable 2020-01-03 16:38:48 -07:00
a4b5e81ef1
Made working_dir a State() variable 2020-01-03 16:08:38 -07:00
4f2b31c705
Avoid crash while stopping ddrescue
* Killall is needed because of sudo
2020-01-03 01:14:06 -07:00
2b18da7244
Added real ddrescue command logic
* Still needs testing!!
* Set all dry_run keywords to default to True
2020-01-03 00:47:33 -07:00
c22c3da493
Expanded safety checks
* Added destination NVMe/SMART checks
2020-01-02 23:33:21 -07:00
2983eb9bd3
Updated run_ddrescue()
* Added SMART pane logic
2020-01-02 23:24:23 -07:00
299b075eef
Fixed BlockPair().safety_check() 2020-01-02 22:32:18 -07:00
9ae8810282
Added real disk format section
* --dry-run=True safety wheels still engaged
2020-01-02 21:22:47 -07:00
ac04a3ddc5
Added another safety check for block pairs
* Needed one more check since clone pairs were assumed to be okay
2020-01-02 21:14:25 -07:00
5d0ed475a6
Added option to match source partition table type 2020-01-02 20:07:46 -07:00
9702d7665f
Added limited support for converting MBR/GPT types 2020-01-02 19:54:18 -07:00
6dc887b04e
Added initial disk formatting sections 2020-01-02 15:50:26 -07:00
764d35836b
Force running all passes if retry selected 2020-01-01 15:06:16 -07:00
1dacdd4637
Abort if an invalid image destination selected 2020-01-01 15:02:23 -07:00
f45a10395f
Added --force-local-map option 2020-01-01 15:02:11 -07:00
df6f3ba8e1
Added initial ddrescue pass logic 2019-12-30 20:21:37 -07:00
e88e4ab3eb
Added ddrescue settings sections 2019-12-30 19:29:32 -07:00
bcd46d4017
Added SMART/Journal panes 2019-12-30 19:25:46 -07:00
d9561a0159
pylint cleanup 2019-12-30 18:47:35 -07:00
e7fbc21721
Added EToC logic 2019-12-30 17:43:15 -07:00
0ddafe8a42
Updated side pane sections 2019-12-30 16:40:28 -07:00
631449e40a
Added format_status_string() 2019-12-30 16:40:03 -07:00
89de1d52bb
Updated BlockPair __init__() and pass_complete() 2019-12-30 16:37:49 -07:00
6ad68c37d4
Added update_progress_pane()
* Still a WIP
2019-12-29 19:29:09 -07:00
fa39801523
Adjusted block pair report 2019-12-26 20:18:17 -07:00
7d7dc70630
Added map data loading sections 2019-12-26 20:16:35 -07:00
fc0a37999b
Added size safety check to ddrescue TUI 2019-12-26 19:27:08 -07:00
bd3601e0c8
Ask for ticket ID and use in working_dir 2019-12-26 17:35:58 -07:00
20ffa0c6db
Added --start-fresh argument 2019-12-24 18:01:04 -07:00
ef6abce6ab
Skip source partition selection if using JSON data 2019-12-24 17:35:38 -07:00
f542b62f3c
Use source model name in clone settings save file 2019-12-24 16:44:26 -07:00
4c50a1fb8a
Added first run flag to clone settings
* If the loaded settings are for a non-attempted recovery discard settings
2019-12-24 16:43:07 -07:00
67bb9223aa
Moved block pair report to new function 2019-12-24 16:42:18 -07:00
e7e3261b0a
Fixed partition separators 2019-12-24 16:38:42 -07:00
f71cc8ad68
Expanded block pair sections and confirmations 2019-12-22 21:24:02 -07:00
1ed6309971
Include selected source parts in 1st confirmation 2019-12-22 19:05:32 -07:00