{"guid":"19097443-0868-5d9f-a563-8a9cde5e5a07","title":"Making a magic deduplicating tar using the FICLONE ioctl","subtitle":null,"slug":"all-systems-go-2023-225-making-a-magic-deduplicating-tar-using-the-ficlone-ioctl","link":"https://cfp.all-systems-go.io/all-systems-go-2023/talk/99PZDY/","description":"A walkthrough of an interesting use case for the `FICLONE` ioctl: cloning file data into a tar archive, and cloning files out of it again. \"Free\" archiving and unarchiving at zero-copy speeds!\nTopics:\n\n- Copy-on-write and the `FICLONE` ioctl\n- The ancient `tar` format\n- A trick for adding arbitrary padding to the `tar` format in order to force file system page alignment\n- How to avoid symlink attacks and other TOCTOU issues, using the fairly recently introduced (linux 5.6) `openat2` system call.\n- An interesting bug in GNU tar\n\nAt the end you'll receive a free autographed copy of [deduptar](https://git.sr.ht/~nullenenenen/deduptar/tree/master/item/README.md) to use for party tricks. 🥳","original_language":"eng","persons":["Wicher Minnaard"],"tags":["asg2023","225","2023"],"view_count":242,"promoted":false,"date":"2023-09-13T17:00:00.000+02:00","release_date":"2023-09-14T00:00:00.000+02:00","updated_at":"2026-02-15T09:45:08.787+01:00","length":1459,"duration":1459,"thumb_url":"https://static.media.ccc.de/media/events/all_systems_go/2023/225-19097443-0868-5d9f-a563-8a9cde5e5a07.jpg","poster_url":"https://static.media.ccc.de/media/events/all_systems_go/2023/225-19097443-0868-5d9f-a563-8a9cde5e5a07_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/all_systems_go/2023/225-19097443-0868-5d9f-a563-8a9cde5e5a07.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/all_systems_go/2023/225-19097443-0868-5d9f-a563-8a9cde5e5a07.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/all-systems-go-2023-225-making-a-magic-deduplicating-tar-using-the-ficlone-ioctl","url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_title":"All Systems Go! 2023","conference_url":"https://api.media.ccc.de/public/conferences/asg2023","related":[],"recordings":[{"size":53,"length":1459,"mime_type":"video/webm","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-09-14T14:49:34.263+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/webm-sd/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/70422","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"},{"size":118,"length":1459,"mime_type":"video/webm","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-09-14T14:21:04.089+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/webm-hd/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/70414","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"},{"size":40,"length":1459,"mime_type":"video/mp4","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2023-09-14T02:16:08.952+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/h264-sd/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_sd.mp4","url":"https://api.media.ccc.de/public/recordings/70329","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"},{"size":13,"length":1459,"mime_type":"audio/opus","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2023-09-14T01:55:34.068+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/opus/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_opus.opus","url":"https://api.media.ccc.de/public/recordings/70310","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"},{"size":22,"length":1459,"mime_type":"audio/mpeg","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2023-09-14T01:54:33.968+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/mp3/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/70309","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"},{"size":98,"length":1459,"mime_type":"video/mp4","language":"eng","filename":"asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2023-09-14T01:29:29.870+02:00","recording_url":"https://cdn.media.ccc.de/events/all_systems_go/2023/h264-hd/asg2023-225-eng-Making_a_magic_deduplicating_tar_using_the_FICLONE_ioctl_hd.mp4","url":"https://api.media.ccc.de/public/recordings/70273","event_url":"https://api.media.ccc.de/public/events/19097443-0868-5d9f-a563-8a9cde5e5a07","conference_url":"https://api.media.ccc.de/public/conferences/asg2023"}]}