1 điểm bởi GN⁺ 2024-12-01 | 1 bình luận | Chia sẻ qua WhatsApp

Ntfs2btrfs

Ntfs2btrfs là công cụ chuyển đổi hệ thống tệp NTFS của Microsoft sang Btrfs, một hệ thống tệp mã nguồn mở. Công cụ này tương tự btrfs-convert, vốn dùng để chuyển đổi ext2. Sau khi chuyển đổi, ảnh gốc sẽ được lưu tại image/ntfs.img; nếu muốn giữ nguyên kết quả chuyển đổi, bạn có thể xóa tệp này để giải phóng dung lượng. Dù được cho là ổn định, nhưng nếu có sự cố xảy ra thì tác giả không chịu trách nhiệm. Trình điều khiển hệ thống tệp Btrfs cho Windows là WinBtrfs cũng là thứ đáng quan tâm. Xin cảm ơn Eric Biggers, người đã đảo ngược kỹ thuật thành công "dữ liệu nén WOF" của Windows 10, và mã của ông đã được sử dụng.

Cách sử dụng

  • Windows: chạy ntfs2btrfs.exe D:\ trong dấu nhắc lệnh quản trị viên
    • Không hoạt động trên ổ khởi động hoặc ổ đang chứa page file được sử dụng
    • Nếu dùng WinBtrfs thì cần gỡ cờ chỉ đọc của subvolume image thì mới có thể xóa
  • Linux: chạy ntfs2btrfs /dev/sda1 với quyền root

Cài đặt

  • Windows: tải tệp Zip mới nhất từ trang Releases hoặc dùng Scoop
  • Linux:
    • Arch
    • Fedora (nhờ Conan-Kudo)
    • Gentoo - có sẵn dưới dạng sys-fs/ntfs2btrfs trong kho guru
    • Debian (nhờ alexmyczko)
    • Ubuntu (nhờ alexmyczko)
    • openSUSE (nhờ David Sterba)
  • Với các bản phân phối hay hệ điều hành khác, cần tự biên dịch

Nhật ký thay đổi

  • 20240115
    • Sửa lỗi biên dịch trên GCC 14 (-Werror=incompatible-pointer-types được bật mặc định)
  • 20230501
    • Sửa lỗi thứ tự không được btrfs check chẩn đoán ra
    • Sửa lỗi các mục metadata được ghi với giá trị level sai
    • Bỏ qua ADS có tên quá dài
  • 20220812
    • Thêm tùy chọn --no-datasum để bỏ qua việc tính checksum
    • Bảo toàn metadata LXSS / WSL
    • Sửa lỗi không nhận diện được ký tự ổ đĩa viết thường
    • Sửa lỗi hỏng dữ liệu khi có tệp ở megabyte cuối cùng của đĩa
  • 20210923
    • Thêm hỗ trợ nén (Btrfs) (zlib, lzo, zstd)
    • Thêm hỗ trợ các thuật toán băm khác: xxhash, sha256, blake2
    • Thêm hỗ trợ rollback về NTFS
    • Tăng tốc độ chuyển đổi trên các volume có nhiều inode
    • Sửa lỗi khi có tệp phân mảnh ở vị trí superblock
    • Sửa lỗi tràn bộ đệm khi đọc security descriptor
    • Sửa lỗi hỏng hệ thống tệp mà btrfs check không phát hiện được
  • 20210523
    • Cải thiện xử lý các tệp nén lớn
  • 20210402 (bản phát hành chỉ có mã nguồn)
    • Sửa lỗi biên dịch trên kiến trúc không phải amd64
  • 20210105
    • Thêm hỗ trợ nén NTFS
    • Thêm hỗ trợ "dữ liệu nén WOF"
    • Sửa các vấn đề do sparse file gây ra
    • Các sửa lỗi khác
  • 20201108
    • Cải thiện xử lý lỗi
    • Thêm thông báo tốt hơn khi NTFS bị hỏng hoặc không sạch
    • Cải thiện xử lý tái định vị
  • 20200330
    • Bản phát hành đầu tiên

Biên dịch

  • Windows: mở thư mục mã nguồn bằng phiên bản MSVC mới nhất, rồi nhấp chuột phải vào CMakeLists.txt để biên dịch
  • Linux:
    • mkdir build
    • cd build
    • cmake ..
    • make
    • Cần cài libfmt - có trong trình quản lý gói
    • Hỗ trợ nén cần zlib, lzo, zstd - cũng có trong trình quản lý gói. Để tắt, xem các tùy chọn cmake WITH_ZLIB, WITH_LZO, WITH_ZSTD

Những gì hoạt động

  • Tệp
  • Thư mục
  • Liên kết tượng trưng
  • Các điểm phân tích lại khác
  • Security descriptor
  • Luồng dữ liệu thay thế
  • Thuộc tính DOS (ẩn, hệ thống, v.v.)
  • Rollback bằng ảnh NTFS gốc
  • Bảo toàn metadata LXSS

Những gì không hoạt động

  • Thuộc tính mở rộng cũ của Windows (không được dùng)
  • ADS lớn (trên 16KB) (không được dùng)
  • Bảo toàn cờ phân biệt chữ hoa/chữ thường
  • Kích thước cluster bất thường (không phải 4KB)
  • Tệp được mã hóa

Có thể khởi động Windows từ Btrfs không

  • Có thể, nhưng phải đáp ứng một số điều kiện nhất định. Xem Quibble.

1 bình luận

 
GN⁺ 2024-12-01
Ý kiến trên Hacker News
  • Mức độ kiểu "hold-my-beer" rất cao

    • Đây là cách nói dùng khi làm điều gì đó rất nguy hiểm hoặc đầy thách thức
  • Khi thử trước đây thì ổ đĩa đã trở thành chỉ đọc

    • Hy vọng giờ đã được cải thiện
  • Rất ngầu, nhưng sẽ phải mất ít nhất một tuần nữa mọi người mới nghe tin này

    • Chỉ sau khi hoàn tất việc định dạng ổ NTFS đã trì hoãn suốt 2 năm thì họ mới biết đến nó
  • Đang nghĩ cách áp dụng cho ZFS

    • Có lẽ làm được bằng cách thêm một lớp đọc các kiểu hệ thống tệp khác và tổng hợp các con trỏ khối ZFS
    • Nếu ZFS có tính năng ghi lại con trỏ khối thì có thể ghi lại toàn bộ để hoàn tất việc chuyển đổi
    • ZFS không phải là một hệ thống tệp CAS đúng nghĩa, nên không thể có tính năng ghi lại con trỏ khối
  • Sẽ rất ngạc nhiên nếu nó hỗ trợ các tệp dùng nén LZX

    • Đừng nhầm với kiểu nén tệp từ thời Windows 2000
    • Đây là tính năng phải bật bằng lệnh compact.exe /C /EXE:LZX (tên tệp)
  • NTFS ổn định, nhanh hơn btrfs và có cùng tính năng

    • Khó hiểu vì sao ai đó lại muốn thay thế NTFS