Commit graph

212 commits

Author SHA1 Message Date
19dcc87950
Pause when showing usage 2018-07-18 22:09:47 -06:00
e5ce254e8b
Verify destination FS is mounted read-write 2018-07-18 22:02:17 -06:00
f2c557f77c
Added safety checks for the destination
* Dev size / avail space checks
* Permission checks
  * No mount option checks (yet?)
2018-07-18 20:54:51 -06:00
88c28a3f25
Added auto-continue code
* Enabled by default
* Based on static thresholds per pass.
  * Pass 1: 85%
  * Pass 2: 98%
* If using child devices, all must be above the threshold to continue
2018-07-18 18:26:03 -06:00
9d91a28d7a
Add children pass, status, and update sections
* Updating device / child device status/progress done in mark_*() functions
* Add current pass description to main menu
* Current pass (overall) only updated if all children have passed
* Fix Pass 4 crash
2018-07-17 23:22:08 -06:00
c705ba6afc
Add pass completion detection sections
* Retry option now sets recovery back to pass 1
2018-07-17 22:10:37 -06:00
a12a591279
Moved SMART sections to a separate script
* Refresh rate is now handled by 'watch --interval'
* Allows for much simpler ddrescue execution / tracking
* Removed all 'SMART Report' sections from functions/ddrescue.py
* functions/hw_diags.py has been further extended
  * Supports full device paths (only for displaying attributes ATM)
  * Adds a timestamp when only displaying attributes
