1 poin oleh GN⁺ 2024-12-01 | 1 komentar | Bagikan ke WhatsApp

Ntfs2btrfs

Ntfs2btrfs adalah alat untuk mengonversi sistem file NTFS milik Microsoft ke Btrfs, sistem file open source. Ini mirip dengan btrfs-convert yang mengonversi ext2. Setelah konversi, image asli disimpan sebagai image/ntfs.img, dan jika ingin mempertahankan hasil konversi, file ini dapat dihapus untuk mengosongkan ruang. Alat ini dianggap stabil, tetapi jika terjadi masalah, tidak ada tanggung jawab yang ditanggung. Driver sistem file Btrfs untuk Windows, yaitu WinBtrfs, juga layak untuk diperhatikan. Ucapan terima kasih disampaikan kepada Eric Biggers, yang berhasil melakukan reverse engineering atas "data kompresi WOF" di Windows 10, dan kodenya digunakan di sini.

Cara penggunaan

  • Windows: jalankan ntfs2btrfs.exe D:\ dari Command Prompt administrator
    • Tidak berfungsi pada drive boot atau drive yang sedang digunakan oleh page file
    • Jika menggunakan WinBtrfs, flag read-only pada subvolume image harus dilepas agar bisa dihapus
  • Linux: jalankan ntfs2btrfs /dev/sda1 sebagai root

Instalasi

  • Windows: unduh file Zip terbaru dari halaman Releases atau gunakan Scoop
  • Linux:
    • Arch
    • Fedora (tersedia berkat Conan-Kudo)
    • Gentoo - tersedia sebagai sys-fs/ntfs2btrfs di repositori guru
    • Debian (tersedia berkat alexmyczko)
    • Ubuntu (tersedia berkat alexmyczko)
    • openSUSE (tersedia berkat David Sterba)
  • Untuk distro atau sistem operasi lain, perlu dikompilasi sendiri

Changelog

  • 20240115
    • Memperbaiki masalah kompilasi di GCC 14 (-Werror=incompatible-pointer-types diaktifkan secara default)
  • 20230501
    • Memperbaiki masalah urutan yang tidak terdiagnosis oleh btrfs check
    • Memperbaiki masalah item metadata yang ditulis dengan nilai level yang salah
    • Melewati ADS dengan nama yang terlalu panjang
  • 20220812
    • Menambahkan opsi --no-datasum untuk melewati perhitungan checksum
    • Mempertahankan metadata LXSS / WSL
    • Memperbaiki masalah huruf drive kecil yang tidak dikenali
    • Memperbaiki kerusakan saat ada file di megabyte terakhir disk
  • 20210923
    • Menambahkan dukungan kompresi (Btrfs) (zlib, lzo, zstd)
    • Menambahkan dukungan untuk algoritma hash lain: xxhash, sha256, blake2
    • Menambahkan dukungan rollback ke NTFS
    • Meningkatkan kecepatan konversi untuk volume dengan banyak inode
    • Memperbaiki bug saat ada file terfragmentasi di lokasi superblock
    • Memperbaiki buffer overflow saat membaca security descriptor
    • Memperbaiki kerusakan sistem file yang tidak terdeteksi oleh btrfs check
  • 20210523
    • Meningkatkan penanganan file terkompresi besar
  • 20210402 (rilis khusus source code)
    • Memperbaiki masalah kompilasi pada arsitektur non-amd64
  • 20210105
    • Menambahkan dukungan kompresi NTFS
    • Menambahkan dukungan untuk "data kompresi WOF"
    • Memperbaiki masalah akibat sparse file
    • Berbagai perbaikan bug lainnya
  • 20201108
    • Meningkatkan penanganan error
    • Menambahkan pesan yang lebih baik saat NTFS rusak atau tidak dalam keadaan bersih
    • Meningkatkan penanganan relokasi
  • 20200330
    • Rilis awal

Kompilasi

  • Windows: buka direktori source dengan MSVC versi terbaru, lalu klik kanan CMakeLists.txt untuk kompilasi
  • Linux:
    • mkdir build
    • cd build
    • cmake ..
    • make
    • Perlu menginstal libfmt - seharusnya tersedia di package manager
    • Dukungan kompresi memerlukan zlib, lzo, zstd - seharusnya tersedia di package manager. Untuk menonaktifkannya, lihat opsi cmake WITH_ZLIB, WITH_LZO, WITH_ZSTD

Yang berfungsi

  • File
  • Direktori
  • Symbolic link
  • Titik reparsing lainnya
  • Security descriptor
  • Alternate data stream
  • Atribut DOS (hidden, system, dll.)
  • Rollback ke image NTFS asli
  • Mempertahankan metadata LXSS

Yang tidak berfungsi

  • Extended attribute lama Windows (tidak digunakan)
  • ADS besar (lebih dari 16KB) (tidak digunakan)
  • Mempertahankan flag case-sensitive
  • Ukuran cluster yang tidak normal (bukan 4KB)
  • File terenkripsi

Apakah Windows bisa boot dari Btrfs?

  • Bisa, tetapi hanya jika kondisi tertentu terpenuhi. Lihat Quibble.

1 komentar

 
GN⁺ 2024-12-01
Komentar Hacker News
  • Tingkat "hold-my-beer"-nya sangat tinggi

    • Ungkapan yang digunakan saat melakukan sesuatu yang sangat berisiko atau menantang
  • Saat pernah mencobanya sebelumnya, disknya menjadi hanya-baca

    • Semoga sekarang sudah membaik
  • Ini sangat keren, tetapi orang-orang kemungkinan baru akan mendengar kabar ini setidaknya seminggu lagi

    • Mereka baru akan tahu setelah selesai memformat drive NTFS yang sudah ditunda selama 2 tahun
  • Sedang memikirkan cara menerapkannya ke ZFS

    • Mungkin bisa dilakukan dengan menambahkan lapisan yang membaca tipe file system lain dan menyintesis block pointer ZFS
    • Jika ZFS memiliki fitur penulisan ulang block pointer, seluruhnya bisa ditulis ulang untuk menyelesaikan konversi
    • ZFS tidak bisa memiliki fitur penulisan ulang block pointer karena bukan CAS file system yang tepat
  • Akan sangat mengejutkan jika ini mendukung file yang menggunakan kompresi LZX

    • Jangan bingung dengan kompresi file era Windows 2000
    • Ini adalah fitur yang harus diaktifkan dengan perintah compact.exe /C /EXE:LZX (nama file)
  • NTFS stabil, lebih cepat daripada btrfs, dan memiliki fitur yang sama

    • Sulit memahami mengapa seseorang ingin menggantikan NTFS