1 पॉइंट द्वारा GN⁺ 2024-12-01 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Ntfs2btrfs Microsoft NTFS फाइल सिस्टम को open source फाइल सिस्टम Btrfs में in-place बदलने वाला टूल है, और ext2 के लिए btrfs-convert जैसी तरह से काम करता है
  • conversion से पहले मूल image को image/ntfs.img में reflink copy के रूप में सेव किया जाता है, और conversion result को बनाए रखना हो तो जगह खाली करने के लिए इस image को हटाया जा सकता है
  • Windows में इसे administrator command prompt से ntfs2btrfs.exe D:\ चलाकर इस्तेमाल करें, और Linux में root अधिकारों के साथ ntfs2btrfs /dev/sda1 चलाएं
  • यह boot drive या मौजूदा समय में इस्तेमाल हो रहे pagefile वाली drive पर काम नहीं करता, और WinBtrfs इस्तेमाल करते समय image subvolume को हटाने के लिए उसका readonly flag पहले हटाना होगा
  • समर्थित दायरे में files, directories, symbolic links, security descriptors, alternate data streams, NTFS rollback, और LXSS metadata preservation शामिल हैं, लेकिन encrypted files और असामान्य cluster size समर्थित नहीं हैं

Ntfs2btrfs क्या करता है

  • Ntfs2btrfs NTFS फाइल सिस्टम को Btrfs में in-place conversion करने वाला टूल है
  • मूल image को image/ntfs.img में reflink copy के रूप में सेव किया जाता है
    • conversion result को बनाए रखना हो तो जगह खाली करने के लिए इस file को हटाया जा सकता है
  • टूल को stable बताया गया है, लेकिन चेतावनी दी गई है कि समस्या होने पर लेखक जिम्मेदार नहीं होगा
  • Windows के लिए Btrfs file system driver WinBtrfs भी साथ में देखने लायक project के रूप में लिंक किया गया है
  • Windows 10 के “WOF compressed data” को reverse-engineer करने वाले Eric Biggers का ntfs-3g-system-compression code इस्तेमाल किया गया है

उपयोग का तरीका और सीमाएं

  • Windows में इसे administrator command prompt से चलाएं
    • ntfs2btrfs.exe D:\
  • Linux में root अधिकारों के साथ block device निर्दिष्ट करें
    • ntfs2btrfs /dev/sda1
  • Windows में निम्न targets को convert नहीं किया जा सकता
    • Boot drive

      • मौजूदा समय में इस्तेमाल हो रहे pagefile वाली drive
      • WinBtrfs का इस्तेमाल कर रहे हों, तो image subvolume हटाने से पहले readonly flag हटाना होगा

installation path

  • Windows में Releases page से latest Zip file डाउनलोड करें या Scoop इस्तेमाल कर सकते हैं
  • Linux distributions के हिसाब से packages उपलब्ध हैं
  • अन्य distributions या operating systems में खुद compile करना होगा

compile और dependencies

  • Windows में हालिया version के MSVC से source directory खोलें और CMakeLists.txt में Compile चलाएं
  • Linux में cmake और make से build करें
    • mkdir build
    • cd build
    • cmake ..
    • make
  • build के लिए libfmt चाहिए, जिसे package manager से install किया जा सकता है
  • compression support के लिए zlib, lzo, zstd चाहिए
    • CMake options WITH_ZLIB, WITH_LZO, WITH_ZSTD से संबंधित support disable किया जा सकता है

समर्थित features

  • निम्न items को convert या preserve किया जा सकता है
    • Files

    • Directories

      • symbolic links
      • अन्य reparse point
      • security descriptors
      • alternate data streams
      • DOS attributes
      • hidden, system आदि
      • मूल NTFS image पर rollback
      • LXSS metadata preservation

