7abd4c21c3
Refactor Disk children sections
...
Child devices are not added by default to improve performance.
Disk.children is always present to avoid overly cautious lookups.
2022-05-21 15:03:44 -07:00
e03956f2fe
Convert Disk description to a property
2022-05-21 14:39:42 -07:00
29d4e80f7e
Refactor get_disks_macos() to improve performance
...
Found a way to easily exclude disk images from the list under El Cap
2022-05-20 19:44:12 -07:00
cf7ed909b3
Remove Python 3.10 requirement
2022-05-20 17:08:10 -07:00
5fc5cda86d
Avoid adding duplicate attribute failure notes
2022-05-14 17:51:43 -07:00
0ecc4d4146
Add test mode to Hardware Diagnostics
...
Addresses issue #192
2022-05-14 17:48:04 -07:00
47308c1508
Allow non-integer number of minute countdowns
2022-05-14 16:19:18 -07:00
6642aad2c8
Update ddrescue-tui to use new Disk object vars
2022-05-01 16:20:39 -07:00
2585ed584c
Refactor disk safety checks
2022-04-18 09:21:29 -07:00
95cd3b645d
Remove SMARTSelfTestInProgressError sections
...
Going forward this is a non-blocking error.
2022-04-11 16:50:21 -06:00
d667695e9e
Move surface scan check to its own function
2022-04-11 14:30:42 -06:00
af8b2b7dd3
Refactor SMART self-test sections
2022-04-08 19:19:23 -06:00
41b4ffd9fb
Cleanup pylint sections
2022-04-08 18:38:55 -06:00
312df1ee9d
Refactor import logic for wk.hw.diags
2022-04-08 15:38:03 -06:00
20f91f01d1
Add type hints to hardware functions
2022-04-06 19:08:23 -06:00
3d7881328f
Move ddrescue out of wk/hw section
2022-04-06 19:08:09 -06:00
f79e578aaf
Remove pylint warning from sensors
2022-04-06 16:23:44 -06:00
46eb737dc8
Move SMART functions to their own file
2022-04-06 16:22:58 -06:00
99dd7661d4
Split hardware diagnostics into multiple files
2022-04-05 18:11:06 -06:00
fc2bb07d11
Track test groups as list instead of a dict
...
By only including selected tests we can skip checking for the
enabled/disabled status. This will also simplify the process
of disabling future tests for a disk if a failure is detected.
2022-04-05 14:45:14 -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
172cb398ba
Convert hardware objects to dataclasses
2022-04-04 18:30:21 -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
a19714d735
Skip CPU tests by default for TestStations
...
Addresses #179
2021-12-14 14:08:22 -07:00
90fb97ad91
Fix various pylint warnings
2021-09-27 21:48:11 -06:00
7dfd399e6e
Update __init__.py files
2021-09-13 18:42:36 -06:00
9c5767f71f
Update CPU testing sections
2021-06-23 23:33:45 -06:00
8e0fdf641b
Retest temps with sysbench if Prime95 runs too hot
...
If the CPU reaches the failing temps during Prime95 then sysbench will be
run to emulate a less artificial workload. The both the overall and sysbench
max temps are recorded and shown in the results.
Added new option to track an alternate max temp value in wk.hw.sensors.
This was needed so show two different max temps recorded during CPU testing.
Sysbench was added to the Linux package list and is compiled for macOS.
Without manually compiling the package it brings in way too many dependencies
to support SQL DB testing (which we don't need).
2021-06-17 03:16:34 -06:00
ffa2df416b
Set source drive to sleep instead of detaching it
2021-04-16 01:07:56 -06:00
20fe08dbb4
Get correct size for child dev under macOS
2021-04-14 02:16:58 -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
535455813c
Use the new command name for pipes.sh
2021-04-11 15:30:32 -06:00
b047b28f30
Fix typo
2021-04-11 15:27:51 -06:00
66bf189e55
Disable benchmark tests on surface scan failures
2021-04-09 03:02:28 -06:00
b3a667641d
Show failed attributes during surface scans
2021-04-09 02:29:06 -06:00
ce8dddd9b7
Include note if attributes fail mid-diagnostics
2021-04-09 02:27:11 -06:00
812fd15011
Add more pylint cleanup fixes
2021-04-09 00:15:59 -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
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