{"id":968,"date":"2011-05-05T19:14:37","date_gmt":"2011-05-05T13:44:37","guid":{"rendered":"http:\/\/judepereira.com\/blog\/?p=968"},"modified":"2011-05-05T19:21:46","modified_gmt":"2011-05-05T13:51:46","slug":"creating-unique-environments-chroot-snapshots-using-aufs2","status":"publish","type":"post","link":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/","title":{"rendered":"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2"},"content":{"rendered":"<p>What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch?  Big headache, too much pain, especially with RPM based distributions.<\/p>\n<p>Well don&#8217;t do that then, here&#8217;s an interesting approach. Use aufs2, a stackable filesystem. An actual filesystem with &#8220;<em>RAID-like<\/em>&#8221; support.<\/p>\n<p><a rel=\"attachment\" href=\"https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/layers.gif\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full\" title=\"chroot layers, using aufs2\" src=\"https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/layers.gif?resize=279%2C266\" alt=\"chroot layers, using aufs2\" width=\"279\" height=\"266\" \/><\/a><\/p>\n<blockquote><p>You can inherit different environmental settings from various bases, much like the concept of object oriented programming.<\/p>\n<p><em><strong>Aufs is a stackable unification filesystem such as Unionfs, which unifies several directories and provides a merged single directory.<\/strong><\/em><em>(from <a href=\"http:\/\/aufs.sourceforge.net\/\">http:\/\/aufs.sourceforge.net\/<\/a>)<\/em><\/p><\/blockquote>\n<p>Setup aufs2. You need to patch your kernel. For gentoo, you can just merge sys-fs\/aufs2 with the following flags: &#8220;fuse inotify kernel-patch kernel_linux ramfs -debug -hardened -hfs -nfs&#8221;. The patch will be automatically applied, you just need to recompile it after merging. For other distributions, take a look at the homepage of <a href=\"http:\/\/aufs.sourceforge.net\/\">aufs2<\/a>.<\/p>\n<p>Setup your chroot as you normally do. Let&#8217;s say you&#8217;ve setup centos in a chroot environment, for developing. You&#8217;ve done yum groupinsall &#8220;Development Libraries&#8221; &#8220;Development Tools&#8221;. Let&#8217;s create a snapshot here of this environment.<br \/>\n[sourcecode lang=bash]<br \/>\n# mkdir env1<br \/>\n# mount -t aufs -o br=\/home\/jude\/env1\/:\/home\/jude\/centos-dev=ro none wor<br \/>\nk-dir<br \/>\n# chroot work-dir<br \/>\n[\/sourcecode]<br \/>\n&nbsp;<br \/>\nWhat does this do? As you can see, your first centos-dev has been branched as RO, <em>read-only<\/em>. Which means, any changes now made, are transparently written into env1 directory, with the very same structuring. Say, you&#8217;ve structured env1 as you want it to be, now you need a second environment, based on the first env1, you can simple do:<br \/>\n[sourcecode lang=bash]<br \/>\n# mkdir env2<br \/>\n# mount -t aufs -o br=\/home\/jude\/env2\/:\/home\/jude\/env1\/=ro:\/home\/jude\/ce<br \/>\nntos-dev=ro none work-dir<br \/>\n# chroot work-dir<br \/>\n[\/sourcecode]<br \/>\n&nbsp;<br \/>\nNow, env1 is RO, any changes now are further written to env2, keeping the structuring of every little change intact, just as the first. If you want to suddenly use env1, don&#8217;t add env2 to the RW branch, any branch that doesn&#8217;t have anything in front of it, is assumed to be RW, <em>read-write<\/em>.<\/p>\n<p>What happens when you delete a file\/directory from a branch mounted as RO? A file called .wh.filename is created in the RW branch, indicating to the overlaying filesystem to <strong>NOT<\/strong> index that file anymore.<\/p>\n<p>In this way, you could create several different environments, each being inheriting a base, and then depending on the needs, the other environments created.<\/p>\n<p><strong><em><small>You can comment if you get any errors, I&#8217;d be glad to help you out.<\/small><\/em><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions. Well don&#8217;t do that then, here&#8217;s an interesting approach. Use aufs2, a stackable filesystem. An [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[11,10],"tags":[209,211,210,217,220,219,221,214,215,218,226,212,213,222,224,225,223,216],"class_list":["post-968","post","type-post","status-publish","format-standard","hentry","category-gen-sab-fed","category-linux","tag-aufs","tag-aufs-usage","tag-aufs2","tag-chroot","tag-chroot-dev","tag-chroot-devel","tag-chroot-developer","tag-chroot-different-env","tag-chroot-environment","tag-chroot-linux","tag-chroot-rpm-dev","tag-chroot-secure","tag-chroot-snapshot","tag-chroot-testing","tag-chroot-unstable","tag-chroot-user","tag-chroot-work","tag-config-environment"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Jude Pereira\"\/>\n\t<meta name=\"keywords\" content=\"aufs,aufs2,aufs usage,chroot secure,chroot snapshot,chroot different env,chroot environment,config environment,chroot,chroot linux,chroot devel,chroot dev,chroot developer,chroot testing,chroot work,chroot unstable,chroot user,chroot rpm dev,gentoo | sabayon | fedora,gnu linux\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"@judepereira | Fleeting Thoughts\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"creating unique environments - chroot snapshots - using aufs2 | @judepereira\" \/>\n\t\t<meta property=\"og:description\" content=\"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-05-05T13:44:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2011-05-05T13:51:46+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@judebpereira\" \/>\n\t\t<meta name=\"twitter:title\" content=\"creating unique environments - chroot snapshots - using aufs2 | @judepereira\" \/>\n\t\t<meta name=\"twitter:description\" content=\"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@judebpereira\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#article\",\"name\":\"creating unique environments - chroot snapshots - using aufs2 | @judepereira\",\"headline\":\"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2\",\"author\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/judepereira.com\\\/blog\\\/wp-content\\\/uploads\\\/layers.gif?fit=279%2C266&ssl=1\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#articleImage\",\"width\":279,\"height\":266,\"caption\":\"chroot layers, using aufs2\"},\"datePublished\":\"2011-05-05T19:14:37+05:30\",\"dateModified\":\"2011-05-05T19:21:46+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":3,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#webpage\"},\"articleSection\":\"gentoo | sabayon | fedora, gnu linux, aufs, aufs usage, aufs2, chroot, chroot dev, chroot devel, chroot developer, chroot different env, chroot environment, chroot linux, chroot rpm dev, chroot secure, chroot snapshot, chroot testing, chroot unstable, chroot user, chroot work, config environment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"gnu linux\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/linux\\\/#listItem\",\"position\":2,\"name\":\"gnu linux\",\"item\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#listItem\",\"name\":\"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#listItem\",\"position\":3,\"name\":\"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/category\\\/linux\\\/#listItem\",\"name\":\"gnu linux\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\",\"name\":\"Jude Pereira\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jude Pereira\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Jude Pereira\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g\",\"width\":96,\"height\":96,\"caption\":\"Jude Pereira\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#webpage\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/\",\"name\":\"creating unique environments - chroot snapshots - using aufs2 | @judepereira\",\"description\":\"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/creating-unique-environments-chroot-snapshots-using-aufs2\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2011-05-05T19:14:37+05:30\",\"dateModified\":\"2011-05-05T19:21:46+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/\",\"name\":\"@judepereira\",\"description\":\"Fleeting Thoughts\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/judepereira.com\\\/blog\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"creating unique environments - chroot snapshots - using aufs2 | @judepereira","description":"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.","canonical_url":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/","robots":"max-image-preview:large","keywords":"aufs,aufs2,aufs usage,chroot secure,chroot snapshot,chroot different env,chroot environment,config environment,chroot,chroot linux,chroot devel,chroot dev,chroot developer,chroot testing,chroot work,chroot unstable,chroot user,chroot rpm dev,gentoo | sabayon | fedora,gnu linux","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#article","name":"creating unique environments - chroot snapshots - using aufs2 | @judepereira","headline":"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2","author":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/judepereira.com\/blog\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/judepereira.com\/blog\/wp-content\/uploads\/layers.gif?fit=279%2C266&ssl=1","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#articleImage","width":279,"height":266,"caption":"chroot layers, using aufs2"},"datePublished":"2011-05-05T19:14:37+05:30","dateModified":"2011-05-05T19:21:46+05:30","inLanguage":"en-US","commentCount":3,"mainEntityOfPage":{"@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#webpage"},"isPartOf":{"@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#webpage"},"articleSection":"gentoo | sabayon | fedora, gnu linux, aufs, aufs usage, aufs2, chroot, chroot dev, chroot devel, chroot developer, chroot different env, chroot environment, chroot linux, chroot rpm dev, chroot secure, chroot snapshot, chroot testing, chroot unstable, chroot user, chroot work, config environment"},{"@type":"BreadcrumbList","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/judepereira.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/linux\/#listItem","name":"gnu linux"}},{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/linux\/#listItem","position":2,"name":"gnu linux","item":"https:\/\/judepereira.com\/blog\/category\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#listItem","name":"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2"},"previousItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#listItem","position":3,"name":"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2","previousItem":{"@type":"ListItem","@id":"https:\/\/judepereira.com\/blog\/category\/linux\/#listItem","name":"gnu linux"}}]},{"@type":"Person","@id":"https:\/\/judepereira.com\/blog\/#person","name":"Jude Pereira","image":{"@type":"ImageObject","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g","width":96,"height":96,"caption":"Jude Pereira"}},{"@type":"Person","@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author","url":"https:\/\/judepereira.com\/blog\/author\/admin\/","name":"Jude Pereira","image":{"@type":"ImageObject","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0a1089f1857938099c95297539cf443242d71c86831e7fa280fdb2a8ff57c360?s=96&r=g","width":96,"height":96,"caption":"Jude Pereira"}},{"@type":"WebPage","@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#webpage","url":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/","name":"creating unique environments - chroot snapshots - using aufs2 | @judepereira","description":"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/judepereira.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/#breadcrumblist"},"author":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/judepereira.com\/blog\/author\/admin\/#author"},"datePublished":"2011-05-05T19:14:37+05:30","dateModified":"2011-05-05T19:21:46+05:30"},{"@type":"WebSite","@id":"https:\/\/judepereira.com\/blog\/#website","url":"https:\/\/judepereira.com\/blog\/","name":"@judepereira","description":"Fleeting Thoughts","inLanguage":"en-US","publisher":{"@id":"https:\/\/judepereira.com\/blog\/#person"}}]},"og:locale":"en_US","og:site_name":"@judepereira | Fleeting Thoughts","og:type":"article","og:title":"creating unique environments - chroot snapshots - using aufs2 | @judepereira","og:description":"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.","og:url":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/","og:image":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png","og:image:secure_url":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png","og:image:width":512,"og:image:height":512,"article:published_time":"2011-05-05T13:44:37+00:00","article:modified_time":"2011-05-05T13:51:46+00:00","twitter:card":"summary","twitter:site":"@judebpereira","twitter:title":"creating unique environments - chroot snapshots - using aufs2 | @judepereira","twitter:description":"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch? Big headache, too much pain, especially with RPM based distributions.","twitter:creator":"@judebpereira","twitter:image":"https:\/\/judepereira.com\/blog\/wp-content\/uploads\/cropped-foo.png"},"aioseo_meta_data":{"post_id":"968","title":"creating unique environments - chroot snapshots -  using aufs2 | #site_title","description":"What if you decided that you wanted to experiment and test within a chroot(ed) environment? And then something went wrong and you had to start all over again from scratch?  Big headache, too much pain, especially with RPM based distributions.","keywords":[{"label":"aufs","value":"aufs"},{"label":"aufs2","value":"aufs2"},{"label":"aufs usage","value":"aufs usage"},{"label":"chroot secure","value":"chroot secure"},{"label":"chroot snapshot","value":"chroot snapshot"},{"label":"chroot different env","value":"chroot different env"},{"label":"chroot environment","value":"chroot environment"},{"label":"config environment","value":"config environment"},{"label":"chroot","value":"chroot"},{"label":"chroot linux","value":"chroot linux"},{"label":"chroot devel","value":"chroot devel"},{"label":"chroot dev","value":"chroot dev"},{"label":"chroot developer","value":"chroot developer"},{"label":"chroot testing","value":"chroot testing"},{"label":"chroot work","value":"chroot work"},{"label":"chroot unstable","value":"chroot unstable"},{"label":"chroot user","value":"chroot user"},{"label":"chroot rpm dev","value":"chroot rpm dev"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-25 19:04:20","updated":"2025-06-03 20:06:57","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/judepereira.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/judepereira.com\/blog\/category\/linux\/\" title=\"gnu linux\">gnu linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tcreating unique environments \u2013 chroot snapshots \u2013  using aufs2\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/judepereira.com\/blog\/"},{"label":"gnu linux","link":"https:\/\/judepereira.com\/blog\/category\/linux\/"},{"label":"creating unique environments &#8211; chroot snapshots &#8211;  using aufs2","link":"https:\/\/judepereira.com\/blog\/creating-unique-environments-chroot-snapshots-using-aufs2\/"}],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pqtyx-fC","jetpack-related-posts":[{"id":893,"url":"https:\/\/judepereira.com\/blog\/coloured-varlogmessages-at-tty12\/","url_meta":{"origin":968,"position":0},"title":"Coloured \/var\/log\/messages at tty12","author":"Jude Pereira","date":"April 26, 2011","format":false,"excerpt":"Reading logs could never become any more easier, at just a keystroke, you have your logs displayed where you want, in some fancy colour. They look great too. TTY's can be accessed by pressing Alt + Ctrl + F[1 - 12] simultaneously. In the following, you'll get a decent, colourized\u2026","rel":"","context":"In &quot;another snippet | code&quot;","block_context":{"text":"another snippet | code","link":"https:\/\/judepereira.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":694,"url":"https:\/\/judepereira.com\/blog\/visual-basic-6-revisited-linux-wine\/","url_meta":{"origin":968,"position":1},"title":"visual basic 6 revisited &#8211; linux &#8211; wine","author":"Jude Pereira","date":"August 5, 2010","format":false,"excerpt":"Earlier this year, I had written an article on running Visual Basic 6 on linux under wine, this is an update for it, the prior one is deprecated Getting Visual Basic 6 to work on linux is pretty easy, not much trouble, all the basic things work, as of what\u2026","rel":"","context":"In &quot;another snippet | code&quot;","block_context":{"text":"another snippet | code","link":"https:\/\/judepereira.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":289,"url":"https:\/\/judepereira.com\/blog\/sabayon-four-oh\/","url_meta":{"origin":968,"position":2},"title":"Sabayon fOuR oH","author":"Jude Pereira","date":"June 16, 2009","format":false,"excerpt":"Based on Gentoo, Sabayon 4.1, tells me: Great performance with less RAM(though you need like 1GB RAM for it to work well enough). Package Management System is absolutely fantastic, with it's new \"Entropy\". Totally the perfect distribution. A fine distribution for the newbie or the expert. This is what a\u2026","rel":"","context":"In &quot;gnu linux&quot;","block_context":{"text":"gnu linux","link":"https:\/\/judepereira.com\/blog\/category\/linux\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":64,"url":"https:\/\/judepereira.com\/blog\/faunos-shadow\/","url_meta":{"origin":968,"position":3},"title":"FaunOS Shadow","author":"Jude Pereira","date":"January 20, 2009","format":false,"excerpt":"It's a distribution based totally on Arch Linux... specialized for USB Portable installs and can also be used as primary OS has over 600 packages pre-installed (I know... it reminds you of Fedora and me too!). So that's to say that it comes with definitely all the packages you would\u2026","rel":"","context":"In &quot;gnu linux&quot;","block_context":{"text":"gnu linux","link":"https:\/\/judepereira.com\/blog\/category\/linux\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2157,"url":"https:\/\/judepereira.com\/blog\/building-jupiter-why-i-decided-to-build-my-own-agentic-ide\/","url_meta":{"origin":968,"position":4},"title":"Building Jupiter: Why I Decided To Build My Own Agentic IDE","author":"Jude Pereira","date":"September 28, 2026","format":false,"excerpt":"A short story about why I decided to build Jupiter, a model agnostic, secure and self hosted agentic IDE.","rel":"","context":"In &quot;Jupiter&quot;","block_context":{"text":"Jupiter","link":"https:\/\/judepereira.com\/blog\/category\/virtual-engineering\/jupiter\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2126,"url":"https:\/\/judepereira.com\/blog\/upgrading-to-debian-bookworm-on-qnap-ts-112-also-ts-11x-ts-12x\/","url_meta":{"origin":968,"position":5},"title":"Upgrading to Debian Bookworm on QNAP TS-112 (also TS-11x\/TS-12x)","author":"Jude Pereira","date":"October 16, 2024","format":false,"excerpt":"I decided to host Minio on a QNAP TS-112 device, bought from a second hand store. Here's a tale of me ditching the QNAP OS in favour of Debian Bookworm.","rel":"","context":"In &quot;gnu linux&quot;","block_context":{"text":"gnu linux","link":"https:\/\/judepereira.com\/blog\/category\/linux\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/comments?post=968"}],"version-history":[{"count":35,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/968\/revisions"}],"predecessor-version":[{"id":1004,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/posts\/968\/revisions\/1004"}],"wp:attachment":[{"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/media?parent=968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/categories?post=968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/judepereira.com\/blog\/wp-json\/wp\/v2\/tags?post=968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}