{"id":47616348,"url":"https://github.com/dogwalker-kryt/linux-drive-manager","last_synced_at":"2026-04-17T19:00:46.558Z","repository":{"id":306111241,"uuid":"1024953287","full_name":"Dogwalker-kryt/Linux-Drive-Manager","owner":"Dogwalker-kryt","description":"A custom made Drive Manager for Linux (Debian based), to do various operations with ssd's hdd's and other storage devices","archived":false,"fork":false,"pushed_at":"2026-04-16T13:56:50.000Z","size":1636,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T15:38:02.272Z","etag":null,"topics":["cpp","drive","drive-management","drive-manager","drives","linux","storage","storage-device","storage-device-manager","storage-management","storage-manager"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dogwalker-kryt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-23T13:51:17.000Z","updated_at":"2026-04-14T19:13:35.000Z","dependencies_parsed_at":"2025-07-23T18:38:52.382Z","dependency_job_id":"1df39ed0-bbae-4cc4-9e35-a9183f0efb57","html_url":"https://github.com/Dogwalker-kryt/Linux-Drive-Manager","commit_stats":null,"previous_names":["dogwalker-kryt/drive-manager-for-linux","dogwalker-kryt/drive-manager-linux"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/Dogwalker-kryt/Linux-Drive-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dogwalker-kryt%2FLinux-Drive-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dogwalker-kryt%2FLinux-Drive-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dogwalker-kryt%2FLinux-Drive-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dogwalker-kryt%2FLinux-Drive-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dogwalker-kryt","download_url":"https://codeload.github.com/Dogwalker-kryt/Linux-Drive-Manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dogwalker-kryt%2FLinux-Drive-Manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31941845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","drive","drive-management","drive-manager","drives","linux","storage","storage-device","storage-device-manager","storage-management","storage-manager"],"created_at":"2026-04-01T21:28:57.172Z","updated_at":"2026-04-17T19:00:46.471Z","avatar_url":"https://github.com/Dogwalker-kryt.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux-Drive-Manager\n\nA terminal-based drive management tool for Linux (Debian-based), written primarily in C++. \n\nThis application provides a straightforward interface for managing storage devices — HDDs, SSDs, and more — directly from the command line.\n\n## Why This Utility Exists\n\nPerforming Disk operations on Linux often requires chaining multiple commands together, like lsblk, dd and more.\n\nA small mistake can lead to:\n- Data loss\n- System instability\n- Irreversible changes\n\nThis tool exists to make those operations safer and reproducible.\n\nIt provides:\n\n- Dry-run mode before execution\n- Explicit command preview in the source code\n- Input validation\n- Safety confirmations\n- Structured logging\n- TUI for controlled interaction\n\nThe goal is not to replace underlying tools,\nbut to add a safety and orchestration layer on top of them.\n\n---\n\n## Version Control\n\n#### Activly in Development\n\n### CLI:\n\n- Experimental: `v0.9.24.46`  \n  _(new -cfg-src and -sd commands)_\n\n### GUI (Not getting Updated anymore):\n\n- Rust GUI: `v0.1.5-alpha` (Lists drives; not feature complete)\n- C++ GUI: `v0.1.1-alpha`  \n  _(GUI versions lag behind CLI/TUI)_\n\n---\n\n## Warning\n\n**This tool is for advanced users only!** Formatting, encrypting, or modifying drives is inherently risky.  \n- Always back up your data.\n- Do not type arbitrary or dangerous input at prompts (such as `/dev/sda rm -rf`).  \n- Double-check all device paths before confirming any destructive operation.\n\n---\n\n## Project Structure\n\n```\n/DriveMgr_CLI      - CLI source code (C++)\n    /include       - Headers (.h)\n    /src           - Core sources\n\n/DriveMgr_GUI      - GUI version (Rust/C++)\n\n/Launcher\n\tlauncher.cpp   - Launcher source code (C++)\n\tlauncher       - Launcher binary\n\n/Lume\n\tLume (elf)     - Text editor for Configuration editing in ldisk\n\tmain_lume.cpp  - Lume source code (C++)\n\n/Log and Key file\n\tlog.dat\t\t   - Example log file\n\nsetuo.py\t       - Build/install script\nconfig.conf        - Example config\n\n```\n\n---\n\n## Features\n\n#### More in development \n\n### Feature Overview\n\n| Feature        \t\t\t\t\t| Status     \t| Description                          \t\t\t\t\t|\n|-----------------------------------|---------------|------------------------------------------------------|\n| List Drives and Partitions\t    | Working    \t| Shows all connected storage devices  \t\t\t\t\t|\n| SMART disk health check\t\t    | Working \t \t| Reads health data from drives        \t\t\t\t\t|\n| Format Disk (lable, fstype)    \t| Wokring  \t \t| Helps Formatting drives \t            \t\t\t\t|\n| Partition Management\t\t \t\t| Wokring  \t \t| Helps Manaing Partitions             \t\t\t\t\t|\n| USB Drive En- an Decryption  \t\t| Working\t \t| Encrypts USB Drives \t\t\t\t\t\t\t\t\t|\n| Drive Overwriting\t\t\t\t\t| Working\t \t| Wipes drive to 0\t\t\t\t\t\t\t\t\t\t|\n| Logging and config system\t\t\t| Working\t\t| Change history / For start preferences and colors\t\t|\n| viewing Metadata\t\t\t\t\t| Working\t \t| View Metadata of Drives; Works with raw and SMART\t\t|\n| Forensic/Recovery Tools\t\t\t| Experimental\t| For file recovery and stuff\t\t\t\t\t\t\t|\n| Low viewer\t\t\t\t\t\t| Working\t\t| View last Loggs and wipe Log file clean if you want\t|\n| Clone Drives\t\t\t\t\t\t| Wokring\t\t| Clone content of a Drive from one to another\t\t\t|\n| Config viewer and editor with [Lume](https://github.com/Dogwalker-kryt/Lume)\t| Working\t\t| View Config setting and change them i prefered\t\t|\n| Fingerprinting\t\t\t\t\t| Working\t\t| Create a sha256 hash Fingerprint of you drive\t\t\t|\n| Color themes\t\t\t\t\t\t| Wokring\t\t| Choose color of Menu boxes and selection color\t\t|\n| Intigrated Tests\t\t\t\t\t| Working       | Test side and helper functions right in the program   |\n\n\n### Start Commands\n\nEvery command has a normal name and a shortend abstract version\n\n| Command\t\t\t\t\t| Description \t\t\t\t\t\t\t\t\t|\n|---------------------------|-----------------------------------------------|\n| --version, -v\t\t\t\t| Prints the current version of the Dmgr \t\t|\n| --help, -h\t\t\t\t| Prints the printusage for all CLI commands\t|\n| --dry-run, -n\t\t\t\t| Disables the execution of commads through the exec_cmd.h api in the current session |\n| --no-color, -c\t\t\t| Disables the use of colors in the current session |\n| --no-log, -nl\t\t\t\t| Disables loggin in the current session |\n| --debug, -d\t\t\t\t| Enables that debug_msg() functions are printed and enables the usage of the Test option in the current session |\n| --info, -i\t\t\t\t| Show Dmgr info |\n| --logs, -l \t\t\t\t| Show log file content |\n| --select [device], -sd [device] | Pre selects the drive you entered, skiping the drive selection in the current session |\n| --config-src [path], -cfg-src [path] | With this you can load the program with another config file in the current session |\n| --operation-name \t\t\t| With this you can directly jump to functions/operation wihtout using the menu |\n\n---\n\n\n## Installation\n_If during the installation somthing unexpected happens, you can ask for help by opening an issue or a discussion_\n### Tech Stack / Requirements\n\n- Linux (debian based recommended, but it should also run on other distros)\n- C++17 compiler (e.g., g++) or higher\n- OpenSSL dev libraries\n- build-essential, smartmontools\n- Python3 with os libary \n\n_The Requirements are only for when you manualy build the Application from scratch. If you use the build script, it will automaticly check and get the Required things_\n\n\n### Clone the Repository\n\n```sh\ngit clone https://github.com/Dogwalker-kryt/Drive-Manager-Linux\ncd Drive-Manager-Linux\n```\n\n\n### Step 1: Build the Binary\n\nYou have 2 Options, the first is to run the automated script, the second is manualy build the binary you want\n\n\n#### Option 1: Automated Build (if you have python3 installed)\n\n```sh\npython3 setup.py \t\n```\n\n_Defaults: creates necessary folders, builds the binary, and prompts for installation of missing packages._\n\n\n##### Only if you want to have a command shortcut\nAfter this you can run the command_creation.py\nThis will create in `/usr/local/bin` a script that will can be called in the terminal to start the Program\n\n```\nsudo python3 command_creation.py\n```\n\n#### Option 2: Manual Compilation\n\n##### for C++ CLI\n\n``` cd ``` into the ```DriveMgr_CLI``` folder, them run:\n```sh\nmake\n```\n##### For the GUI version:\n\n``` cd ``` into the ```DriveMgr_GUI``` folder, them run or the Rust version (if you have rust compiler):\n```sh\ncargo build\n```\n###### for C++ GUI:\n\n``` cd ``` into the ```DriveMgr_GUI/C++-GTK-GUI``` folder, them run or the Rust version (if you have gtk):\n```sh\nmake\n```\n\n### Step 2: Setup the Application envroment\n\nHere you have 2 ways again, first is when you used the python script, then all nessecary enviroment setups have been done.\n\nIf you choosed to compile manualy then you need to apply folowing changes\n\n**Create DriveMgr folder:**\nCreate DriveMgr folder in the ```~/.local``` dir\n\n```sh \nmkdir -p ~/.local/share/DriveMgr\n```\n\n\n**Create bin and other folders:**\nCreate the ``` bin ``` dir in DriveMgr\n\n```sh\nmkdir -p ~/.local/share/DriveMgr/bin\nmkdir -p ~/.local/share/DriveMgr/bin/bin\nmkdir -p ~/.local/share/DriveMgr/bin/launcher\nmkdir -p ~/.local/share/DriveMgr/bin/other_src\n```\n\n\n**Create data and move files:**\nCreate the ``` data ``` dir in DriveMgr and move reqired file into it\n\n```sh\nmkdir -p ~/.local/share/DriveMgr/data\ntouch ~/.local/share/DriveMgr/data/log.dat\nmv [your location where the DriveMgr clone is right now]/Linux-Drive-Manager/config.conf ~/.local/share/DriveMgr/data\n```\n\n---\n\n## Usage\n\nThe recommended terminal hight and width are:\n- hight : 40\n- width : 120\n\nwhen not using the min recommended hight and width, this can lead to corrupted text prints\n\nStart by running the program (root required for some features):\n\n**starting raw binary**\n```sh\nsudo ./DriveMgr        \n```\n\n**with flags**\n```sh\nsudo ./DriveMgr --operation-name  \t\t\n```\n\n**through Launcher**\n```sh\nsudo dmgr\t\n```\n\nWhen started, you'll see a menu, for example:\n\n```\n ┌─────────────────────────────────────┐\n │      DRIVE MANAGEMENT UTILITY       │\n ├─────────────────────────────────────┤\n │ 1. List Drives                      │\n │ 2. Format Drive                     │\n │ 3. Encrypt/Decrypt Drive            │\n │ ...                                 │\n │ 0. Exit                             │\n └─────────────────────────────────────┘\n```\n\nNavigate by using the Arrow Key's (in main menu only) to the desired action. The tool will prompt you for additional information (drive number, confirm, etc).  \nFor dangerous actions, an extra key (e.g., generated security key) is required as a safety confirmation.\n\n---\n\n## License\n\nDistributed under the [GPL-3.0 License](./LICENSE).\n\n---\n\n## Support, Ideas, and Contribution\n\n- Found a bug or have an idea? [Open an issue](https://github.com/Dogwalker-kryt/Drive-Manager-for-Linux/issues)\n- Want to contribute? See [CONTRIBUTING.md](./CONTRIBUTING.md)\n- Like the tool? Star the repo!\n\n\n---\n\n## Known Issues\n\n- Info block sometimes not printing right\n- Drive Fingerprinting sometimes returning to main menu before it could do anything\n\n**You found an issue?**\nIf you found an issue that is presistent after restarting the Application, please report it by opening an issue with a detailed report\n\n**Disclaimer:** This tool is in active development. Features may not always be stable. Use at your own risk—always test on non-critical systems!\n\n---\n\n## Do you like the Application?\n\n**if you like the Drive Manager Utility, please leave a star**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogwalker-kryt%2Flinux-drive-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdogwalker-kryt%2Flinux-drive-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogwalker-kryt%2Flinux-drive-manager/lists"}