Commit graph

237 commits

Author SHA1 Message Date
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