{"id":37510,"date":"2025-04-01T10:32:58","date_gmt":"2025-04-01T08:32:58","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=37510"},"modified":"2025-04-01T10:44:20","modified_gmt":"2025-04-01T08:44:20","slug":"working-with-btrfs-snapper","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/","title":{"rendered":"Working with Btrfs &amp; Snapper"},"content":{"rendered":"\n<p>In this Blog post I will try to give a pure technical cheat sheet using Btrfs on any distribution. Additionally I will explain how to use one of the most sophisticated backup\/ restore tool called &#8220;snapper&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-btrfs-and-how-to-set-it-up-if-not-already-installed\">What is Btrfs and how to set it up if not already installed?<\/h2>\n\n\n\n<p>Btrfs (aka Butter FS or aka B-Tree FS) is like xfs and ext4 a filesystem which offers any linux user many features to maintain or manage their filesystem. Usually Btrfs is used stand-alone but it works with LVM2 too, without any additional configuration.<\/p>\n\n\n\n<p>Key Features of Btrfs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Copy-on-Write (CoW):<\/strong> Btrfs uses CoW, meaning it creates new copies of data instead of overwriting existing files.<\/li>\n\n\n\n<li><strong>Snapshots: <\/strong>You can create instant, space-efficient snapshots of your filesystem or specific directories, like with Snapper on SUSE. These are perfect for backups, rollbacks, or tracking changes (e.g., before\/after updates).<\/li>\n\n\n\n<li><strong>Self-Healing:<\/strong> Btrfs supports data integrity with checksums and can detect and repair errors, especially with RAID configurations.<\/li>\n\n\n\n<li><strong>Flexible Storage:<\/strong> It handles multiple devices, RAID (0, 1, 5, 6, 10), and dynamic resizing, making it adaptable for growing storage needs.<\/li>\n\n\n\n<li><strong>Compression:<\/strong> Btrfs can compress files on the fly (e.g., using Zstandard or LZO), saving space without sacrificing performance.<\/li>\n\n\n\n<li><strong>Subvolumes: <\/strong>Btrfs lets you create logical partitions (subvolumes) within the same filesystem, enabling fine-grained control. It is like having separate root, home, or snapshot subvolumes.<\/li>\n<\/ul>\n\n\n\n<p>Usually Btrfs is used by default in any SuSE Linux Server (and OpenSuSE) and can be used in RHEL &amp; OL and other distribution. To use Btrfs on any RPM based distribution just install the package &#8220;btrfs-progs&#8221;. With Debian and Ubuntu this is a bit more tricky, which is why we will keep this blog about RPM-based distributions only.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-new-filesystem-and-increase-it-with-btrfs\">Create new filesystem and increase it with Btrfs<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Wipe any old filesystem on \/dev\/sdb (careful\u2014data\u2019s toast!)\nwipefs -a \/dev\/vdb\n\n# Create a Btrfs filesystem on \/dev\/sdb\nmkfs.btrfs \/dev\/vdb\n\n# Make a mount point\nmkdir \/mnt\/btrfs\n\n# Mount it\u2014basic setup, no fancy options yet\nmount \/dev\/vdb \/mnt\/btrfs\n\n# Check it\u2019s there and Btrfs\ndf -h \/mnt\/btrfs\n\n# Add to \/etc\/fstab for permanence (use your device UUID from blkid)\n\/dev\/vdb  \/mnt\/btrfs  btrfs  defaults  0  2\n\n# Test fstab\nmount -a\n\n# List all Btrfs Filesystems\nbtrfs filesystem show\n\n# Add additional storage to existing Btrfs filesystem (in our case \/)\nbtrfs add device \/dev\/vdd \/\n\n# In some cases it is smart to balance the storage between all the devices\nbtrfs balance start \/\n\n#&nbsp;If the space allows it you can remove devices from a Btrfs filesystem\nbtrfs device delete \/dev\/vdd \/<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-restore-btrfs-filesystem-to-a-specific-point\">Restore Btrfs filesystem to a specific point<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># List all snapshots for the root config\nsnapper -c root list\n\n# Pick a snapshot and check its diff (example with 5 &amp; 6)\nsnapper -c root diff 5..6\n\n# Roll back to snapshot 5 (dry run first)\nsnapper -c root rollback 5 --print-number\n\n# Do it for real\u2014reboots to snapshot 5\nsnapper -c root rollback 5\nreboot\n\n# Verify after reboot\u2014root\u2019s now at snapshot 5\nsnapper -c root list<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-btrfs-subvolume-explained-and-used\">Btrfs Subvolume explained and used<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Mount the Btrfs root filesystem (not a subvolume yet)\nmount \/dev\/vdb \/mnt\/butter\n\n# Create a subvolume called \u2018data\u2019 (only possible inside a existing Btrfs volume)\nbtrfs subvolume create \/mnt\/butter\/data\n\n# List subvolumes\nbtrfs subvolume list \/mnt\/butter\n\n# Make a mount point for the subvolume\nmkdir \/mnt\/data\n\n# Mount the subvolume explicitly\nmount -o subvol=data \/dev\/vdb \/mnt\/data\n\n# Check it\u2019s mounted as a subvolume\ndf -h \/mnt\/data\n\n# Create a new subvolume by creating a snapshot inside the btrfs volume\nbtrfs subvolume snapshot \/mnt\/data \/mnt\/butter\/data-snap1\n\n# Delete the snapshot which is a subvolume\nbtrfs subvolume delete \/mnt\/data-snap1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuring-snapper-for-automatic-snapshots\">Configuring Snapper for automatic snapshots<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Install Snapper if it\u2019s not there\nzypper install snapper\n\n# Create a snapper config of filesystem\nsnapper -c &lt;ConfigName&gt; create-config &lt;btrfs-mountpoint&gt;\n\n# Enable timeline snapshots (if not enabled by default)\necho \"TIMELINE_CREATE=\\\"yes\\\"\" &gt;&gt; \/etc\/snapper\/configs\/root\n\n# Set snapshot limits (e.g., keep 10 hourly)\nsed -i 's\/TIMELINE_LIMIT_HOURLY=.*\/TIMELINE_LIMIT_HOURLY=\"10\"\/' \/etc\/snapper\/configs\/root\n\n# Start the Snapper timer (if not enabled by default)\nsystemctl enable snapper-timeline.timer\nsystemctl start snapper-timeline.timer\n\n# Trigger a manual snapshot to test\nsnapper -c &lt;ConfigName&gt; create -d \"Manual test snapshot\"\n\n# List snapshots to confirm\nsnapper -c &lt;ConfigName&gt; list<\/code><\/pre>\n\n\n\n<p>Here is a small overview of the most important settings to use within a snapper config file:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SPACE_LIMIT=&#8221;0.5&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Sets the maximum fraction of the filesystem\u2019s space that snapshots can occupy. 0.5 = 50%<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>FREE_LIMIT=&#8221;0.2&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Ensures a minimum fraction of the filesystem stays free. 0.2= 20%<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ALLOW_USERS=&#8221;admin dbi&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Lists users allowed to manage this Snapper config.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ALLOW_GROUPS=&#8221;admins&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>A list of Groups that are allowed to manage this config.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>SYNC_ACL=&#8221;no&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Syncs permissions from ALLOW_USERS and ALLOW_GROUPS to the .snapshots directory. If yes, Snapper updates the access control lists on \/.snapshots to match ALLOW_USERS\/ALLOW_GROUPS. With no, it skips this, and you manage permissions manually.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NUMBER_CLEANUP=&#8221;yes&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>When yes, Snapper deletes old numbered snapshots (manual and\/ or automated ones) when they exceed NUMBER_LIMIT or age past NUMBER_MIN_AGE.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NUMBER_MIN_AGE=&#8221;1800&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Minimum age (in seconds) before a numbered snapshot can be deleted.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NUMBER_LIMIT=&#8221;50&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Maximum number of numbered snapshots to keep.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NUMBER_LIMIT_IMPORTANT=&#8221;10&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Maximum number of numbered snapshots marked as &#8220;important&#8221; to keep.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>TIMELINE_CREATE=&#8221;yes&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Enables automatic timeline snapshots.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>TIMELINE_CLEANUP=&#8221;yes&#8221;<\/strong>\n<ul class=\"wp-block-list\">\n<li>Enables cleanup of timeline snapshots based on limits.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>TIMELINE_LIMIT_*=&#8221;10&#8243;<\/strong>\n<ul class=\"wp-block-list\">\n<li>TIMELINE_LIMIT_HOURLY=&#8221;10&#8243;<\/li>\n\n\n\n<li>TIMELINE_LIMIT_DAILY=&#8221;10&#8243;<\/li>\n\n\n\n<li>TIMELINE_LIMIT_WEEKLY=&#8221;0&#8243; (disabled)<\/li>\n\n\n\n<li>TIMELINE_LIMIT_MONTHLY=&#8221;10&#8243;<\/li>\n\n\n\n<li>TIMELINE_LIMIT_YEARLY=&#8221;10&#8243;\n<ul class=\"wp-block-list\">\n<li>Controls how many snapshots Snapper retains over time. Keeps 10 hourly, 10 daily, 10 monthly, and 10 yearly, but skips weekly 0.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>For further information about the settings, check out the SUSE <a href=\"https:\/\/en.opensuse.org\/openSUSE:Snapper_Tutorial\">documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-btrfs-raid-and-multi-device-management\">Btrfs RAID and Multi-Device management<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Format two disks (\/dev\/vdb, \/dev\/vdc) as Btrfs RAID1\nmkfs.btrfs -d raid1 -m raid1 \/dev\/vdb \/dev\/vdc\n\n# Mount it\nmount \/dev\/vdb \/mnt\/btrfs-raid\n\n# Check RAID status\nbtrfs filesystem show \/mnt\/btrfs-raid\n\n# Add a third disk (\/dev\/sdd) to the array\nbtrfs device add \/dev\/sdd \/mnt\/btrfs-raid\n\n# Rebalance to RAID1 across all three (dconvert is data raid and mconvert is metadata raid definition)\nbtrfs balance start -dconvert=raid1 -mconvert=raid1 \/mnt\/btrfs-raid\n\n# Check device stats for errors\nbtrfs device stats \/mnt\/btrfs-raid\n\n# Remove a disk if needed\nbtrfs device delete \/dev\/vdc \/mnt\/btrfs-raid<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-troubleshooting-amp-using-btrfs-and-snapper\">Troubleshooting &amp; using Btrfs and Snapper<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Check disk usage?\nbtrfs filesystem df \/mnt\/btrfs\n\n# Full filesystem and need more storage? Add an additional empty storage device to the Btrfs volume:\nbtrfs add device \/dev\/vde \/mnt\/btrfs\n\n# If the storage devices has grown (via LVM or virtually) one can resize the size to max:\nbtrfs filesystem resize max \/mnt\/btrfs\n\n# Balance to free space if it\u2019s tight (dusage defines from what % the rebalance should start. In our case only 50% or less data per block will trigger the re-balance)\nbtrfs balance start -dusage=50 \/mnt\/btrfs\n\n# Too many snapshots? List them\nsnapper -c root list | wc -l\n\n# Delete old snapshots (e.g., #10)\nsnapper -c root delete 10\n\n# Check filesystem for corruption\nbtrfs check \/dev\/vdb\n\n# Repair if it\u2019s borked (careful\u2014backup first!)\nbtrfs check --repair \/dev\/vdb\n\n# Rollback stuck? Force it\nsnapper -c root rollback 5 --force\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-hint\">Hint<\/h2>\n\n\n\n<p>Something that needs to be pointed out is that the snapper list is sorted from the oldest (starting at point 1) to the newest. BUT: At the top there is always the current state of the filesystem with the number 0.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"281\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png\" alt=\"\" class=\"wp-image-37827\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png 880w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54-300x96.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54-768x245.png 768w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>In this Blog post I will try to give a pure technical cheat sheet using Btrfs on any distribution. Additionally I will explain how to use one of the most sophisticated backup\/ restore tool called &#8220;snapper&#8221;. What is Btrfs and how to set it up if not already installed? Btrfs (aka Butter FS or aka [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[2122,73,854,3587],"type_dbi":[3588,3589],"class_list":["post-37510","post","type-post","status-publish","format-standard","hentry","category-operating-systems","tag-btrfs","tag-linux","tag-restore","tag-snapper","type-linux","type-operatingsystem"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Working with Btrfs &amp; Snapper - dbi Blog<\/title>\n<meta name=\"description\" content=\"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Working with Btrfs &amp; Snapper\" \/>\n<meta property=\"og:description\" content=\"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-01T08:32:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-01T08:44:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png\" \/>\n\t<meta property=\"og:image:width\" content=\"880\" \/>\n\t<meta property=\"og:image:height\" content=\"281\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"Working with Btrfs &amp; Snapper\",\"datePublished\":\"2025-04-01T08:32:58+00:00\",\"dateModified\":\"2025-04-01T08:44:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\"},\"wordCount\":599,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"keywords\":[\"Btrfs\",\"Linux\",\"Restore\",\"Snapper\"],\"articleSection\":[\"Operating systems\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\",\"name\":\"Working with Btrfs &amp; Snapper - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"datePublished\":\"2025-04-01T08:32:58+00:00\",\"dateModified\":\"2025-04-01T08:44:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"description\":\"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"width\":880,\"height\":281},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working with Btrfs &amp; Snapper\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Working with Btrfs &amp; Snapper - dbi Blog","description":"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/","og_locale":"en_US","og_type":"article","og_title":"Working with Btrfs &amp; Snapper","og_description":"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.","og_url":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/","og_site_name":"dbi Blog","article_published_time":"2025-04-01T08:32:58+00:00","article_modified_time":"2025-04-01T08:44:20+00:00","og_image":[{"width":880,"height":281,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"Working with Btrfs &amp; Snapper","datePublished":"2025-04-01T08:32:58+00:00","dateModified":"2025-04-01T08:44:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/"},"wordCount":599,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","keywords":["Btrfs","Linux","Restore","Snapper"],"articleSection":["Operating systems"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/","url":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/","name":"Working with Btrfs &amp; Snapper - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","datePublished":"2025-04-01T08:32:58+00:00","dateModified":"2025-04-01T08:44:20+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"description":"Btrfs cheatsheet with the most-used commands and settings. Perfect for managing snapshots, resizing filesystems, and optimizing your Linux storage.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","width":880,"height":281},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Working with Btrfs &amp; Snapper"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/37510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=37510"}],"version-history":[{"count":4,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/37510\/revisions"}],"predecessor-version":[{"id":37853,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/37510\/revisions\/37853"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=37510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=37510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=37510"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=37510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}