1 puan yazan GN⁺ 2024-12-01 | 1 yorum | WhatsApp'ta paylaş
  • Ntfs2btrfs, Microsoft NTFS dosya sistemini açık kaynak dosya sistemi Btrfs’ye yerinde dönüştüren bir araçtır; ext2 için kullanılan btrfs-convert ile benzer şekilde çalışır
  • Dönüştürme öncesindeki özgün imaj image/ntfs.img altında reflink kopyası olarak saklanır; dönüştürme sonucunu korumak istiyorsanız alan açmak için bu imajı silebilirsiniz
  • Windows’ta yönetici komut isteminde ntfs2btrfs.exe D:\ ile, Linux’ta ise root yetkisiyle ntfs2btrfs /dev/sda1 komutu çalıştırılır
  • Önyükleme sürücüsünde veya o anda kullanılan pagefile bulunan sürücülerde çalışmaz; WinBtrfs kullanırken image alt birimini silebilmek için readonly bayrağını kaldırmak gerekir
  • Destek kapsamına dosyalar, dizinler, sembolik bağlantılar, güvenlik tanımlayıcıları, alternatif veri akışları, NTFS geri alma ve LXSS metadata koruması dahildir; ancak şifreli dosyalar ve olağandışı küme boyutları desteklenmez

Ntfs2btrfs ne yapar?

  • Ntfs2btrfs, NTFS dosya sistemini Btrfs’ye yerinde dönüştüren bir araçtır
  • Özgün imaj image/ntfs.img altında reflink kopyası olarak saklanır
    • Dönüştürme sonucunu korumak istiyorsanız alan açmak için bu dosyayı silebilirsiniz
  • Araç kararlı olarak belirtilse de, sorun çıkması durumunda yazarın sorumluluk kabul etmediğine dair bir uyarı içerir
  • Windows için Btrfs dosya sistemi sürücüsü olan WinBtrfs de birlikte bakılabilecek bir proje olarak bağlantılanmıştır
  • Windows 10’daki “WOF compressed data”yı tersine mühendislikle inceleyen Eric Biggers’ın ntfs-3g-system-compression kodu kullanılmıştır

Kullanım yöntemi ve kısıtlar

  • Windows’ta yönetici komut isteminde çalıştırılır
    • ntfs2btrfs.exe D:\
  • Linux’ta root yetkisiyle blok aygıtı belirtilir
    • ntfs2btrfs /dev/sda1
  • Windows’ta aşağıdaki hedefler dönüştürülemez
    • Önyükleme sürücüsü

      • O anda kullanılan pagefile bulunan sürücü
      • WinBtrfs kullanılıyorsa image alt birimini silmek için önce readonly bayrağının kaldırılması gerekir

Kurulum yolları

  • Windows’ta Releases page üzerinden en güncel Zip dosyasını indirebilir veya Scoop kullanabilirsiniz
  • Linux dağıtımlarına göre paketler sağlanır
  • Diğer dağıtımlarda veya işletim sistemlerinde doğrudan derlemek gerekir

Derleme ve bağımlılıklar

  • Windows’ta kaynak dizini yeni bir MSVC sürümüyle açıp CMakeLists.txt içinde Compile çalıştırılır
  • Linux’ta cmake ve make ile derlenir
    • mkdir build
    • cd build
    • cmake ..
    • make
  • Derleme için libfmt gerekir ve paket yöneticisiyle kurulabilir
  • Sıkıştırma desteği için zlib, lzo ve zstd gerekir
    • CMake seçenekleri WITH_ZLIB, WITH_LZO, WITH_ZSTD ile ilgili destek devre dışı bırakılabilir

Desteklenen özellikler

  • Aşağıdaki öğeler dönüştürülebilir veya korunabilir
    • Dosyalar

    • Dizinler

      • Sembolik bağlantılar
      • Diğer reparse point’ler
      • Güvenlik tanımlayıcıları
      • Alternatif veri akışları
      • DOS öznitelikleri
      • hidden, system vb.
      • Özgün NTFS imajına geri alma
      • LXSS metadata koruması

