Nhiều bản phân phối Linux hiện nay sử dụng BTRFS làm hệ thống tệp mặc định, và Fedora Linux không ngoại lệ. Trước đây, các bài viết thường ca ngợi khả năng rollback dễ dàng của BTRFS nhưng kèm theo hàng loạt lệnh dòng lệnh. Giờ đây, hạ tầng BTRFS đã trưởng thành và có những công cụ GUI dễ dùng.

Bạn có thể dùng bất kỳ ISO Fedora Linux chuẩn nào và một USB stick. Bài viết dành cho người mới làm quen Fedora Linux và cho những người quen thuộc ext4 và Timeshift.

Bắt đầu

Trước tiên hãy chắc chắn hệ điều hành đang chạy BTRFS. Fedora hiện nay thường dùng BTRFS, nhưng nếu cài đặt đã lâu năm hoặc do người khác cài, nên kiểm tra. Trên Fedora Workstation với GNOME, thử Disks hoặc GParted; cả hai đều cài tốt trên KDE, và nhiều người thích chúng hơn KDE Partition Manager. Fedora đã nâng KDE lên vị thế ngang hàng Workstation (GNOME), nên bài này bao gồm cả hai phiên bản chính thức.

Cài btrfs-assistant

Nếu chưa có btrfs-assistant, hãy cài. Gói nhẹ và cũng cài snapper; tổng cộng khoảng 4 MB. Dùng GNOME Software, KDE Discover, hoặc dnf trên dòng lệnh đều được.

Sub-volume

Việc đăng ký sub-volume hiện có là tự động. Fedora tạo hai sub-volume khi cài chuẩn: root và home. Khi chạy hệ thống bình thường ta chỉ thấy nội dung bên trong; chỉ khi boot USB Live ISO ta mới thấy chúng trong trình quản lý tệp. Trên GNOME Workstation có thể thấy thêm /root/var/lib/machines, thường rỗng, chỉ để loại trừ tệp tạm khỏi snapshot; có thể bỏ qua.

Trình quản lý phân vùng như GParted có thể hiển thị phân vùng đầy đủ nhưng hệ thống tệp sẽ không hoạt động nếu chưa có sub-volume overlay bên trong.

Bố cục thay thế

Anaconda là trình cài đặt của Fedora. Với người muốn thêm sub-volume, cách tốt nhất là làm ngay từ đầu khi gặp tùy chọn Storage Editor. Trước Fedora 45, có thể tìm thấy ở góc trên bên phải giao diện. Fedora cài song song với hệ thống hiện tại được. Cách tốt là dùng GParted chuẩn bị vùng chưa phân bổ để đưa cho trình cài đặt, thay vì đưa phân vùng có sẵn.

Điều chỉnh sau cài đặt

Tạo sub-volume mới cần dòng lệnh, chỉ cho người dùng nâng cao. Blivet-gui về lý thuyết nhận làm việc này nhưng chưa thuyết phục; btrfs-assistant không đụng tới phần này.

Sao lưu

Bản thân các sub-volume hiện chưa làm được gì nhiều; cơ chế Copy On Write (CoW) có và hoạt động, vậy thôi. Hãy chắc chắn có backup trước khi thiết lập thật sự. Các lệnh btrfs send và receive khá phức tạp. Sao lưu phân vùng kiểu thường bằng dd hoặc GNOME Disks dễ hơn nhiều và đủ cho nhu cầu cơ bản.

Snapshot

Snapshot là thứ đưa rollback BTRFS lên tầm khác hẳn Timeshift. Ta dùng Snapper.

Trên diễn đàn có nhắc tới Timeshift trên Fedora BTRFS với sub-volume kiểu @ của Ubuntu; cách này không còn chạy trừ khi dùng Linux Mint. Cần cấu hình Snapper trước khi sự cố xảy ra. Nếu đến bài này qua tìm kiếm web và đang gặp sự cố mà chưa từng tạo snapshot, bạn sẽ bị giới hạn dùng dòng lệnh.

Lệnh btrfs là nền tảng tạo và quản lý overlay; Snapper giúp làm việc với snapshot btrfs.

Cấu hình Snapper

