{"id":18443336,"url":"https://github.com/vt-alt/dm-secdel","last_synced_at":"2025-10-12T10:40:47.309Z","repository":{"id":169150960,"uuid":"134665084","full_name":"vt-alt/dm-secdel","owner":"vt-alt","description":"dm-linear with secure deletion (wipe, erase) on discard","archived":false,"fork":false,"pushed_at":"2023-02-02T04:08:31.000Z","size":78,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"sisyphus","last_synced_at":"2025-06-09T17:03:30.427Z","etag":null,"topics":["device-mapper","erase","kernel-module","sanitization","secure-delete","shred","shredder","shredding-files","wipe"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vt-alt.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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-24T05:26:43.000Z","updated_at":"2023-11-28T09:25:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"a515e872-efac-4b84-abc4-f568684aad5b","html_url":"https://github.com/vt-alt/dm-secdel","commit_stats":null,"previous_names":["vt-alt/dm-secdel"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/vt-alt/dm-secdel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-alt%2Fdm-secdel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-alt%2Fdm-secdel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-alt%2Fdm-secdel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-alt%2Fdm-secdel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vt-alt","download_url":"https://codeload.github.com/vt-alt/dm-secdel/tar.gz/refs/heads/sisyphus","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vt-alt%2Fdm-secdel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011057,"owners_count":26084865,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["device-mapper","erase","kernel-module","sanitization","secure-delete","shred","shredder","shredding-files","wipe"],"created_at":"2024-11-06T06:47:03.595Z","updated_at":"2025-10-12T10:40:47.258Z","avatar_url":"https://github.com/vt-alt.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"dm-linear like target which provides discard, but replaces it with write of\nerase pattern data to a discarded region. Thus, discarded data is securely\ndeleted (sanitized). Because of abstract nature, it could support many\nfile-systems which support discard (such as ext3, ext4, xfs, btrfs).\n\nOperation notes:\n\nCreate a mapped device with `secdelsetup` tool. Make sure file-system is\nmounted from that device and not from the underlying device. Make sure\nfile-system is mounted with `-o discard` option. Do not enable data journaling\n(such as `-o data=journal` do not enable it).  Note, that when you `rm` files\ndiscards will be sent (and, thus, erasing will performed) asynchronously, so,\nto make sure data is already erased issue `sync` or remount file-system with\n`-o sync` option before `rm`.  If you wish that filenames are wiped too, first,\nmake sure file-system is created completely without journaling (such as\n`mkfs.ext4 -O ^has_journal`, and second, delete the directory itself, so its\nblocks are discarded and erased. If you issue `fstrim` all free blocks of\nfile-system will be discarded and thus erased too (make sure that file-system\nis still mounted with `-o discard` though.)\n\nUsage:\n\n```\nsecdelsetup /dev/sda5 [/dev/mapper/secdel5]\n```\n- will map `sda5` to `secdel5`. (With default erase more which is single pass of\n(crng) random data). Alternatively:\n\n```\nsecdelsetup /dev/sda5 [/dev/mapper/secdel5] 1R0\n```\n- Will work same as above but with with three pass overwriting: first pass of 1-bits,\nsecond pass of (crng) random bits, and third pass of 0-bits.\n\nThen, file-system on `secdel5` should be mounted with `-o discard`.\n\n```\nsecdeltab --all or secdeltab --list\n```\n- show current maps.\n\n```\nsecdelsetup --save\n```\n- save current maps to `/etc/secdeltab` which will be automatically activated\nafter reboot (by `secdeltab.service` systemd unit).\n\n```\nsecdeltab --detach-all\n```\n- detach all active maps.\n\nBased on the code of `dm-linear` from Linux kernel of their respective authors.\n (C) 2018,2019 \u003cvt@altlinux.org\u003e; License GPL-2.0-only.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvt-alt%2Fdm-secdel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvt-alt%2Fdm-secdel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvt-alt%2Fdm-secdel/lists"}