{"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:32:58","modified_gmt":"2025-04-01T08:32:58","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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/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\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png 880w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/03\/Screenshot-2025-03-31-at-16.10.54-300x96.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/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;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[42],"tags":[2122,73,854],"class_list":["post-37510","post","type-post","status-publish","format-standard","hentry","category-operating-systems","tag-btrfs","tag-linux","tag-restore"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Working with Btrfs &amp; Snapper - dbi services | 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 services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-01T08:32:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/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:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\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\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"Working with Btrfs &amp; Snapper\",\"datePublished\":\"2025-04-01T08:32:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/\"},\"wordCount\":599,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/working-with-btrfs-snapper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"keywords\":[\"Btrfs\",\"Linux\",\"Restore\"],\"articleSection\":[\"Operating System\"],\"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 services | 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\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"datePublished\":\"2025-04-01T08:32:58+00:00\",\"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\\\/2025\\\/03\\\/Screenshot-2025-03-31-at-16.10.54.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/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 services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"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\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"caption\":\"Open source Team\"},\"description\":\"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.\",\"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 services | 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 services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2025-04-01T08:32:58+00:00","og_image":[{"width":880,"height":281,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","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\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"Working with Btrfs &amp; Snapper","datePublished":"2025-04-01T08:32:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/"},"wordCount":599,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/working-with-btrfs-snapper\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","keywords":["Btrfs","Linux","Restore"],"articleSection":["Operating System"],"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 services | 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\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","datePublished":"2025-04-01T08:32:58+00:00","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\/2025\/03\/Screenshot-2025-03-31-at-16.10.54.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/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 services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","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":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","caption":"Open source Team"},"description":"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.","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":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/37510\/revisions"}],"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"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}