2018-07-17 21:05:37 -06:00
358191539c
Added run_ddrescue() and update_smart_report()
* Working "wait" loop while ddrescue is running.
2018-07-17 19:19:38 -06:00
d1d3e1592e
Added get_process() 2018-07-17 18:11:23 -06:00
7d851d2222
Add settings menu 2018-07-17 16:59:45 -06:00
310a2eb63a
Initial Main Menu code
* Required refactoring pass status code
* Need to add settings menu next
2018-07-17 16:01:29 -06:00
fd8ac7cf1a
Add child device selection menu for Image mode
* Can select either whole device or child dev(s), not both
2018-07-17 14:16:38 -06:00
de8f3bbd2b
Use image file instead of loopback device
* Still setup loopback for image details but use image directly in ddrescue
* Adjusted outer/side panes to use image path instead of loopback dev
2018-07-17 13:21:12 -06:00
29266f1611
Added initial Imaging source child dev support 2018-07-17 01:11:43 -06:00
1e4a3b6c0e
Fix provided_path for Imaging and adjust top panes
* Moved select_path menu sections to menu_select_path()
2018-07-17 00:49:41 -06:00
007d2ef692
Added select_path() for Image mode
* Can select the current path, a local device's volume, or enter manually
* Optionally add a ticket folder to path before imaging
2018-07-17 00:15:28 -06:00
c37dab58af
Updated mount_all_volumes(), now mount_volumes()
* Now allows mounting R/W
* Can restrict to a specific device's volume(s)
* Added more data to the returned report
2018-07-17 00:06:43 -06:00
6eb486c770
Extend get_simple_string() to support underscores 2018-07-17 00:05:47 -06:00
9a27afebf7
Moved selection details into its own function
* Will allow for better duplication in Image mode
2018-07-16 22:19:39 -06:00
6643cf5d25
Moved outer pane section to its own function
* Will allow better duplication with Image mode
2018-07-16 22:08:00 -06:00
552868c26e
Moved safety check into its own function
* Will allow better duplication with Image mode
2018-07-16 22:04:09 -06:00
69909fa34c
Added safety check 2018-07-16 21:02:53 -06:00
855884ec93
Added initial update_progress() sections
* TODO: expand to support Image mode
2018-07-16 21:01:10 -06:00
ae4f2ac680
Added outer panes 2018-07-16 19:40:29 -06:00
b5d8a55031
Reordered functions 2018-07-16 18:07:12 -06:00
e56296d8b0
Consolidated device selection code
* Common code moved to select_device()
* Existing select_device() renamed menu_select_device()
* Fixed skip_device code
* Refactored source/dest vars into dicts
* Added confirmation after source/dest are selected
2018-07-16 18:01:06 -06:00
0c3b90eb63
Add clone destination sections
* Hide source device in dest selection menu
2018-07-15 00:04:24 -06:00
cfbd0ec8f2
Add device selection menu 2018-07-14 23:45:08 -06:00
667223b3c2
Check passed source
* If it's an image, setup loopback dev
* If it's a child block dev, prompt with option to use parent block
* Show selected source details
2018-07-14 22:52:18 -06:00
8b1e19fa4b
Initial wk-ddrescue menu 2018-07-14 21:19:08 -06:00
d57b08ec6f
Update hw_diags so it can be used by wk-ddrescue 2018-07-14 21:17:32 -06:00
2Shirt
bbfcc2e3fe Hotfix: Handle size=None in human_readable_size() 2018-05-30 17:26:49 -06:00
2Shirt
24df753a40 Add support for LVM and RAID to mount-all-volumes
* Renamed get_mounted_data to get_mounted_volumes
* Report data is now a dict for better clarity
* Widened report hoping that LVM names will fit (they probably wont)
* This fixes #38
2018-05-21 20:25:12 -06:00
2Shirt
25d34e5ace Copy WinPE.log to new Windows installations 2018-05-21 15:57:24 -06:00
2Shirt
70e4797b7a Refactored windows_image code
* Better names (e.g. 'Letter' instead of 'Source')
* Added 'Local' bool to simplify network-vs-local installs
* Only reassign the source letter if necessary
* Bugfix: Update 'Path' when reassigning a volume letter
* Fixes #33 (again)
2018-05-21 15:43:05 -06:00
2Shirt
e305b3e60f Add warning for missing archive in extract_item() 2018-05-17 20:56:55 -06:00
2Shirt
27953bde5a Update backup/restore code
* Added support for local backups
* Added volume label detection for local backups
* Replace spaces in backup_prefix with underscores
2018-05-17 20:54:45 -06:00
2Shirt
b997a52385 Updated hw-diags section
* Use date_time instead of ticket_number if disabled
2018-05-17 18:17:36 -06:00
2Shirt
db09236b26 Updated user_data_transfer sections 2018-05-17 18:06:26 -06:00
2Shirt
bec947262b Updated WinPE sections 2018-05-17 18:03:53 -06:00
2Shirt
3114b72178 Add ticket toggle var and get_simple_string func
* get_simple_string() will be used for backup prefixes
2018-05-17 17:57:45 -06:00
2Shirt
5ea499d6ff Assign volume letters before finding source image
* Fixes issue #33
2018-05-17 17:09:22 -06:00
2Shirt
1c3520806c Avoid nohup.out creation 2018-05-17 15:17:14 -06:00
2Shirt
0902a7997f Moved SafeMode sections into functions/safemode.py
* Allows for better descriptions of the actions being taken
* Allowd for better error handling
* Fixes issue #34
2018-05-14 12:58:06 -06:00
2Shirt
6868988cec Added antivirus check to the system_checklist
* Fixes issue #31
2018-05-14 12:11:38 -06:00
2Shirt
8ea17268c7 Fixed local sources for user_data_transfer
* Added support for local images and root folders
2018-05-14 09:42:30 -06:00
2Shirt
e751696307 Avoid crash if VCR+ installers are missing 2018-05-14 08:01:09 -06:00
2Shirt
ebffd2a2dd Added more missing file warnings
* Part of the fix for #27
2018-05-14 07:54:33 -06:00
2Shirt
17dc572c4a Added warnings for missing tools 2018-05-13 18:57:27 -06:00
2Shirt
79d2af6e0a Fix issue #27
Several popen_program() calls were not inside try blocks causing full crashes
2018-05-13 18:20:42 -06:00
2Shirt
18c535dcfd Bugfix for OS detection
* Avoids CurrentBuild collision between Win8 and Win8.1
* Fix DisplayName formatting
2018-05-13 16:09:07 -06:00
2Shirt
ee2bcd5aea Refactored OS build detection
* Known build data moved to settings/windows_builds.py
* OS version statically set in windows_builds.py
* Added Insider Previews to recognized builds
  * Shown in red due to their very short support windows
