- 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 इस्तेमाल करते समय
imagesubvolume को हटाने के लिए उसका 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 का इस्तेमाल कर रहे हों, तो
imagesubvolume हटाने से पहले 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 buildcd buildcmake ..make
- build के लिए libfmt चाहिए, जिसे package manager से install किया जा सकता है
- compression support के लिए zlib, lzo, zstd चाहिए
- CMake options
WITH_ZLIB,WITH_LZO,WITH_ZSTDसे संबंधित support disable किया जा सकता है
- CMake options
समर्थित 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-datasumoption, 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 टिप्पणियां
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 कैसी है? पहले बहुत डरावने किस्से देखे थे
कभी कोई समस्या नहीं आई, लेकिन BTRFS जिस free space को मानता है और OS के बाकी हिस्से जिस free space को मानते हैं, वे हमेशा मेल नहीं खाते—यह झुंझलाने वाला है। फिर भी असल में यह शायद ही कभी समस्या बना
database workloads को छोड़ दें, तो मुझे समझ नहीं आता कि कोई दूसरा filesystem क्यों इस्तेमाल करे; मेरे हिसाब से यह Linux का flagship filesystem है
parallel install environment में खराब partition तक पहुँचकर ठीक करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ
2 महीने पहले मुझे इसकी ज़रूरत थी। 10TB से ज़्यादा data वाली hard disk को NTFS से format करना पड़ा
शानदार project है
अगर यह LZX compression लगे files तक support करता है तो काफी हैरानी होगी
यह Windows 2000 के दौर वाले file compression से अलग चीज़ है, और इसे
compact.exe /C /EXE:LZX (filename)से enable करना पड़ता हैhttps://github.com/search?q=repo%3Amaharmstone%2Fntfs2btrfs%...
पहले इस्तेमाल करके देखा था, लेकिन 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 किया जा सकता है
तब इसे छेड़ते हुए मैंने कुछ काफी खराब bugs trace किए थे, और उम्मीद है अब यह ज़्यादा stable होगा
जैसा दूसरे लोग कह रहे हैं, scale पर व्यवस्थित तरीके से किया जा सकता है, लेकिन जाहिर है सावधानी चाहिए
“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
पता है यह अलग मामला है, लेकिन उस data में लगा समय नई disk से कहीं ज़्यादा कीमती है। निजी तौर पर यह risk लेने लायक नहीं लगता। अगर data महत्वपूर्ण नहीं है या backups अच्छे हैं और आप bugs पकड़ने में योगदान देना चाहते हैं, तो कोशिश कर सकते हैं
सच में शानदार है, लेकिन लगता है अधिकतर लोगों को इसके बारे में तभी पता चलेगा जब वे 2 साल से टाल रहे NTFS drive format को खत्म किए कम से कम एक हफ्ता हो चुका होगा