Lỗi cân bằng BTRFS trong Kernel 5.14.x

Loi Can Bang Btrfs Trong Kernel 5 14 X



Có một lỗi trong kernel 5.14.x khiến hệ thống tệp btrfs chuyển sang chế độ chỉ đọc khi chuyển đổi cấu hình siêu dữ liệu từ Độc thân đến trùng lặp . Hệ thống tệp chuyển sang trạng thái chỉ đọc. Giải quyết vấn đề này yêu cầu một bản sửa lỗi độc đáo.

Giới thiệu về Hồ sơ BTRFS

Một trong những tính năng tuyệt vời của btrfs là khả năng sử dụng các cấu hình đột kích khác nhau. Vì btrfs lưu trữ dữ liệu và siêu dữ liệu một cách riêng biệt, bạn có thể phân chia dữ liệu trên các đĩa dưới dạng đột kích0 và sao chép tất cả siêu dữ liệu dưới dạng đột kích1. Sự dư thừa này trong siêu dữ liệu chiếm thêm ít dung lượng. Và điều này được khuyến khích trong các thiết lập btrfs Raid0.

Người ta luôn đề xuất sao chép siêu dữ liệu, ngay cả trên một đĩa đơn lẻ, vì mất siêu dữ liệu cũng đồng nghĩa với việc mất dữ liệu.







Btrfs có thể thay đổi cấu hình đột kích trên hệ thống đang hoạt động, chuyển đổi dữ liệu và siêu dữ liệu để cung cấp (hoặc loại bỏ) dự phòng. Điều này xảy ra với một THĂNG BẰNG . Số dư btrfs ghi lại tất cả các khối của hệ thống tệp và điều chỉnh để khớp với các cấu hình mới.



Con bọ

Tôi đã cố gắng thay đổi cấu hình siêu dữ liệu trên đĩa đơn của mình từ Độc thân đến trùng lặp cho sự dư thừa.



$ sudo số dư btrfs bắt đầu -mconvert = trùng lặp / mnt





Hệ thống tập tin ngay lập tức chuyển sang trạng thái chỉ đọc. Hệ thống đã đi xuống. Khi nó khởi động lại, tôi không thể vượt qua initramfs khôi phục. Không có dữ liệu nào có thể được ghi vào đĩa.

Khi hoạt động cân bằng bị gián đoạn trên hệ thống tệp btrfs, nó sẽ tự động tiếp tục vào lần tiếp theo hệ thống tệp được gắn kết. Điều này thường có thể được dừng lại bằng:



$ sudo gắn kết -O Bỏ qua_ cân bằng, rw / nhà phát triển / sdX / mnt

Sau đó, hủy nếu cần bằng lệnh sau:

$ sudo hủy số dư btrfs / mnt

Tuy nhiên, lỗi không chỉ khiến số dư bị khóa mà còn bỏ qua các tùy chọn thú cưỡi để ngăn nó tiếp tục. Mỗi khi hệ thống tệp được gắn kết, số dư sẽ cố gắng tiếp tục. Nó không thành công và hệ thống tệp chuyển sang chế độ chỉ đọc. Nếu bạn gặp phải điều này, bạn phải khởi động bất kỳ bản phân phối nào bằng cách sử dụng hạt nhân cũ hơn. Trong trường hợp của tôi, đó là Arch với 4,18.

Gắn hệ thống tệp với kenel cũ hơn:

$ sudo gắn kết -O Bỏ qua_ cân bằng, rw / nhà phát triển / sdX / mnt

Hủy số dư:

$ sudo hủy số dư btrfs / mnt

Thực hiện cân bằng lại:

$ sudo số dư btrfs bắt đầu -mconvert = trùng lặp / mnt

Khi số dư hoàn tất, bạn có thể khởi động một cách an toàn vào một nhân mới hơn, bây giờ với siêu dữ liệu được sao chép trong hệ thống tệp. Kiểm tra các cấu hình được sử dụng bởi hệ thống tệp. Bạn sẽ thấy rằng bạn có hai bản sao siêu dữ liệu của mục tệp và chỉ một bản sao của dữ liệu:

$ sudo btrfs thì là ở cách sử dụng < điểm gắn kết >

Sự kết luận

Btrfs là một hệ thống tập tin tuyệt vời có nhiều tùy chọn nâng cao. Tuy nhiên, khi sử dụng btrfs, bạn nên có các bản sao lưu đang hoạt động cũng như hạt nhân có thể khởi động từ bản phân phối LTS để cứu hệ thống. Mặc dù số dư có thể được chạy trên hệ thống tệp gốc được gắn kết, nhưng không phải lúc nào bạn cũng nên làm điều này. Vẫn còn nhiều lỗi trong hệ thống tập tin. Bạn nên chuẩn bị cho việc giải cứu hệ thống tệp khi mô-đun btrfs chưa được kiểm tra đầy đủ với các hạt nhân đang chảy máu.