समर्थित नहीं items

  • Windows के पुराने extended attributes समर्थित नहीं हैं
  • 16KB से बड़े alternate data streams समर्थित नहीं हैं
  • case-sensitivity flag preservation समर्थित नहीं है
  • 4KB से अलग असामान्य cluster size समर्थित नहीं हैं
  • encrypted files समर्थित नहीं हैं

change history में दिखने वाले प्रमुख बदलाव

  • 2025-06-16 release ने GCC 15 compilation समस्या ठीक की
  • 2024-01-15 release ने GCC 14 में -Werror=incompatible-pointer-types के default रूप से active होने से आई compilation समस्या ठीक की
  • 2023-05-01 release ने inline extent item order समस्या और metadata item level value समस्या ठीक की
    • बताया गया है कि दोनों समस्याएं btrfs check से diagnose नहीं होतीं
    • बहुत लंबे नाम वाले ADS को skip करने के लिए बदला गया
  • 2022-08-12 release में --no-datasum option, LXSS/WSL metadata preservation, lowercase drive letter recognition fix, आखिरी 1MB क्षेत्र में file placement के समय corruption fix आदि शामिल हैं
  • 2021-09-23 release ने Btrfs compression support और rollback support जोड़ा
    • compression में zlib, lzo, zstd supported हैं
    • hash algorithms में xxhash, sha256, blake2 का अतिरिक्त support जोड़ा गया
    • NT4-style security descriptors भी supported हैं
    • बहुत अधिक inode वाले volumes की conversion speed सुधारी गई
    • btrfs check द्वारा न पकड़े जाने वाले file system corruption bug भी ठीक किया गया
  • 2021-01-05 release में NTFS compression, “WOF compressed data”, और sparse file से जुड़ी समस्याओं के fixes शामिल हैं

Windows को Btrfs से boot करने की स्थिति में

  • बताया गया है कि इस टूल से convert किए गए Btrfs से Windows boot करना शर्तें पूरी होने पर संभव है
  • संबंधित project के रूप में Quibble लिंक किया गया है