Desteklenmeyen öğeler

  • Windows’un eski genişletilmiş öznitelikleri desteklenmez
  • 16KB’yi aşan büyük alternatif veri akışları desteklenmez
  • case-sensitivity bayrağının korunması desteklenmez
  • 4KB olmayan olağandışı küme boyutları desteklenmez
  • Şifreli dosyalar desteklenmez

Değişiklik geçmişinde görülen başlıca değişimler

  • 2025-06-16 sürümü, GCC 15 derleme sorununu düzeltir
  • 2024-01-15 sürümü, GCC 14’te -Werror=incompatible-pointer-types varsayılan olarak etkinleştiğinde ortaya çıkan derleme sorununu düzeltir
  • 2023-05-01 sürümü, inline extent item sıralama sorunu ile metadata item level değeri sorununu düzeltir
    • Bu iki sorunun btrfs check ile tanılanamadığı belirtilir
    • Adı aşırı uzun olan ADS’lerin atlanması yönünde değişiklik yapılmıştır
  • 2022-08-12 sürümü; --no-datasum seçeneği, LXSS/WSL metadata koruması, küçük harfli sürücü harflerini tanıma düzeltmesi, son 1MB alana dosya yerleştirilirken oluşan bozulma düzeltmesi gibi değişiklikler içerir
  • 2021-09-23 sürümü, Btrfs sıkıştırma desteği ve geri alma desteği ekler
    • Sıkıştırma zlib, lzo ve zstd destekler
    • Hash algoritmaları için ek olarak xxhash, sha256, blake2 desteklenir
    • NT4 tarzı güvenlik tanımlayıcıları da desteklenir
    • Çok sayıda inode içeren birimlerin dönüştürme hızı iyileştirilmiştir
    • btrfs check’in yakalayamadığı dosya sistemi bozulması hatası da düzeltilmiştir
  • 2021-01-05 sürümü; NTFS sıkıştırma, “WOF compressed data” ve sparse file ile ilgili sorun düzeltmelerini içerir

Windows’u Btrfs’den önyükleme durumunda

  • Bu araçla dönüştürülen Btrfs üzerinden Windows’u önyüklemenin, koşullar uygunsa mümkün olduğu belirtilir
  • İlgili proje olarak Quibble bağlantılanmıştır

