{"id":21038868,"url":"https://github.com/revelaction/reusbable","last_synced_at":"2026-04-28T13:03:22.601Z","repository":{"id":198739405,"uuid":"527234552","full_name":"revelaction/reUSBable","owner":"revelaction","description":"reUSBable is a simple bash script to automate the creation of LUKS encrypted USB devices.","archived":false,"fork":false,"pushed_at":"2023-10-22T09:48:24.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-20T16:32:31.402Z","etag":null,"topics":["cryptsetup","luks","luks-encryption","luks-partition","parted","usb"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/revelaction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-21T14:43:52.000Z","updated_at":"2023-10-13T16:07:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"140234fa-562d-49aa-84c7-41ce640611d0","html_url":"https://github.com/revelaction/reUSBable","commit_stats":null,"previous_names":["revelaction/reusbable"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revelaction%2FreUSBable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revelaction%2FreUSBable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revelaction%2FreUSBable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revelaction%2FreUSBable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/revelaction","download_url":"https://codeload.github.com/revelaction/reUSBable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243482904,"owners_count":20297903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cryptsetup","luks","luks-encryption","luks-partition","parted","usb"],"created_at":"2024-11-19T13:36:43.047Z","updated_at":"2025-12-29T14:03:58.967Z","avatar_url":"https://github.com/revelaction.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg alt=\"reUSBable\" src=\"logo.png\"/\u003e\u003c/p\u003e\n\n[![GitHub Release](https://img.shields.io/github/v/release/revelaction/reUSBable?style=flat)]() \n\n`reUSBable` is a simple bash script to automate the creation of LUKS encrypted USB devices. \n\nThe devices can then be used to securely 'transport' sensitive data\nbetween two computers, erasing any trace of previous data before each use,\nmaking the USB devices **reusable**.\n\n- [Installation](#installation)\n- [usage](#usage)\n- [How does it work](#how-does-it-work)\n- [mount luks script](#mount-luks-script)\n\nhttps://user-images.githubusercontent.com/96388231/185803287-0e45bbb9-0ffe-42f2-a7ee-52a4de452443.mp4\n\n`reUSBable` was tested on linux.\n\n# Installation \n\n## Install dependencies\n\nOn debian based operating system, install (if not already present) the folowing:\n\n```console\nsudo apt install cryptsetup parted util-linux\n```\n\nOptionally for the command `shred` instead of `dd`:\n\n```console\nsudo apt install coreutils\n```\n\n## Install script\n\n```console\ncurl -LO https://raw.githubusercontent.com/revelaction/reUSBable/master/reUSBable.sh \n# make it executable\nchmod +x reUSBable.sh\n# copy it to your path\ncp reUSBable.sh ~/bin\n```\n\n# Usage\n\nRun the scrypt with `sudo`:\n\n```console\n⤷ sudo ./reUSBable.sh\n[sudo] password for revelaction:\n1) DataTraveler_3.0          /dev/sde     B0C54E757496FFB3K9F2\n2) PC404 NVMe SK hynix 128GB /dev/nvme0n1 JJAN590010307L4V\n[./reUSBable.sh] Please select the device: 1\n[./reUSBable.sh] Choosen device is 💽  /dev/sde (DataTraveler_3.0)\n[./reUSBable.sh] Choosen device has serial number 🔢  B0C54E757496FFB3K9F2\n[./reUSBable.sh] Unmounting all crypt mapper devices from device /dev/sde:\n[./reUSBable.sh] - Unmounting crypt dev mapper /dev/mapper/B0C54E757496FFB3K9F2_sde1\n[./reUSBable.sh] - Closing crypt /dev/mapper/B0C54E757496FFB3K9F2_sde1\n[./reUSBable.sh] Unmounting all partitions from device /dev/sde:\n[./reUSBable.sh] - Unmounting partition /dev/sde1\numount: /dev/sde1: not mounted.\n[./reUSBable.sh] Detected command shred for shred the device /dev/sde\n[./reUSBable.sh] Press Enter to shred device /dev/sde\n```\n    \nIf you want to avoid confirmation in each step, run the script with the flag `-q`\n\n```console\n⤷ sudo ./reUSBable.sh -q\n[sudo] password for revelaction:\n1) DataTraveler_3.0          /dev/sde     B0C54E757496FFB3K9F2\n2) PC404 NVMe SK hynix 128GB /dev/nvme0n1 JJAN590010307L4V\n[./reUSBable.sh] Please select the device: 1\n```\n\n# How does it work\n\n`reUSBable` should be run after (and before) using it for secure\ntransport of data between two computers.\n\n`reUSBable` performs the following actions in a given USB (or other data device):\n\n- It unmounts any previous partitions on the device.\n- It shreds the entire device with the command `shred` (if present) or `dd`.\n  This step can last many minutes/hours.\n- It shreds the partition table of the device with `wipefs` and `dd`.\n- It creates a new `gpt` partition table.\n- It creates one partition using 100% of the device.\n- It creates a LUKS2 partition on the previously create partition.\n- It opens the LUKS2 partition and creates a ext4 filesystem inside.\n- It mounts the filesystem in `/media/\u003cuser\u003e`\n\n# mount luks script\n\n`mount-luks.sh` is a companion script to mount and unmount the files created by `reUSBable`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevelaction%2Freusbable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevelaction%2Freusbable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevelaction%2Freusbable/lists"}