WinBtrfs هو برنامج تشغيل Windows لنظام ملفات ملفات Linux من الجيل التالي. لا يحتوي على إعادة تنفيذ من نقطة الصفر ، ولا يحتوي على رمز من Kernel Linux ، ويجب أن يعمل على أي إصدار من Windows XP فصاعدًا. كما يتم تضمينه كجزء من رد فعل نظام التشغيل المجاني.
إذا كان نظام ملفات BTRFS الخاص بك على جهاز RAID برنامج MD الذي تم إنشاؤه بواسطة Linux ، فستحتاج أيضًا إلى WINMD للحصول على هذا الظهور تحت Windows.
انظر أيضًا Quibble ، وهو محمل تمهيد تجريبي يسمح لـ Windows بالتمهيد من BTRFS ، و NTFS2BTRFS ، وهي أداة تسمح بتحويل ملفات NTFS في مكانها.
أولاً ، إخلاء المسؤولية:
يمكنك استخدام هذا البرنامج على مسؤوليتك الخاصة. لا تتحمل أي مسؤولية عن أي ضرر قد يحدثه لنظام الملفات الخاص بك. يجب أن تكون مناسبة للاستخدام اليومي ، ولكن تأكد من قيامك بالنسخ الاحتياطية على أي حال.
يتم إصدار كل شيء هنا تحت رخصة GNU Lesser General Public (LGPL) ؛ انظر ترخيص الملف لمزيد من المعلومات. نشجعك على اللعب مع الكود المصدري كما تريد ، وسأقدر ملاحظة ([email protected]) إذا توصلت إلى أي شيء أنيق.
انظر في نهاية هذا المستند للحصول على تفاصيل حقوق الطبع والنشر لرمز الطرف الثالث المدرجة هنا.
mkbtrfs.exe و ubtrfs.dllfree_space_cache )لتثبيت برنامج التشغيل ، قم بتنزيل واستخراج أحدث إصدار ، انقر بزر الماوس الأيمن فوق Btrfs.inf ، واختر التثبيت. تم توقيع السائق ، لذلك يجب أن يعمل خارج الصندوق على الإصدارات الحديثة من Windows.
إذا كنت تستخدم Windows 10 أو 11 وقمت بتمكين التمهيد الآمن ، فقد تضطر إلى إجراء تغيير في السجل حتى يتم تحميل برنامج التشغيل - انظر أدناه. من الأسهل فقط إيقاف تشغيل الحذاء الآمن في BIOS ، ما لم تكن لديك حاجة خاصة لذلك. ضع في اعتبارك أن Boot Saff Super Secure Super Windows 11 ليتم تثبيته ، ولكنه سيعمل على ما بعد الكلمات التي تم إيقافها.
يتوفر WinBtrfs أيضًا على مديري الحزم التالية:
choco install winbtrfs
scoop bucket add nonportable
scoop install winbtrfs-np -g
إذا كنت ترغب في إلغاء تثبيت ، من تشغيل موجه الأوامر:
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 btrfs.inf
قد تحتاج إلى إعطاء المسار الكامل إلى btrfs.inf.
يمكنك أيضًا الانتقال إلى مدير الأجهزة ، والعثور على "BTRFS Controller" ضمن "أحجام التخزين" ، والنقر بزر الماوس الأيمن واختيار "إلغاء التثبيت". ضع علامة على خانة الاختيار لإلغاء تثبيت برنامج التشغيل أيضًا ، واترك Windows يعيد تشغيل نفسه.
إذا كنت بحاجة إلى إلغاء التثبيت عبر السجل ، فتح regedit وضبط قيمة HKLM System CurrentControlset Services Btrfs ابدأ إلى 4 ، لتعطيل الخدمة. بعد إعادة التشغيل ، يمكنك بعد ذلك حذف مفتاح BTRFS وإزالة C: Windows System32 Drivers Btrfs.sys.
لتجميع مع Visual C ++ 2019 ، افتح الدليل واترك Cmake يفعل الشيء. إذا تم تثبيت Windows DDK بشكل صحيح ، فيجب أن يعمل فقط.
لتجميع مع GCC على Linux ، ستحتاج إلى إعداد مشترك ، إما لـ i686-w64-mingw32 أو x86_64-w64-mingw32 . قم بإنشاء دليل بناء ، ثم استخدم إما mingw-x86.cmake أو mingw-amd64.cmake كملفات أدوات cmake لإنشاء makefile.
يتم تخزين تعيينات المستخدم في مفتاح التسجيل HKLM System CurrentControlset Services Btrfs Mappings. قم بإنشاء DWORD باسم Windows SID الخاص بك (على سبيل المثال S-1-5-21-13798886684-2432464051-424789967-1001) ، وقيمة Linux UID (مثل 1000). سوف يسري سريان في المرة القادمة التي يتم فيها تحميل برنامج التشغيل.
يمكنك العثور على SID الحالي عن طريق تشغيل wmic useraccount get name,sid .
وبالمثل ، يتم تخزين تعيينات المجموعة في تحت GroupMappings. تقوم مجموعة مستخدمي الإدخال الافتراضية بتعيين مجموعة مستخدمي Windows إلى GID 100 ، والتي عادة ما تكون "مستخدمين" على Linux. يمكنك أيضًا تحديد SIDs المستخدم هنا لإجبار الملفات التي أنشأها مستخدم على الانتماء إلى مجموعة معينة. يعمل علامة setGid أيضًا على Linux.
لاحظ أن العمليات التي تعمل ضمن رموز التحكم في الوصول إلى المستخدم تنشئ الملفات كمسؤولين مدمجين (S-1-5-32-544) ، بدلاً من حساب مستخدم.
سيقوم السائق بتمرير بيانات Linux إلى الإصدارات الحديثة من LXSS ، ولكن سيتعين عليك إخبار Windows بأنك ترغب في القيام بذلك. من موجه bash على Windows ، edit /etc/wsl.conf لتبدو كما يلي:
[automount]
enabled = true
options = "metadata"
mountFsTab = false
سيصبح ساري المفعول في المرة القادمة التي تقوم فيها بإعادة التشغيل. نعم ، يجب أن تكون قادرًا على chroot في تثبيت Linux الفعلي ، إذا كنت ترغب في ذلك.
يوفر ملف DLL shellbtrfs.dll واجهة واجهة المستخدم الرسومية ، ولكن يمكن أيضًا استخدامها مع RunDLL32.exe لتنفيذ بعض المهام من سطر الأوامر ، والتي قد تكون مفيدة إذا كنت ترغب في جدولة شيء ما لتشغيله بشكل دوري.
ضع في اعتبارك أن RunDLL32 لا يوفر أي آلية لإرجاع أي رموز خطأ ، لذلك قد تفشل أي من هذه الأوامر بصمت.
rundll32.exe shellbtrfs.dll,CreateSubvol <path>
rundll32.exe shellbtrfs.dll,CreateSnapshot <source> <destination>
rundll32.exe shellbtrfs.dll,ReflinkCopy <source> <destination> يقبل هذا أيضًا أحرف البدل ، وأي عدد من الملفات المصدر.
تحتاج الأوامر التالية إلى امتيازات مختلفة ، وبالتالي يجب تشغيلها كمسؤول للعمل:
rundll32.exe shellbtrfs.dll,SendSubvol <source> [-p <parent>] [-c <clone subvol>] <stream file> علامات -P و -C هي كما btrfs send على Linux. يمكنك تحديد أي عدد من أجهزة الاستنساخ الفرعية.
rundll32.exe shellbtrfs.dll,RecvSubvol <stream file> <destination>
rundll32.exe shellbtrfs.dll,StartScrub <drive>
rundll32.exe shellbtrfs.dll,StopScrub <drive>
في صفحة الإصدارات ، هناك ملفات مضغوطة لتنزيلها تحتوي على PDBs. أو يمكنك تجربة خادم الرموز http://symbols.burntcomma.com/ - في Windbg ، اضبط مسار الرمز على شيء مثل هذا:
symsrv*symsrv.dll*C:symbols*http://msdl.microsoft.com/download/symbols;symsrv*symsrv.dll*C:symbols*http://symbols.burntcomma.com
يفترض السائق أن جميع أسماء الملفات مشفرة في UTF-8. يجب أن يكون هذا هو الافتراضي في معظم الإعدادات في الوقت الحاضر - إذا كنت لا تستخدم UTF -8 ، فربما يكون الأمر يستحق البحث في تحويل ملفاتك.
بالنسبة للإصدارات اللاحقة من Windows 10 ، قدمت Microsoft متطلبات أكثر شهرة للتوقيع ، والتي لا يبدو أنها غير متوفرة للسائقين مفتوح المصدر.
للتغلب على هذا ، انتقل إلى HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCIPolicy في Regedit ، قم بإنشاء قيمة جديدة DWORD تسمى UpgradedSystem ويتم تعيينها على 1 ، وإعادة التشغيل.
أو يمكنك دائمًا إيقاف تشغيل الحذاء الآمن في إعدادات BIOS الخاصة بك.
هذا شيء تم ترميز Microsoft في LXSS ، ويفترض أن يمنع الأشخاص الذين يخفقون أنظمتهم عن طريق تشغيل mkdir /mnt/c/WiNdOwS .
مع تثبيت امتداد Shell ، انقر بزر الماوس الأيمن على محرك الأقراص في Explorer ، وانقر فوق خصائص ، وانتقل إلى علامة التبويب BTRFS. يجب أن يكون هناك زر يسمح لك بتغيير خطاب محرك الأقراص.
في Regedit ، حاول حذف الإدخالات ذات الصلة في HKEY_LOCAL_MACHINESYSTEMMountedDevices ، ثم إعادة التشغيل.
استخدم برنامج سطر الأوامر المضمّن mkbtrfs.exe. لا يمكننا إضافة BTRFS إلى مربع الحوار الخاص بـ Windows الخاص ، للأسف ، حيث تم ترميز قائمة أنظمة الملفات. يمكنك أيضًا تشغيل format /fs:btrfs ، إذا لم تكن بحاجة إلى تعيين أي خيارات خاصة بـ BTRFS.
إذا رفض مربع الحوار تنسيق Windows ، فحاول تشغيل Format.com باستخدام علامة /fs ، على سبيل المثال format /fs:ntfs D: .
يبدو أن Synology يستخدم LVM لأجهزة الكتلة الخاصة به. إلى أن يكتب شخص ما برنامج تشغيل LVM لنظام التشغيل Windows ، فأنت محظوظ.
يستخدم Thecus RAID MD Linux لأجهزة Block الخاصة به. ستحتاج إلى تثبيت winmd كذلك.
تأكد من تثبيت KB3033929. أو فكر في التثبيت من "ضمان" ISO والذي يتضمن جميع التحديثات.
من المعروف أن برنامج قراءة نظام الملفات في Paragon يعطى تعطيل Automount. تعطيل أو إلغاء تثبيت Paragon ، ثم إعادة تمكين Automount عن طريق تشغيل diskpart وكتابة automount enable .
في الإصدارات القديمة جدًا من Windows (XP ، Server 2003؟) ، يتجاهل Windows أقسام Linux بالكامل. إذا كان هذا هو الحال بالنسبة لك ، فحاول تشغيل fdisk على Linux وتغيير نوع القسم من 83 إلى 7.
لا يوجد رسم خرائط بين نماذج أذونات Windows و Posix ، فهي مختلفة جدًا عن أن تكون عملية. إذا كان هذا يزعجك ، فيمكنك إنشاء ACL Windows على الملفات التي لا تريد أن تكون قادرًا على التحرير.
v1.9 (2024-03-15):
v1.8.2 (2023-01-10):
v1.8.1 (2022-08-23):
v1.8 (2022-03-12):
v1.7.9 (2021-10-02):
v1.7.8.1 (2021-06-13):
v1.7.8 (2021-06-09):
inode_cachev1.7.7 (2021-04-12):
v1.7.6 (2021-01-14):
v1.7.5 (2020-10-31):
v1.7.4 (2020-08-23):
v1.7.3 (2020-05-24):
v1.7.2 (2020-04-10):
v1.7.1 (2020-03-02):
v1.7 (2020-02-26):
case=dirv1.6 (2020-02-04):
v1.5 (2019-11-10):
v1.4 (2019-08-31):
v1.3 (2019-06-10):
v1.2.1 (2019-05-06):
v1.2 (2019-05-05):
v1.1 (2018-12-15):
v1.0.2 (2018-05-19):
v1.0.1 (2017-10-15):
v1.0 (2017-09-04):
free_space_cache )v0.10 (2017-05-02):
btrfs checkv0.9 (2017-03-05):
v0.8 (2016-12-30):
btrfs fi usagev0.7 (2016-10-24):
raid56 )v0.6 (2016-08-21):
v0.5 (2016-07-24):
v0.4 (2016-05-02):
v0.3 (2016-03-25):
btrfs checkv0.2 (2016-03-13):
CcCopyReadv0.1 (2016-02-21):
لدى WinBTRFS ثلاثة مستويات من رسائل التصحيح: الأخطاء والإصلاحات ، والتحذيرات ، والآثار. يعرض إصدار الإصدار من برنامج التشغيل فقط الأخطاء والإصلاحات ، والتي يسجلها عبر DbgPrint . يمكنك عرض هذه الرسائل عبر برنامج Microsoft DebugView ، المتاح على https://technet.microsoft.com/en-gb/sysinternals/debugview.
إذا كنت ترغب في الإبلاغ عن مشكلة ، فسيكون ذلك مفيدًا إذا تمكنت أيضًا من إرفاق سجل تصحيح كامل. للقيام بذلك ، ستحتاج إلى استخدام إصدارات تصحيح السائقين ؛ انسخ الملفات في Debug x64 أو Debug x86 إلى x64 أو x86. ستحتاج أيضًا إلى تعيين إدخالات التسجيل في HKLM System CurrentControlset Services Btrfs:
DebugLogLevel (DWORD): 0 لعدم وجود رسائل ، 1 للأخطاء والإصلاحات ، 2 للتحذيرات أيضًا ، و 3 لكل شيء على الإطلاق ، بما في ذلك الآثار.LogDevice (سلسلة ، اختيارية): الجهاز التسلسلي الذي تريد الإخراج إليه ، مثل DeviceSerial0 . ربما يكون هذا مفيدًا فقط على الأجهزة الافتراضية.LogFile (سلسلة ، اختيارية): الملف الذي ترغب في الإخراج إليه ، إذا لم يتم تعيين LogDevice . ضع في اعتبارك أن هذا اسم ملف kernel ، لذلك يجب عليك بادئة " ؟؟ " (على سبيل المثال ، " ؟؟ c: btrfs.log"). من المحتمل أن يكون من دون القول ، لكن لا تخزن هذا على وحدة تخزينها التي يستخدمها السائق نفسه ، أو ستتسبب في حلقة لا حصر لها. سيقوم برنامج التشغيل بإنشاء مفاتيح فرعية في السجل تحت HKLM System CurrentControlset Services BTRFs لكل نظام ملفات مثبتة ، سميت على اسم UUID. إذا لم تكن متأكدًا من أي Uuid يشير إلى مستوى الصوت ، فيمكنك التحقق من استخدام btrfs fi show على Linux. يمكنك إضافة خيارات التثبيت لكل الحجم إلى هذا المفتاح الفرعي ، والتي ستصبح سارية المفعول عند إعادة التشغيل. إذا تم تعيين قيمة في المفتاح أعلاه ، فستستخدم هذا افتراضيًا.
Ignore (DWORD): اضبط هذا على 1 لإخبار السائق بعدم محاولة تحميل نظام الملفات هذا. مع العلم Readonly ، ربما يكون هذا زائدا.
Readonly (dword): اضبط هذا على 1 لإخبار السائق بعدم السماح للكتابة إلى هذا المجلد. هذا هو ما يعادل علامة ro على Linux.
Compress (dword): اضبط هذا على 1 لإخبار برنامج التشغيل لكتابة الملفات على أنها مضغوطة بشكل افتراضي. هذا هو ما يعادل علامة compress على Linux.
CompressForce (DWORD): اضبط هذا على 1 لفرض الضغط ، أي لتجاهل علامة inode nocompress وحتى محاولة ضغط الملفات غير القابلة للضغط. هذه ليست فكرة جيدة ، ولكنها تعادل علامة compress-force على Linux.
CompressType (dword): اضبط هذا على 1 ليفضل ضغط Zlib ، 2 ليفضل ضغط LZO ، أو 3 ليفضل ضغط ZSTD. الافتراضي هو 0 ، والذي يستخدم ضغط ZSTD أو LZO إذا تم تعيين أعلام عدم التوافق ، و Zlib خلاف ذلك.
FlushInterval (Dword): الفاصل الزمني في ثوان بين التدفقات الوصفية. الافتراضي هو 30 ، كما في Linux - المعلمة تسمى commit هناك.
ZlibLevel (Dword): رقم بين -1 و 9 ، والذي يحدد مقدار وقت وحدة المعالجة المركزية التي يقضي في محاولة لضغط الملفات. قد ترغب في التعبئة مع هذا إذا كان لديك وحدة المعالجة المركزية السريعة ولكن قرص بطيء ، أو العكس. الافتراضي هو 3 ، وهي القيمة المرمزة على Linux.
MaxInline (DWORD): الحد الأقصى للحجم الذي سيتم السماح به لملفات "مضمّنة" ، أي تلك المخزنة في البيانات الوصفية. الافتراضي هو 2048 ، وهو أيضًا الافتراضي على الإصدارات الحديثة من Linux - تسمى المعلمة max_inline هناك. سيتم قصها إلى الحد الأقصى للقيمة ، والتي ما لم تقم بتغيير حجم العقدة الخاص بك سيكون ظلًا أقل من 16 كيلو بايت.
SubvolId (Qword): معرف الحجم الفرعي الذي سنحاول التثبيت كجذر. إذا لم تكن موجودة ، فسيتم تجاهل هذه المعلمة بصمت. يمكن العثور على معرف الحجم الفرعي على ورقة خاصية inode ؛ إنه موجود في Hex ، بدلاً من العشرية على أدوات Linux. الافتراضي هو كل ما تم تعيينه عبر btrfs subvolume set-default ؛ أو ، إذا فشل ذلك ، فإن الحجم الفرعي 5. المعلمة المكافئة على Linux تسمى subvolid .
SkipBalance (DWORD): اضبط على 1 لإخبار السائق بعدم محاولة استئناف توازن كان يعمل عند تشغيل النظام. الافتراضي هو 0. المعلمة المكافئة على Linux هي skip_balance .
NoPNP (DWORD): مفيد لتصحيح الأخطاء فقط ، وهذا يجبر أي مجلدات على الظهور بدلاً من تعريضها عبر طريقة التوصيل والتشغيل المعتادة.
ZstdLevel (DWORD): مستوى ضغط ZSTD ، الافتراضي 3.
NoTrim (DWORD): اضبط هذا على 1 لتعطيل الدعم.
AllowDegraded (DWORD): اضبط هذا على 1 للسماح بتركيب وحدة تخزين متدهور ، أي واحد مع جهاز مفقود. ينصح بشدة بعدم تمكين هذا ما لم تكن بحاجة إلى ذلك.
NoRootDir (DWORD): إذا قمت بتغيير حسابك الفرعي الافتراضي ، إما أصليًا أو بواسطة خيار التسجيل ، فسيكون هناك دليل مخفي يسمى $ Root والذي يشير إلى مكان الجذر عادة. اضبط هذه القيمة على 1 لمنع ظهور هذا.
NoDataCOW (DWORD): اضبط هذا على 1 لتعطيل النسخ على المكاتب للملفات الجديدة. هذا هو ما يعادل علامة nodatacow على Linux.
أقدر أي ردود فعل قد تكون لديك ، إيجابية أو سلبية: [email protected].
يحتوي هذا الرمز على أجزاء من البرنامج التالي:
حقوق الطبع والنشر (C) 1995-2017 Jean-Loup Gailly و Mark Adler
يتم توفير هذا البرنامج "AS-IS" ، دون أي ضمان صريح أو ضمني. لن يتحمل المؤلفون بأي حال من الأحوال مسؤولية أي أضرار تنشأ عن استخدام هذا البرنامج.
يتم منح الإذن لأي شخص لاستخدام هذا البرنامج لأي غرض ، بما في ذلك التطبيقات التجارية ، وتغييره وإعادة توزيعه بحرية ، مع مراعاة القيود التالية:
يحتوي WinBtrfs على أجزاء من النسخة المبكرة من LZO ، وهي حقوق الطبع والنشر 1996 Markus Oberhumer. الإصدارات الحديثة مرخصة بموجب GPL ، ولكن تم ترخيص ذلك بموجب LGPL ، لذلك أعتقد أنه من الجيد الاستخدام.
حقوق الطبع والنشر (C) 2016-Present ، Facebook ، Inc. جميع الحقوق محفوظة.
يُسمح بإعادة التوزيع والاستخدام في النماذج المصدر والثنائية ، مع أو بدون تعديل ، شريطة استيفاء الشروط التالية:
يجب أن تحتفظ إعادة توزيع رمز المصدر بإشعار حقوق الطبع والنشر أعلاه ، وقائمة الشروط هذه وإخلاء المسؤولية التالية.
يجب أن تقوم إعادة التوزيع في النموذج الثنائي بإعادة إنتاج إشعار حقوق الطبع والنشر أعلاه ، وقائمة الشروط هذه وإخلاء المسؤولية التالية في الوثائق و/أو المواد الأخرى المتوفرة مع التوزيع.
لا يجوز استخدام اسم Facebook أو أسماء المساهمين لاتفاق أو الترويج للمنتجات المستمدة من هذا البرنامج دون إذن كتابي مسبق محدد.
يتم توفير هذا البرنامج من قبل حاملي حقوق الطبع والنشر والمساهمين "كما هو" وأي ضمانات صريحة أو ضمنية ، بما في ذلك ، على سبيل المثال لا الحصر ، الضمانات الضمنية للتسويق والملاءمة لغرض معين. لا يجوز بأي حال من الأحوال أن يتحمل حامل حقوق الطبع والنشر أو المساهمين أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو مثالية أو مثالية (بما في ذلك ، على سبيل المثال لا الحصر ، شراء السلع أو الخدمات البديلة ؛ إمكانية هذا الضرر.
https://github.com/blake2/blake2 (المجال العام)
https://github.com/amosnier/sha-2 (المجال العام)