1 yorum

 
GN⁺ 2024-12-01
Hacker News yorumları
  • Windows çekirdek önyükleyicisini açık ve genişletilebilir biçimde tersine mühendislikle yeniden ortaya koyan Quibble bağlantısı çok daha ilginçti: https://github.com/maharmstone/quibble

  • Bunu ZFS'te yapacak olsaydım, başka dosya sistemi biçimlerini okuyup ZFS blok işaretçileri sentezleyen bir katman eklerdim.
    Böylece ZFS başka dosya sistemlerini okuyabilir, yazma sürecinde de tamamını yavaş yavaş yeniden yazabilirdi. ZFS'te blok işaretçisi yeniden yazma özelliği olsaydı, tamamını yeniden yazdırıp dönüşümü bitirmek mümkün olurdu; ancak daha önce açıkladığım gibi ZFS düzgün bir içerik adreslemeli depolama (CAS) dosya sistemi olmadığı için böyle bir özelliği yok ve olamaz da.

  • Burada BTRFS kullanan varsa, bugünlerde kararlılığı nasıl söyleyebilir mi? Eskiden çok ürkütücü örnekler görmüştüm.

    • openSUSE varsayılanı olduğu için birkaç yıldır ana PC'mde ve dizüstümde kullanıyorum; anlık görüntülerin ihtiyacım olduğunu bilmediğim bir özellik olduğunu fark ettim.
      Hiç sorun yaşamadım ama BTRFS'nin düşündüğü boş alan ile işletim sisteminin geri kalanının düşündüğü boş alanın her zaman uyuşmaması can sıkıcı. Yine de pratikte sorun olduğu nadirdir.
    • Kişisel dizüstümde, sunucularımda ve gömülü cihazlarımda 10 yıldan uzun süredir yalnızca BTRFS kullanıyorum ve tek bir sorun yaşamadım.
      Veritabanı iş yükleri hariç, başka bir dosya sisteminin neden kullanıldığını anlayamayacak kadar Linux'un başlıca dosya sistemi olduğunu düşünüyorum.
    • Kişisel cihazlarımda ve btrbk yedeklemelerinde birkaç yıldır kullanıyorum; sorun olmadı.
    • Daha bir yıl bile olmadan Tumbleweed'de disk dolunca patladı.
      Paralel kurulum ortamında bozuk bölüme erişip düzeltmeye çalıştım ama işe yaramadı.
    • Btrfs verilerimi yavaş yavaş kemiriyor. Küçük dosyalar ya da büyük dosyaların bazı sektörleri rastgele tamamen null değerlerine dönüşüyor.
  • 2 ay önce buna ihtiyacım vardı. 10 TB'tan fazla veri içeren bir sabit diski NTFS'ten biçimlendirmek zorunda kaldım.
    Harika bir proje.

  • LZX sıkıştırması uygulanmış dosyaları bile destekliyorsa epey şaşırırım.
    Bu, Windows 2000 dönemindeki dosya sıkıştırmasından farklı bir şey ve compact.exe /C /EXE:LZX (filename) ile etkinleştirilmesi gereken bir özellik.

  • Eskiden denemiştim; sonuç salt okunur disk olmuştu. Umarım o zamandan beri daha iyi hale gelmiştir.

  • Burada görülen gözü karalık seviyesi grafikleri delip geçiyor.

    • Düşündüğünüz kadar riskli değil.
      Standart yöntem, eski dosya sisteminde yeni dosya sistemi üst verileri için büyük bir dosya ayırmak, sonra eski dosya sistemindeki tüm dosyaları dolaşıp fiemap() ile mevcut veriye işaret eden yeni extent'ler oluşturmaktır. Yazma işlemi yalnızca ayrılmış alana yapılır.
      Süper blok en son aşamada üzerine yazılır; ondan önce eski dosya sistemi ile yeni dosya sisteminin içeriğinin aynı olduğu doğrulanabilir.
    • Birkaç yıl önce elektrikli testerelerle jonglörlük yapmaya daha yakındı: https://github.com/maharmstone/ntfs2btrfs/issues/9
      O zaman bununla uğraşırken epey kötü birkaç hatanın izini sürmüştüm; umarım şimdi daha kararlıdır.
    • Apple da HFS+'tan APFS'ye benzer bir işi gerçek dünyadaki milyarlarca OS X/iOS dağıtımında yaptı.
      Başkalarının söylediği gibi, ölçekli ve sistematik biçimde yapılabilir ama elbette dikkat gerektirir.
    • Bu, Linux'taki btrfs değil.
      “WinBtrfs, yeni nesil Linux dosya sistemi Btrfs için bir Windows sürücüsüdür. Sıfırdan yeniden uygulanmıştır; Linux çekirdeği kodu içermez ve Windows XP'den sonraki her sürümde çalışmalıdır. Ayrıca özgür işletim sistemi ReactOS'un bir parçası olarak da yer almaktadır.”
      Bu metin ntfs2btrfs bakımcısının sayfasından alınmıştır.
      https://github.com/maharmstone/btrfs
    • Yerinde yükseltmeyle Windows'un iki kez patladığını görmüş biri olarak, ben sadece yeni bir disk ya da bilgisayar alıp baştan başlardım.
      Bunun farklı bir durum olduğunu biliyorum ama o veriye harcanan zaman yeni bir diskten çok daha değerli. Şahsen riske değer bulmuyorum. Veri önemli değilse ya da iyi yedeklenmişse ve hata yakalamaya katkı vermek istiyorsanız denenebilir.
  • Gerçekten harika, ama çoğu insan bunu muhtemelen iki yıldır ertelediği NTFS sürücüsünü biçimlendirme işini bitirdikten en az bir hafta sonra öğrenecek.