{"id":18451152,"url":"https://github.com/danluu/fs-errors","last_synced_at":"2025-04-08T02:32:11.145Z","repository":{"id":89702418,"uuid":"105590737","full_name":"danluu/fs-errors","owner":"danluu","description":"Reproducing resuts from old papers on modern filesystems","archived":false,"fork":false,"pushed_at":"2017-10-26T02:59:59.000Z","size":151,"stargazers_count":22,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T19:53:06.418Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://danluu.com/filesystem-errors/","language":"Python","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/danluu.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":"2017-10-02T22:15:55.000Z","updated_at":"2023-11-22T04:07:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"92980133-f898-46e6-85c2-14e1f6051ccb","html_url":"https://github.com/danluu/fs-errors","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danluu%2Ffs-errors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danluu%2Ffs-errors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danluu%2Ffs-errors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danluu%2Ffs-errors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danluu","download_url":"https://codeload.github.com/danluu/fs-errors/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247764737,"owners_count":20992162,"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":[],"created_at":"2024-11-06T07:27:43.243Z","updated_at":"2025-04-08T02:32:11.138Z","avatar_url":"https://github.com/danluu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fs-errors\n\nThis repo contains tooling for injecting errors into filesystems using device-mapper.\n\nTo run:\n~~~\nmake all\nsudo python3 main.py\n~~~\n\n## Making files\n\n~~~\ndd if=/dev/zero of=filesystem.img bs=1M count=1\nmkfs.\u003cfilesystem_name\u003e filesystem.img\n~~~\n\n## Installation\n\n~~~\nsudo apt install dmsetup\n~~~\n\nRequires btrfs and exfat drivers to be installed.\n\n## Notes to self\n\nProcedure to get error offset:\n\nEach filesystem contains `test.txt`. `test.txt` contains Lorem ipsum text (see images/text.txt).\n\nIn the case of the -largefile images, `test.txt` contains the letters of the alphabet repeated enough to make 8K of text. See `images/large_test.txt`.\n\nTo find the error offset for a new filesystem, you can open the file up in a hex editor, find the byte offset, and divide the byte offset by 512.\n\nThis error injection mechanism seems similar or possibly equivalent to the mechanism used in the IRON file systems paper.\n\nmd5sum correctly returns an error code of 1 if the file is corrupt in btrfs (and prints md5sum: /mnt/test/test.txt: Input/output error).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanluu%2Ffs-errors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanluu%2Ffs-errors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanluu%2Ffs-errors/lists"}