10b443f0f5
Add framework for running auto repair groups
2021-04-23 03:20:32 -06:00
c2d3752bc5
Update TryAndPrint()
2021-04-21 23:57:19 -06:00
d200878e0d
Revert update() to private method and add wrapper
2021-04-21 22:27:49 -06:00
125907ed3a
Add Auto Repairs menus
2021-04-21 05:19:27 -06:00
3c748520e1
Don't suppress bells in ConEmu
2021-04-20 22:23:05 -06:00
ee3203c485
Show message when downloading tools
2021-04-20 22:06:03 -06:00
b44fda2ccd
Avoid clobbering files when downloading tools.
2021-04-20 21:14:31 -06:00
cb825e37ba
Add support to run tools from .cbin or online
2021-04-19 01:04:18 -06:00
b8335188ce
Add wk.kit.tools
...
For code related to downloading, finding, and running tools on the kit.
2021-04-17 17:49:04 -06:00
65cb8481bc
Add wk.repairs section
2021-04-17 14:10:30 -06:00
fd7a8c4066
Add Windows service functions
2021-04-17 12:13:24 -06:00
9351b597c2
Avoid potential crash in run_chkdsk_online()
2021-04-17 11:38:06 -06:00
d722e587b1
Expand warning notice for ddrescue-tui under macOS
2021-04-17 11:26:00 -06:00
7064472e0b
Fix SFC scan
2021-04-16 03:33:47 -06:00
ffa2df416b
Set source drive to sleep instead of detaching it
2021-04-16 01:07:56 -06:00
e088f705ba
Add run_dism()
2021-04-15 23:33:11 -06:00
47b49077da
Show CHKDSK progress in separate pane under ConEmu
2021-04-15 23:31:08 -06:00
943c1e11b9
Retry CHKDSK on failures
...
Fixes issue #159
2021-04-15 21:13:28 -06:00
ed6f188eb2
Avoid pylint errors under Linux/macOS
2021-04-15 20:04:33 -06:00
759cd12379
Reoder Windows functions
2021-04-15 19:48:36 -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
719e6c457d
Remove stale code
2021-04-10 17:37:46 -06:00
0ed814786a
Show help screens for hw-diags and ddrescue-tui
2021-04-09 18:51:32 -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
9eb782e2b7
Remove macOS override to default log path
...
Isn't needed since we're setting $HOME and including a symlink.
i.e. /var/root/Logs --> /Volumes/RAM_Disk/Logs
2021-04-06 17:06:48 -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
8e5d350ac2
Update default log dir under macOS
2021-04-06 15:52:57 -06:00
cce8651e00
Update launch-in-tmux to avoid some error messages
...
If tmux wasn't already running it would output an error but still work.
The new approach will suppress that since we're not concerned if it's
already running or not, just whether the desired session is.
Modified the live macOS args to support connecting to the HW-Diags
session remotely (more easily at least).
2021-04-05 16:46:01 -06:00
21627180c3
Update wk-power-command to support macOS
2021-04-01 22:07:47 -06:00
ae42634a8e
Add SMART override for some Samsung devices
...
* Addresses issue #163
2021-03-26 00:57:08 -06:00
1a70ad0c63
Generate iwd network profiles
...
* Addresses issue #162
2021-03-25 23:39:48 -06:00
ba5efedb11
Remove pylint bad-whitepace references
2021-03-25 21:25:40 -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
7fdab1b1e6
Fix typo
2021-03-25 15:14:37 -06:00
1f4a3c6e55
Avoid crash when parsing special mountpoints
2021-03-25 14:37:02 -06:00
1353de44f7
Merge refactored code
...
NOTE: This was unintentionally squashed so some details were lost
* Include max CPU temp in Conky
* New tint2 theme
2021-01-10 19:55:19 -07:00
118012d7e2
Merge refactored code
...
NOTE: This was unintentionally squashed so some details were lost
* Major updates to build_linux to support the current archiso scripts
* Most customize_airootfs.sh code has been moved elsewhere
* Using static files or links where possible
* Generating other files as needed in build_linux
* Syslinux configuration has been simplified
* Dropped i3
* Dropped rxvt-unicode in favor of termite
* Font rendering broke one too many times
* Dropped NetworkManager in favor of iwd/systemd-networkd
2021-01-10 19:28:51 -07:00
31cd8d1e56
Fix items_not_found logic
2021-01-10 17:19:27 -07:00
ce912e9525
Update windows_builds.py to include 20H2
2021-01-09 21:15:07 -07:00
7d77aa81b0
Update sensors.py to improve CPU data
...
Include AMD CCD sensors
Exclude current sensors
2021-01-09 21:08:53 -07:00
830395f672
Update windows_builds.py to include 20H1
2021-01-09 21:07:45 -07:00
9a53d4adad
Updated log handling to support Windows
2020-04-26 16:28:23 -06:00
6c775bbba7
Adjusted running as root checks
...
* Suppress pylint errors when checking uid/euid/gid
* Helpful when checking under Windows
* Allow running wk.exe.stop_process() under Windows
2020-04-26 16:24:35 -06:00
d0d74b8763
Support creating emtpy keys in reg_write_settings()
2020-04-07 23:23:11 -06:00
8753344665
Added reg_write_settings()
...
* Replaces old write_registry_settings()
* Uses tuples to combine all parts of the values
* e.g. ('SampleValue', 'SampleData', 'SZ', '32)
* This will allow merging multiple setting groups together
* Should be more readable than the old method
2020-04-07 23:05:40 -06:00
24dbdf29fd
Added Windows Registry functions
2020-04-06 19:46:09 -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
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
e301617ca0
Revert "Adjusted menus under live macOS"
...
This reverts commit 4a3981e10c .
2020-01-30 20:05:15 -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
6eb75c38a3
Report if item(s) are missing during build-ufd
2020-01-30 13:48:51 -07:00
64db679a4d
Allow setting verbose value for TryAndPrint obj
...
* Instead of strictly per-call
2020-01-30 13:47:59 -07:00
154acc5280
Run build-ufd as current user
...
* sudo is used for elevated commands instead
* Avoids splitting logs between root and current user
* Addresses issue #150
2020-01-30 13:36:43 -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
417241acb5
Fixed clearing the screen under live macOS
2020-01-30 13:09:57 -07:00
4a3981e10c
Adjusted menus under live macOS
2020-01-30 13:08:13 -07:00
c7d57ff266
Fixed logging under live macOS
2020-01-30 13:07:04 -07:00
e1943b9fb4
Strip sudo use if running as root on Linux/macOS
...
* Allows running under live macOS
2020-01-30 13:03:21 -07:00
41130a38ed
Fix running tmux in live macOS env
2020-01-30 13:02:41 -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
7fd3e3bada
Added Mac fan control sections
2020-01-28 18:04:21 -07:00
25d9f3d20d
Updated Mac sensor names
2020-01-28 18:00:29 -07:00
568483d49c
Updated config to use hexidecimal for sfdisk
2020-01-24 12:27:13 -07:00
9c95dcbd5c
Fixed CoreStorage scanning
...
* Dropped use of mktemp since sudo was interferrring
* Fixed crash if timeout occurred
2020-01-23 18:56:27 -07:00
25c532881e
Allow custom temp file suffixes
2020-01-23 18:56:11 -07:00
1b643f3918
Updated wk.kit.ufd
...
* Don't continue if a step fails, instead re-raise the exception
* Made the private functions public
2020-01-23 14:09:13 -07:00
019cbb6c1a
Updated TryAndPrint
...
* catch_all can now be set for a TryAndPrint instance
* As opposed to defining for every TryAndPrint.run() call
2020-01-23 14:06:52 -07:00
ea3240772e
Create mount_point before mounting source
2020-01-22 23:15:12 -07:00
b71d3479be
Updated wk.kit.ufd
...
* Moved TryAndPrint run_program calls to private functions
* Only need PASS/FAIL and to hide the cmd output
* Avoid crash when searching for boot config files
* Misc Bugfixes
2020-01-22 23:11:24 -07:00
78e28bb6d2
Log wk.exe.run_program result in debug mode
2020-01-22 23:07:03 -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
a01f3d04b6
Updated mount-all-volumes
...
* Added gui argument to open Thunar after mounting
2020-01-16 19:18:12 -07:00
7f9cb9917d
Replaced oblogout with new wk-exit script
...
* Dropped oblogout due to Python2 dependencies
2020-01-16 18:57:27 -07:00
d873013968
Explicitly request Python 3
2020-01-13 23:19:18 -07:00
23fb36cd8a
Added upload-logs script
2020-01-13 23:18:37 -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
f91df9f4e7
Fixed hw-diags and ddrescue-tui launchers (again)
2020-01-13 21:59:11 -07:00
df2e4927d2
Made add-known-networks executable
2020-01-13 21:20:17 -07:00
0a7fedd9c5
Fixed hw-diags and ddrescue-tui launchers
2020-01-13 18:23:17 -07:00
28d9085231
Fixed getting filesystem UUID
2020-01-13 17:48:22 -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
e355fb1316
Use UUIDs instead of labels in build-ufd
...
* Addresses issue #138
2020-01-13 16:48:00 -07:00
24a2e60f02
Use two-space indentation everywhere
2020-01-13 16:24:56 -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
9171ed6685
Revert SMART config used for testing
2020-01-08 19:09:55 -07:00
0a2976d9ce
Set pass/fail attributes in disk_attribute_check()
2020-01-08 19:02:09 -07:00
7702cdcf0a
Finished converting UFD sections, testing next
2020-01-07 23:53:55 -07:00
8b9672313a
Added ufd settings
2020-01-07 23:21:18 -07:00
142ad75744
Added remaining UFD functions
2020-01-07 21:58:04 -07:00
b0b0b612a1
Added Linux mount and unmount functions
...
* If not running with root priviledges then udevil is used.
2020-01-06 20:58:46 -07:00
c135d686df
Added Linux functions for building UFDs
2020-01-06 20:27:59 -07:00
8f31e5bd67
Added I/O functions for building UFDs
2020-01-06 20:26:57 -07:00
703783406a
Removed old mount-all-volumes script
2020-01-04 21:36:44 -07:00
7bf03749ec
Added CoreStorage scanning logic
...
* Still needs tested
2020-01-04 21:35:42 -07:00
b75326aeee
Added indent option to wk.std.print_report()
2020-01-04 21:04:24 -07:00
945ae941fa
Added mount-all-volumes sections
...
* Still need to add the CoreStorage logic
2020-01-04 21:01:41 -07:00
fdad48f613
Fixed wk.std.color_string()
2020-01-04 21:00:36 -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
168c0a50df
Removed old ddrescue-tui launcher
2020-01-04 18:18:39 -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
48eb4c13d7
Better handle non-iterables in color_string()
2020-01-02 21:57:40 -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
20787da275
Optionally disallow empty responses to input_text
2019-12-26 17:19:26 -07:00
c083a124ad
Adjusted wk.std.input_text() again
...
* Dropped tcflush usage for simplicity
* Readded the prompt usage from 564745f03b
2019-12-26 17:00:41 -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
44b6c4eedb
Disable network servers by default
2019-12-22 21:24:55 -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
6d6380dc6a
Added clone load/save and add block pair sections
2019-12-22 18:49:07 -07:00
0f2007f5dc
Set working directory for ddrescue TUI
...
* If cloning use backup server share
* If imaging use destination directory
* If a preferred directory and fstype can't be used then warn the user
2019-12-22 16:14:03 -07:00
428d255538
Added selection confirmation sections
2019-12-21 16:53:55 -07:00
0f0c47bbe4
Force selecting at least one partition/device
2019-12-20 12:54:42 -07:00
59ef06f402
Added select_path()
2019-12-19 11:59:34 -07:00