* Windows 8 and Windows 8.1 are now separate versions
* Added codenames to Vista and 7 (for fun!)
* Unrecognized builds have the CurrentBuild number in the DisplayName
2018-05-12 20:13:54 -06:00
2Shirt
04f7ae2f21 Better unit handling during I/O Benchmarks
* All results are in MB/s
2018-04-16 14:17:28 -06:00
2Shirt
e55dbeeb23 Add dd drive I/O Benchmark test
* All tests: runs if SMART=CS/OVERRIDE & BADBLOCKS=CS
* All drive tests: runs if SMART=CS/OVERRIDE & BADBLOCKS=CS
* I/O tests are readonly, blocksize=4M, and limited to 16 Gb
* Fix issue #23
2018-04-16 02:58:34 -06:00
2Shirt
4b0dde6efe Re-add keyboard test to HW diag menu
* Fix issue #25
2018-04-15 10:25:49 -06:00
2Shirt
8e22aa22b0 Fix issue #22 2018-03-15 15:28:54 -06:00
2Shirt
b080200118 Fix issue #21 2018-03-15 14:30:46 -06:00
2Shirt
ac1ee5f695 More HWiNFO updates 2018-03-08 19:09:22 -07:00
2Shirt
d82ad55113 Fix issue #19 2018-02-28 13:15:00 -07:00
2Shirt
a5630c2837 Updated HWiNFO download sections 2018-02-21 18:08:47 -07:00
2Shirt
64f22fbe30
Updated update.py
Support new HWiNFO archives
2018-02-21 14:02:11 -07:00
2Shirt
a0c6569eaf
Fix issue #12
The download no longer gets wrapped in a gzip archive.
2018-02-09 11:50:51 -07:00
2Shirt
e958eedfb6 Fix handing of path separators to prevent crashes 2018-02-07 20:15:31 -07:00
2Shirt
44acb9b755
Update windows_setup.py 2018-01-30 17:28:34 -07:00
2Shirt
96c6997a44 Update function docstrings 2018-01-30 16:50:28 -07:00
2Shirt
89c343943f Replaced remaining show_info calls with show_data 2018-01-30 16:00:59 -07:00
2Shirt
e0db7560e6 Better server share mounting
* Added ability to mount read-only or read-write
  * Allows the same main.py file to be used for all build scripts.