1 टिप्पणियां

 
GN⁺ 2024-12-01
Hacker News की राय
  • Windows kernel bootloader को खुले और extensible तरीके से reverse-engineer करने वाले Quibble का लिंक कहीं ज़्यादा दिलचस्प लगा: https://github.com/maharmstone/quibble

  • अगर ZFS में यह करना हो, तो शायद मैं एक layer जोड़ूंगा जो दूसरे filesystem format को पढ़े और ZFS block pointers synthesize करे
    तब ZFS दूसरा filesystem पढ़ पाएगा, और लिखने की प्रक्रिया में धीरे-धीरे पूरे को दोबारा लिख सकेगा। अगर ZFS में block pointer rewrite की सुविधा होती, तो उसे पूरा rewrite कराकर conversion खत्म किया जा सकता था, लेकिन मैंने पहले समझाया था कि ZFS कोई सही मायने में content-addressed storage (CAS) filesystem नहीं है, इसलिए उसमें ऐसी सुविधा नहीं है और हो भी नहीं सकती

  • यहाँ कोई BTRFS इस्तेमाल कर रहा हो तो बता सकता है कि आजकल stability कैसी है? पहले बहुत डरावने किस्से देखे थे

    • openSUSE में default है, इसलिए कई सालों से main PC और laptop पर इस्तेमाल कर रहा हूँ, और पता चला कि snapshots वह feature है जिसकी मुझे ज़रूरत थी, बस मुझे पता नहीं था
      कभी कोई समस्या नहीं आई, लेकिन BTRFS जिस free space को मानता है और OS के बाकी हिस्से जिस free space को मानते हैं, वे हमेशा मेल नहीं खाते—यह झुंझलाने वाला है। फिर भी असल में यह शायद ही कभी समस्या बना
    • personal laptop, server और embedded devices पर 10 साल से ज़्यादा समय से सिर्फ BTRFS इस्तेमाल कर रहा हूँ और एक बार भी समस्या नहीं हुई
      database workloads को छोड़ दें, तो मुझे समझ नहीं आता कि कोई दूसरा filesystem क्यों इस्तेमाल करे; मेरे हिसाब से यह Linux का flagship filesystem है
    • personal devices और btrbk backups के लिए कई सालों से इस्तेमाल कर रहा हूँ, कोई समस्या नहीं हुई
    • एक साल भी नहीं हुआ था कि Tumbleweed पर disk भरते ही यह टूट गया
      parallel install environment में खराब partition तक पहुँचकर ठीक करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ
    • Btrfs धीरे-धीरे मेरा data कुतर रहा है। छोटी files या बड़ी files के कुछ sectors randomly पूरी तरह null values में बदल जाते हैं
  • 2 महीने पहले मुझे इसकी ज़रूरत थी। 10TB से ज़्यादा data वाली hard disk को NTFS से format करना पड़ा
    शानदार project है

  • अगर यह LZX compression लगे files तक support करता है तो काफी हैरानी होगी
    यह Windows 2000 के दौर वाले file compression से अलग चीज़ है, और इसे compact.exe /C /EXE:LZX (filename) से enable करना पड़ता है

  • पहले इस्तेमाल करके देखा था, लेकिन result read-only disk था। उम्मीद है तब से बेहतर हुआ होगा

  • यहाँ दिख रही recklessness की मात्रा chart से बाहर जा रही है

    • यह उतना जोखिम भरा नहीं है जितना लगता है
      standard तरीका यह है कि पुराने filesystem में नए filesystem metadata के लिए एक बड़ी file reserve की जाए, फिर पुराने filesystem की सारी files पर iterate करके fiemap() से existing data की ओर इशारा करने वाले नए extents बनाए जाएँ। writes सिर्फ reserved space में होती हैं
      superblock को सबसे आखिर में ही overwrite किया जाता है, और उससे पहले पुराने और नए filesystem के contents समान हैं या नहीं, verify किया जा सकता है
    • कुछ साल पहले यह chainsaw juggling के ज़्यादा करीब था: https://github.com/maharmstone/ntfs2btrfs/issues/9
      तब इसे छेड़ते हुए मैंने कुछ काफी खराब bugs trace किए थे, और उम्मीद है अब यह ज़्यादा stable होगा
    • Apple ने भी HFS+ से APFS में कुछ ऐसा ही काम अरबों वास्तविक OS X/iOS deployments पर किया था
      जैसा दूसरे लोग कह रहे हैं, scale पर व्यवस्थित तरीके से किया जा सकता है, लेकिन जाहिर है सावधानी चाहिए
    • यह Linux वाला btrfs नहीं है
      “WinBtrfs अगली पीढ़ी के Linux filesystem Btrfs के लिए Windows driver है। इसे शून्य से दोबारा implement किया गया है और इसमें Linux kernel code शामिल नहीं है; इसे Windows XP के बाद के किसी भी version पर काम करना चाहिए। यह free operating system ReactOS के हिस्से के रूप में भी शामिल है।”
      यह सामग्री ntfs2btrfs maintainer के page से ली गई है
      https://github.com/maharmstone/btrfs
    • in-place upgrade से Windows को दो बार फटते देखा है, इसलिए मैं बस नई disk या computer खरीदकर फिर से शुरू करूँगा
      पता है यह अलग मामला है, लेकिन उस data में लगा समय नई disk से कहीं ज़्यादा कीमती है। निजी तौर पर यह risk लेने लायक नहीं लगता। अगर data महत्वपूर्ण नहीं है या backups अच्छे हैं और आप bugs पकड़ने में योगदान देना चाहते हैं, तो कोशिश कर सकते हैं
  • सच में शानदार है, लेकिन लगता है अधिकतर लोगों को इसके बारे में तभी पता चलेगा जब वे 2 साल से टाल रहे NTFS drive format को खत्म किए कम से कम एक हफ्ता हो चुका होगा