Bắt đầu ở tab Snapper Settings. Nhấn New và điền thông tin, một cho root, một cho home. Đường dẫn backup và target phải nằm cùng phân vùng. Theo tài liệu, có thể đặt sub-volume ở bất kỳ đâu; BTRFS dùng sub-volume ẩn, nên đặt root tại / và home tại /home là hợp lý. Trong thiết lập này, root là mọi thứ trừ thư mục home; thư mục home sẽ giữ snapshot home. Snapper đặt tệp cấu hình tại /etc/snapper.

Bật Timeline, Cleanup, và Boot, rồi lưu.

Các con số

Lần lưu đầu tạo tệp cấu hình; giờ phải chỉnh số lượng. Snapper mặc định giữ snapshot 10 năm và không giữ hàng tuần — có lẽ liên quan openSUSE và chương trình hỗ trợ dài hạn. Với dùng hàng ngày, phải đổi. Root và home nên khác nhau. Tác giả đang đánh giá bộ số cho root: 15, 10, 5, 3, 1, 50 cho home; có thể hơi cao. Con số này quy định snapshot tối đa thuật toán dọn dẹp timeline giữ, tính từ snapshot trẻ nhất. Xong thì lưu lại rồi áp dụng thay đổi systemd.

Tránh tích trữ

Snapshot rất dễ tạo, đừng lạm dụng. Một hai snapshot kernel và firmware cũ có thể cứu bạn, nhưng không cần giữ nhiều gigabyte nhiều tháng. Ngược lại, vài tài liệu nhỏ bị xóa nhầm từ mấy tháng trước có thể rất đáng giữ. Nguy cơ phình hệ thống có thể là lý do Fedora không cài sẵn Snapper.

Tạo snapshot

Thường tự động và xảy ra trong micro-giây, khác hẳn ext4 với Timeshift thường mất nhiều phút. Snapshot thủ công rất hữu ích, chẳng hạn trước việc có thể gây lỗi. Nếu bật tùy chọn Boot, có snapshot ngay mỗi lần khởi động, nên các bản cập nhật lỗi rất dễ hoàn tác.

BTRFS liên tục ghi nhận những gì đang diễn ra nên chi phí xử lý rất nhỏ. Nói đơn giản, snapshot như gắn thẻ tại một điểm trên một bản ghi meta-data liên tục và liên kết; khi rollback ta quay về thẻ đó và bắt đầu ghi lại trên nhánh mới.

Duyệt và khôi phục

Chọn tab Snapper, rồi chuyển phụ tab Browse/Restore. Tìm snapshot cần dùng và nhấn Browse để xem bên trong. Browse cũng cho phép khôi phục từng tệp thay vì toàn bộ snapshot. Để ý menu thả xuống target vì nó đổi khi bạn chuyển tab.

Xóa

BTRFS xóa nhanh hơn hẳn qcow2 trên máy ảo, cũng nhanh hơn Timeshift; chỉ mất vài giây, kể cả snapshot rất cũ.

Bảo trì

Ở tab này, scrub có lẽ là tùy chọn quan trọng duy nhất. Tài liệu khuyên chạy ít nhất mỗi tháng. Nếu đã rollback nhiều, nên scrub thủ công. Balance dành cho cân bằng thiết bị RAID; defrag chỉ thực sự cần nếu chạy ổ cứng cơ — SSD có bộ tối ưu riêng, có thể chạy defrag thủ công mỗi năm hai năm nếu muốn.

Khởi động từ USB Live

Có thao tác không làm được khi hệ điều hành đang dùng; phải dùng Fedora Media Writer hoặc GNOME Disks ghi ISO Live đã tải xuống vào USB. Với Disks, chuột phải vào ISO và chọn mở bằng Disk Image Writer. Nhiều USB Live cho phép cài một lượng nhỏ phần mềm lên đó — mẹo này là chìa khóa cho khôi phục sự cố.

ISO tải từ trang chủ Fedora. Nếu thích, thử Manjaro KDE ISO; nó có sẵn hầu hết phần mềm cần thiết.

Khởi động lại

Cần cho máy boot từ USB; hoặc đã bật phím kích hoạt trong UEFI/BIOS (thường là Delete) khi khởi động, hoặc vào cài đặt hệ điều hành yêu cầu khởi động lại UEFI.

Giữ an toàn

Nên có một bản sao lưu đầy đủ gần đây trước khi đụng vào hệ thống. Sau khi boot USB Live mà chưa có backup, hãy tạo ngay. Giao diện Disks giúp tạo ảnh phân vùng khá dễ. ISO Workstation có sẵn Disks; nếu dùng KDE, cài qua KDE Discover hoặc dnf — chỉ vài MB.

