{"id":32624,"date":"2024-04-17T11:32:46","date_gmt":"2024-04-17T09:32:46","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=32624"},"modified":"2024-04-17T11:32:46","modified_gmt":"2024-04-17T09:32:46","slug":"another-file-system-for-linux-bcachefs-1-basics","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/","title":{"rendered":"Another file system for Linux: bcachefs (1) &#8211; basics"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When <a href=\"https:\/\/kernel.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Linux 6.7<\/a> (already end of life) was released some time ago another file system made it into the kernel: <a href=\"https:\/\/bcachefs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">bcachefs<\/a>. This is another <a href=\"https:\/\/en.wikipedia.org\/wiki\/Copy-on-write\" target=\"_blank\" rel=\"noreferrer noopener\">copy on write<\/a> file system like <a href=\"https:\/\/en.wikipedia.org\/wiki\/ZFS\" target=\"_blank\" rel=\"noreferrer noopener\">ZFS<\/a> or <a href=\"https:\/\/en.wikipedia.org\/wiki\/Btrfs\" target=\"_blank\" rel=\"noreferrer noopener\">Btrfs<\/a>. The goal of this post is not to compare those in regards to features and performance, but just to give you the necessary bits to get started with it. If you want to try this out for yourself, you obviously need at least version 6.7 of the Linux kernel. You can either build it yourself or you can use the distribution of your choice which ships at least with kernel 6.7 as an option. I&#8217;ll be using <a href=\"https:\/\/get.opensuse.org\/tumbleweed\/?type=server#download\" target=\"_blank\" rel=\"noreferrer noopener\">openSUSE Tumbleweed<\/a> as this is a rolling release and new kernel versions make it into the distribution quite fast after they&#8217;ve been released.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you install Tumbleweed as of today, you&#8217;ll get a 6.8 kernel which is fine if you want to play around with bcachefs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ uname -a\nLinux tumbleweed 6.8.5-1-default #1 SMP PREEMPT_DYNAMIC Thu Apr 11 04:31:19 UTC 2024 (542f698) x86_64 x86_64 x86_64 GNU\/Linux\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s start very simple: Once device, on file system. Usually you create a new file system with the <a href=\"https:\/\/linux.die.net\/man\/8\/mkfs\">mkfs<\/a> command, but you&#8217;ll quickly notice that there is nothing for bcachefs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ mkfs.&#x5B;TAB]&#x5B;TAB]\nmkfs.bfs     mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.fat     mkfs.minix   mkfs.msdos   mkfs.ntfs    mkfs.vfat    \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">By default there is also no command which starts with &#8220;bca&#8221;:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\ntumbleweed:~ # bca&#x5B;TAB]&#x5B;TAB]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The utilities you need to get started need to be installed on Tumbleweed:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,9]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ zypper se bcachefs\nLoading repository data...\nReading installed packages...\n\nS | Name           | Summary                              | Type\n--+----------------+--------------------------------------+--------\n  | bcachefs-tools | Configuration utilities for bcachefs | package\n\ntumbleweed:~ $ zypper in -y bcachefs-tools\nLoading repository data...\nReading installed packages...\nResolving package dependencies...\n\nThe following 2 NEW packages are going to be installed:\n  bcachefs-tools libsodium23\n\n2 new packages to install.\nOverall download size: 1.4 MiB. Already cached: 0 B. After the operation, additional 3.6 MiB will be used.\n\nBackend:  classic_rpmtrans\nContinue? &#x5B;y\/n\/v\/...? shows all options] (y): y\nRetrieving: libsodium23-1.0.18-2.16.x86_64 (Main Repository (OSS))                                                                                        (1\/2), 169.7 KiB    \nRetrieving: libsodium23-1.0.18-2.16.x86_64.rpm ...........................................................................................................&#x5B;done (173.6 KiB\/s)]\nRetrieving: bcachefs-tools-1.6.4-1.2.x86_64 (Main Repository (OSS))                                                                                       (2\/2),   1.2 MiB    \nRetrieving: bcachefs-tools-1.6.4-1.2.x86_64.rpm ............................................................................................................&#x5B;done (5.4 MiB\/s)]\n\nChecking for file conflicts: ...........................................................................................................................................&#x5B;done]\n(1\/2) Installing: libsodium23-1.0.18-2.16.x86_64 .......................................................................................................................&#x5B;done]\n(2\/2) Installing: bcachefs-tools-1.6.4-1.2.x86_64 ......................................................................................................................&#x5B;done]\nRunning post-transaction scripts .......................................................................................................................................&#x5B;done]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">This will give you &#8220;mkfs.bcachefs&#8221; and all the other utilities you&#8217;ll need to play with it. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve prepared six small devices I can play with:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,17,18,19,20,21,22]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ lsblk\nNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS\nsr0     11:0    1  276M  0 rom  \nvda    254:0    0   20G  0 disk \n\u251c\u2500vda1 254:1    0    8M  0 part \n\u251c\u2500vda2 254:2    0 18.6G  0 part \/var\n\u2502                               \/srv\n\u2502                               \/usr\/local\n\u2502                               \/opt\n\u2502                               \/root\n\u2502                               \/home\n\u2502                               \/boot\/grub2\/x86_64-efi\n\u2502                               \/boot\/grub2\/i386-pc\n\u2502                               \/.snapshots\n\u2502                               \/\n\u2514\u2500vda3 254:3    0  1.4G  0 part &#x5B;SWAP]\nvdb    254:16   0    4G  0 disk \nvdc    254:32   0    4G  0 disk \nvdd    254:48   0    4G  0 disk \nvde    254:64   0    4G  0 disk \nvdf    254:80   0    4G  0 disk \nvdg    254:96   0    4G  0 disk \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In the most simple form (one device, one file system) you might start like this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs format \/dev\/vdb\nExternal UUID:                              127933ff-575b-484f-9eab-d0bf5dbf52b2\nInternal UUID:                              fbf59149-3dc4-4871-bfb5-8fb910d0529f\nMagic number:                               c68573f6-66ce-90a9-d96a-60cf803df7ef\nDevice index:                               0\nLabel:                                      \nVersion:                                    1.6: btree_subvolume_children\nVersion upgrade complete:                   0.0: (unknown version)\nOldest version on disk:                     1.6: btree_subvolume_children\nCreated:                                    Wed Apr 17 10:39:58 2024\nSequence number:                            0\nTime of last write:                         Thu Jan  1 01:00:00 1970\nSuperblock size:                            960 B\/1.00 MiB\nClean:                                      0\nDevices:                                    1\nSections:                                   members_v1,members_v2\nFeatures:                                   new_siphash,new_extent_overwrite,btree_ptr_v2,extents_above_btree_updates,btree_updates_journalled,new_varint,journal_no_flush,alloc_v2,extents_across_btree_nodes\nCompat features:                            \n\nOptions:\n  block_size:                               512 B\n  btree_node_size:                          256 KiB\n  errors:                                   continue &#x5B;ro] panic \n  metadata_replicas:                        1\n  data_replicas:                            1\n  metadata_replicas_required:               1\n  data_replicas_required:                   1\n  encoded_extent_max:                       64.0 KiB\n  metadata_checksum:                        none &#x5B;crc32c] crc64 xxhash \n  data_checksum:                            none &#x5B;crc32c] crc64 xxhash \n  compression:                              none\n  background_compression:                   none\n  str_hash:                                 crc32c crc64 &#x5B;siphash] \n  metadata_target:                          none\n  foreground_target:                        none\n  background_target:                        none\n  promote_target:                           none\n  erasure_code:                             0\n  inodes_32bit:                             1\n  shard_inode_numbers:                      1\n  inodes_use_key_cache:                     1\n  gc_reserve_percent:                       8\n  gc_reserve_bytes:                         0 B\n  root_reserve_percent:                     0\n  wide_macs:                                0\n  acl:                                      1\n  usrquota:                                 0\n  grpquota:                                 0\n  prjquota:                                 0\n  journal_flush_delay:                      1000\n  journal_flush_disabled:                   0\n  journal_reclaim_delay:                    100\n  journal_transaction_names:                1\n  version_upgrade:                          &#x5B;compatible] incompatible none \n  nocow:                                    0\n\nmembers_v2 (size 144):\nDevice:                                     0\n  Label:                                    (none)\n  UUID:                                     bb28c803-621a-4007-af13-a9218808de8f\n  Size:                                     4.00 GiB\n  read errors:                              0\n  write errors:                             0\n  checksum errors:                          0\n  seqread iops:                             0\n  seqwrite iops:                            0\n  randread iops:                            0\n  randwrite iops:                           0\n  Bucket size:                              256 KiB\n  First bucket:                             0\n  Buckets:                                  16384\n  Last mount:                               (never)\n  Last superblock write:                    0\n  State:                                    rw\n  Data allowed:                             journal,btree,user\n  Has data:                                 (none)\n  Durability:                               1\n  Discard:                                  0\n  Freespace initialized:                    0\nmounting version 1.6: btree_subvolume_children\ninitializing new filesystem\ngoing read-write\ninitializing freespace\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">This is already ready to mount and we have our first bcachfs file system:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2,3]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ mkdir \/mnt\/dummy\ntumbleweed:~ $ mount \/dev\/vdb \/mnt\/dummy\ntumbleweed:~ $ df -h | grep dummy\n\/dev\/vdb        3.7G  2.0M  3.6G   1% \/mnt\/dummy\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">If you need encryption, this is supported as well and obviously is asking you for a passphrase when you format the device:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ umount \/mnt\/dummy\ntumbleweed:~ $ bcachefs format --encrypted --force \/dev\/vdb\nEnter passphrase: \nEnter same passphrase again: \n\/dev\/vdb contains a bcachefs filesystem\nExternal UUID:                              aa0a4742-46ed-4228-a590-62b8e2de7633\nInternal UUID:                              800b2306-3900-47fb-9a42-2f7e75baec99\nMagic number:                               c68573f6-66ce-90a9-d96a-60cf803df7ef\nDevice index:                               0\nLabel:                                      \nVersion:                                    1.4: member_seq\nVersion upgrade complete:                   0.0: (unknown version)\nOldest version on disk:                     1.4: member_seq\nCreated:                                    Wed Apr 17 10:46:06 2024\nSequence number:                            0\nTime of last write:                         Thu Jan  1 01:00:00 1970\nSuperblock size:                            1.00 KiB\/1.00 MiB\nClean:                                      0\nDevices:                                    1\nSections:                                   members_v1,crypt,members_v2\nFeatures:                                   \nCompat features:                            \n\nOptions:\n  block_size:                               512 B\n  btree_node_size:                          256 KiB\n  errors:                                   continue &#x5B;ro] panic \n  metadata_replicas:                        1\n  data_replicas:                            1\n  metadata_replicas_required:               1\n  data_replicas_required:                   1\n  encoded_extent_max:                       64.0 KiB\n  metadata_checksum:                        none &#x5B;crc32c] crc64 xxhash \n  data_checksum:                            none &#x5B;crc32c] crc64 xxhash \n  compression:                              none\n  background_compression:                   none\n  str_hash:                                 crc32c crc64 &#x5B;siphash] \n  metadata_target:                          none\n  foreground_target:                        none\n  background_target:                        none\n  promote_target:                           none\n  erasure_code:                             0\n  inodes_32bit:                             1\n  shard_inode_numbers:                      1\n  inodes_use_key_cache:                     1\n  gc_reserve_percent:                       8\n  gc_reserve_bytes:                         0 B\n  root_reserve_percent:                     0\n  wide_macs:                                0\n  acl:                                      1\n  usrquota:                                 0\n  grpquota:                                 0\n  prjquota:                                 0\n  journal_flush_delay:                      1000\n  journal_flush_disabled:                   0\n  journal_reclaim_delay:                    100\n  journal_transaction_names:                1\n  version_upgrade:                          &#x5B;compatible] incompatible none \n  nocow:                                    0\n\nmembers_v2 (size 144):\nDevice:                                     0\n  Label:                                    (none)\n  UUID:                                     60de61d2-391b-4605-b0da-5f593b7c703f\n  Size:                                     4.00 GiB\n  read errors:                              0\n  write errors:                             0\n  checksum errors:                          0\n  seqread iops:                             0\n  seqwrite iops:                            0\n  randread iops:                            0\n  randwrite iops:                           0\n  Bucket size:                              256 KiB\n  First bucket:                             0\n  Buckets:                                  16384\n  Last mount:                               (never)\n  Last superblock write:                    0\n  State:                                    rw\n  Data allowed:                             journal,btree,user\n  Has data:                                 (none)\n  Durability:                               1\n  Discard:                                  0\n  Freespace initialized:                    0\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">To mount this you&#8217;ll need to specify the passphrase given above or it will fail:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,4,6,8]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ mount \/dev\/vdb \/mnt\/dummy\/\nEnter passphrase: \nERROR - bcachefs::commands::cmd_mount: Fatal error: failed to verify the password\ntumbleweed:~ $ mount \/dev\/vdb \/mnt\/dummy\/\nEnter passphrase: \ntumbleweed:~ $ df -h | grep dummy\n\/dev\/vdb        3.7G  2.0M  3.6G   1% \/mnt\/dummy\ntumbleweed:~ $ umount \/mnt\/dummy\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Beside encryption you may also use compression (supported are gzip, lz4 and zstd), e.g.:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,81,82]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs format --compression=lz4 --force \/dev\/vdb\n\/dev\/vdb contains a bcachefs filesystem\nExternal UUID:                              1ebcfe14-7d6a-43b1-8d48-47bcef0e7021\nInternal UUID:                              5117240c-95f1-4c2a-bed4-afb4c4fbb83c\nMagic number:                               c68573f6-66ce-90a9-d96a-60cf803df7ef\nDevice index:                               0\nLabel:                                      \nVersion:                                    1.4: member_seq\nVersion upgrade complete:                   0.0: (unknown version)\nOldest version on disk:                     1.4: member_seq\nCreated:                                    Wed Apr 17 10:54:02 2024\nSequence number:                            0\nTime of last write:                         Thu Jan  1 01:00:00 1970\nSuperblock size:                            960 B\/1.00 MiB\nClean:                                      0\nDevices:                                    1\nSections:                                   members_v1,members_v2\nFeatures:                                   \nCompat features:                            \n\nOptions:\n  block_size:                               512 B\n  btree_node_size:                          256 KiB\n  errors:                                   continue &#x5B;ro] panic \n  metadata_replicas:                        1\n  data_replicas:                            1\n  metadata_replicas_required:               1\n  data_replicas_required:                   1\n  encoded_extent_max:                       64.0 KiB\n  metadata_checksum:                        none &#x5B;crc32c] crc64 xxhash \n  data_checksum:                            none &#x5B;crc32c] crc64 xxhash \n  compression:                              lz4\n  background_compression:                   none\n  str_hash:                                 crc32c crc64 &#x5B;siphash] \n  metadata_target:                          none\n  foreground_target:                        none\n  background_target:                        none\n  promote_target:                           none\n  erasure_code:                             0\n  inodes_32bit:                             1\n  shard_inode_numbers:                      1\n  inodes_use_key_cache:                     1\n  gc_reserve_percent:                       8\n  gc_reserve_bytes:                         0 B\n  root_reserve_percent:                     0\n  wide_macs:                                0\n  acl:                                      1\n  usrquota:                                 0\n  grpquota:                                 0\n  prjquota:                                 0\n  journal_flush_delay:                      1000\n  journal_flush_disabled:                   0\n  journal_reclaim_delay:                    100\n  journal_transaction_names:                1\n  version_upgrade:                          &#x5B;compatible] incompatible none \n  nocow:                                    0\n\nmembers_v2 (size 144):\nDevice:                                     0\n  Label:                                    (none)\n  UUID:                                     3bae44f0-3cd4-4418-8556-4342e74c22d1\n  Size:                                     4.00 GiB\n  read errors:                              0\n  write errors:                             0\n  checksum errors:                          0\n  seqread iops:                             0\n  seqwrite iops:                            0\n  randread iops:                            0\n  randwrite iops:                           0\n  Bucket size:                              256 KiB\n  First bucket:                             0\n  Buckets:                                  16384\n  Last mount:                               (never)\n  Last superblock write:                    0\n  State:                                    rw\n  Data allowed:                             journal,btree,user\n  Has data:                                 (none)\n  Durability:                               1\n  Discard:                                  0\n  Freespace initialized:                    0\ntumbleweed:~ $ mount \/dev\/vdb \/mnt\/dummy\/\ntumbleweed:~ $ df -h | grep dummy\n\/dev\/vdb        3.7G  2.0M  3.6G   1% \/mnt\/dummy\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Meta data and data check sums are enabled by default:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; highlight: [1,2]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs show-super -l \/dev\/vdb | grep -i check\n  metadata_checksum:                        none &#x5B;crc32c] crc64 xxhash \n  data_checksum:                            none &#x5B;crc32c] crc64 xxhash \n  checksum errors:                          0\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"> That&#8217;s it for the very basics. In the next post we&#8217;ll look at multi device file systems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Linux 6.7 (already end of life) was released some time ago another file system made it into the kernel: bcachefs. This is another copy on write file system like ZFS or Btrfs. The goal of this post is not to compare those in regards to features and performance, but just to give you the&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":[4133,42],"tags":[3339,73],"class_list":["post-32624","post","type-post","status-publish","format-standard","hentry","category-database","category-operating-systems","tag-bcachefs","tag-linux"],"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>Another file system for Linux: bcachefs (1) - basics - dbi services | Blog<\/title>\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\/another-file-system-for-linux-bcachefs-1-basics\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Another file system for Linux: bcachefs (1) - basics\" \/>\n<meta property=\"og:description\" content=\"When Linux 6.7 (already end of life) was released some time ago another file system made it into the kernel: bcachefs. This is another copy on write file system like ZFS or Btrfs. The goal of this post is not to compare those in regards to features and performance, but just to give you the&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/\" \/>\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=\"2024-04-17T09:32:46+00:00\" \/>\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=\"2 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\\\/another-file-system-for-linux-bcachefs-1-basics\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"Another file system for Linux: bcachefs (1) &#8211; basics\",\"datePublished\":\"2024-04-17T09:32:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/\"},\"wordCount\":358,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"keywords\":[\"bcachefs\",\"Linux\"],\"articleSection\":[\"Database\",\"Operating System\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/\",\"name\":\"Another file system for Linux: bcachefs (1) - basics - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2024-04-17T09:32:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-1-basics\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Another file system for Linux: bcachefs (1) &#8211; basics\"}]},{\"@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":"Another file system for Linux: bcachefs (1) - basics - dbi services | Blog","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\/another-file-system-for-linux-bcachefs-1-basics\/","og_locale":"en_US","og_type":"article","og_title":"Another file system for Linux: bcachefs (1) - basics","og_description":"When Linux 6.7 (already end of life) was released some time ago another file system made it into the kernel: bcachefs. This is another copy on write file system like ZFS or Btrfs. The goal of this post is not to compare those in regards to features and performance, but just to give you the&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2024-04-17T09:32:46+00:00","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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"Another file system for Linux: bcachefs (1) &#8211; basics","datePublished":"2024-04-17T09:32:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/"},"wordCount":358,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"keywords":["bcachefs","Linux"],"articleSection":["Database","Operating System"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/","url":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/","name":"Another file system for Linux: bcachefs (1) - basics - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2024-04-17T09:32:46+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Another file system for Linux: bcachefs (1) &#8211; basics"}]},{"@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\/32624","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=32624"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32624\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=32624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=32624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=32624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}