2018-01-30 15:23:46 -07:00
2Shirt
3ac2d8d1d4 Bugfix: Setting Windows time should work again
* Was using the wrong variable name
2018-01-28 18:19:57 -07:00
2Shirt
012da00821 Removed ClientInfo upload code 2018-01-28 17:55:40 -07:00
2Shirt
c24554720f Add option to upload crash details
* Disabled by default, enabled via main.py ENABLE_UPLOAD_DATA
* Upload destination set via main.py CRASH_SERVER variable
2018-01-28 17:48:42 -07:00
2Shirt
d96256fd87 Add reboot/shutdown entries when not in X 2018-01-27 12:45:37 -07:00
2Shirt
30dcd8758e Added a "Yes to all" option to User Data Transfer 2018-01-26 18:35:05 -07:00
2Shirt
a7451f86ba Added choice() function
* Provides a simlilar interface to the Windows choice command.
2018-01-26 18:32:33 -07:00
2Shirt
f0ae207890 Improved source scanning for user data transfers
* Fixes recursion bug when Windows.old folders are present
* Combined logic for file/folder sources and WIM sources
* Code uses proper folder separators for the running OS
  * (e.g. '\' for Windows and '/' for the rest)
2018-01-26 17:52:43 -07:00
2Shirt
f7f3f0d53c
Updated info.py
Should fix #10
2018-01-17 17:22:45 -07:00
2Shirt
0e87bf55a0 Enable HW-Diags for more devices
* Skip all removable WizardKit devices
* Fixes issue #8
2018-01-15 13:45:58 -07:00
2Shirt
c7901d1328 Merge branch 'linux' into dev 2017-12-30 12:30:27 -07:00
2Shirt
43e8746c46 Fixed using local Windows images 2017-12-30 12:04:48 -07:00
2Shirt
698546f823 Switch to single-line disk descriptions 2017-12-27 19:36:22 -07:00
2Shirt
c0cbdc6923 Added pause after audio and network tests 2017-12-27 19:19:29 -07:00
2Shirt
524096165c Forgot to update_progress during badblocks tests 2017-12-27 14:02:04 -07:00
2Shirt
5d70124c39 Updated badblocks section
* Reduced worker pane size
* Save badblocks logs in LogDir
2017-12-27 13:42:10 -07:00
2Shirt
18ce079aa3 Open log after HW diags 2017-12-27 13:11:25 -07:00
2Shirt
6ddf3fca67 Re-added hw-diags quick disk check function 2017-12-27 04:45:59 -07:00
2Shirt
16c20ac6ea Cleanup and fix results screen during abort
* Renamed run_smart to run_nvme_smart to match rest of the code
* Mark NVMe/SMART status as NS earlier in a couple more cases
* Prevent crash when all tests are run and then aborted during Prime95
2017-12-27 04:22:02 -07:00
2Shirt
7fbbde56c6 run_badblocks() working
* Re-added and updated hw-diags-badblocks
2017-12-27 04:01:54 -07:00
2Shirt
0ea523a2cf Show Prime95 final temps in result screen 2017-12-27 02:12:32 -07:00
2Shirt
0bab107e24 Updated results screen formatting 2017-12-27 02:11:28 -07:00
2Shirt
24e72f2f35 SMART section finished
* The script waits for the self-test for polling-time+5min
  * Unless it detects completion after 60 seconds
* Fixed missing linebreaks in progress panes
* BREAKING: TESTS data structure reworked to support per-dev status
2017-12-27 01:42:04 -07:00
2Shirt
579a747878 Started work on results screen 2017-12-26 21:43:23 -07:00
2Shirt
a6917fc129 run_mprime() finished
* Results now determined from log files
2017-12-26 15:57:36 -07:00
2Shirt
8ff33547c4 Save temps just before stopping Prime95 2017-12-26 15:16:15 -07:00
2Shirt
03d7646685 Enabled logging for hw-diags 2017-12-26 14:17:53 -07:00
2Shirt
74ba8fb758 Added hw-diags-prime95 and still removing libtmux 2017-12-24 18:46:02 -07:00
2Shirt
57b1d246c2 Going to drop libtmux and use tmux directly 2017-12-24 17:13:48 -07:00
2Shirt
6f456f5c47 Added show_disk_details() 2017-12-24 15:41:13 -07:00
2Shirt
59a449e7e5 Cleanup
* Renamed 'Health OK' to 'Quick Health OK'
  * Better implies that we're not done testing
* Renamed SMART sections to NVMe/SMART
  * Dropping SMART short-tests for NVMe drives
2017-12-24 13:19:23 -07:00
2Shirt
87c09c4da0 New method for gathering SMART/NVMe data
* Replaced smartmontools with smartmontool-svn
  * Adds JSON exporting which makes parsing the data easier
* Using nvme-cli for NVMe drives instead of smartctl
  * NVMe support in smartctl is still experimental and inconsistent
* New "Health OK" detection
  * This is used to determine if a disk is okay to be tested
    * e.g. an IDE disk w/out any SMART data now requires explicit overriding
  * NVMe disks are set using the "critical_warning" attribute
  * SMART disks are set using the "overall-health" attribute
2017-12-24 00:21:33 -07:00
2Shirt
5d6e138d29 Started hw-diags & hw-diags-inner rewrite 2017-12-23 19:11:50 -07:00
2Shirt
a1b72c0aeb New hw-diags-network script 2017-12-22 00:45:42 -07:00