Chọn phân vùng, mở menu tùy chọn và chọn Create Partition Image. Sao lưu cả phân vùng boot; BTRFS không tạo bản sao nào cho chúng. Nếu định dùng dd mà chưa quen: luôn luôn chú ý if= (đầu vào) và of= (đầu ra), nếu không nó từ công cụ nhân bản đĩa hữu ích biến thành công cụ hủy diệt đĩa. Đặt backup trên thứ đáng tin: ổ cứng USB chất lượng tốt thường được xem là lựa chọn tốt, ít bị phai theo thời gian hơn SSD dù chậm hơn. SSD có thể mất dữ liệu nếu không được cấp nguồn thường xuyên.

Kích thước phân vùng

Có thể cân nhắc chỉnh kích thước phân vùng, nhưng hãy backup trước. Giữ phân vùng hệ điều hành nhỏ giúp backup dễ hơn nhiều; vẫn cần backup đầy đủ tiếp tục dù đã có CoW. Người dùng nâng cao có thể nén backup bằng dd; tạo tệp tạm /dev/zero giúp nén tốt hơn. Tiết kiệm được nhiều dung lượng nhưng tệp .img phải giải nén hoàn toàn mới mount được.

Máy ảo

Vấn đề tốc độ và dư thừa dữ liệu có thể xảy ra khi hai hệ CoW chạy đồng thời — hiệu ứng tuyết lăn khi host liên tục sao lưu bản sao của các bản sao khác. Theo tài liệu QEMU, khi giữ máy ảo trên phân vùng BTRFS nên dùng tùy chọn nocow để tránh vấn đề hiệu năng.

Với GNOME Boxes (cài sẵn trên Workstation), không cần chỉnh tệp cấu hình hay vị trí VM. Boxes giữ máy ảo trong thư mục ẩn .local/share/gnome-boxes/images trong home và hoạt động tốt nhất khi để vậy; các tệp ảnh đã tắt CoW. Kiểm tra cờ nocow +C bằng lsattr trên tệp ảnh nếu cần. Người dùng nâng cao có thể chạy VM trên phân vùng ext4 riêng.

Tệp swap

Fedora dùng hệ thống zram, nén dữ liệu RAM thay vì swap ra ổ đĩa. Snapshot BTRFS sẽ không hoạt động nếu có swap file truyền thống trong sub-volume. Nếu thiếu RAM, trước tiên điều chỉnh tỷ lệ cấp phát zram. Nếu vẫn cần swap file, phải tạo sub-volume riêng chứa nó.

Khôi phục

Đến đây phần này khá trực quan. Chú ý tính liên tục root/home: home vẫn chứa tệp hệ thống và cấu hình ẩn dùng bởi chương trình cài trong root.

Với lỗi nhỏ khi hệ thống vẫn boot, mở btrfs-assistant và rollback về điểm tốt trước đó.

Quan trọng: khi chạy từ USB, hãy mở trình quản lý tệp và mount phân vùng cần sửa trước khi cài hoặc chạy btrfs-assistant, nếu không nó sẽ không hoạt động. Trong cả hai trường hợp bạn sẽ được khuyên khởi động lại để yêu cầu có hiệu lực. Toàn bộ khá nhanh; so với Timeshift gần như tức thì.

Chọn công cụ phù hợp

Sự cố đến với ai cũng được nếu đủ thời gian bấm nút hoặc chỉnh quá nhiều tệp cấu hình; đôi khi lỗi từ upstream. Nếu vẫn boot được, Fedora đã có sẵn cơ chế hoàn tác gói rất nhanh; nhiều khi không cần snapshot. Có GUI tên dnfdragora, nhưng dòng lệnh nhanh và trực quan hơn. Downgrade chỉ có tác dụng tạm thời, không cần khôi phục gì sau đó; đợt cập nhật tới, hy vọng có bản sửa, gói và tệp liên quan tự động nâng cấp trở lại.

Kết luận

Bài viết hy vọng cập nhật đến đầu H2 2026. Liệu Red Hat có hỗ trợ Fedora đưa btrfs-assistant vào chuẩn, và Snapper cùng snapshot có được thiết lập sẵn trên cài đặt mới? Câu trả lời là có và điều này có thể sẽ xảy ra, nhưng còn phải chờ xem chính xác bằng cách nào và khi nào.