ไดรเวอร์ btrfs โอเพนซอร์สสำหรับ Windows, WinBtrfs
(github.com/maharmstone)- WinBtrfs v1.9 เป็นไดรเวอร์ที่ทำให้สามารถอ่านและเขียนระบบไฟล์ Btrfs ของ Linux บน Windows ได้ และถูกเขียนขึ้นใหม่ตั้งแต่ต้นโดยไม่ใช้โค้ดเคอร์เนลของ Linux
- ควรทำงานได้บน Windows XP และเวอร์ชันหลังจากนั้น รวมอยู่ในระบบปฏิบัติการฟรี ReactOS ด้วย และหาก Btrfs อยู่บน MD software RAID ของ Linux จะต้องใช้ WinMD แยกต่างหาก
- ขอบเขตฟีเจอร์ครอบคลุมการอ่าน/เขียน, RAID0/1/10/5/6, subvolume และ snapshot, reflink copy, send/receive, การบีบอัด zlib/LZO/Zstd, รองรับ LXSS ไปจนถึง ACL, ADS และการแมปสิทธิ์
- การติดตั้งทำได้โดยดาวน์โหลดรีลีสล่าสุดแล้วติดตั้ง
btrfs.infหรือใช้ Chocolatey/Scoop และในสภาพแวดล้อม Secure Boot ของ Windows 10/11 อาจต้องแก้รีจิสทรีหรือปิด Secure Boot - โปรเจกต์เผยแพร่ภายใต้ LGPL แต่ไม่รับผิดชอบต่อความเสียหายของระบบไฟล์ และแม้จะระบุว่าควรเหมาะกับการใช้งานประจำวัน ก็ยังแนะนำให้ทำ backup
WinBtrfs ทำอะไร
- WinBtrfs เป็นไดรเวอร์ Windows สำหรับ Btrfs ซึ่งเป็นระบบไฟล์ยุคถัดไปของ Linux
- ถูกเขียนขึ้นใหม่ตั้งแต่ต้นโดยไม่รวมโค้ดเคอร์เนลของ Linux และควรทำงานได้บน Windows XP และเวอร์ชันหลังจากนั้น
- รวมอยู่ในระบบปฏิบัติการฟรี ReactOS ด้วย
- หากระบบไฟล์ Btrfs อยู่บนอุปกรณ์ MD software RAID ที่สร้างบน Linux การทำให้มองเห็นบน Windows ต้องใช้ WinMD
- โปรเจกต์ที่เกี่ยวข้องมี Quibble ซึ่งเป็น bootloader เชิงทดลองที่ทำให้ Windows บูตจาก Btrfs ได้ และ Ntfs2btrfs สำหรับแปลงระบบไฟล์ NTFS แบบ inplace
ฟีเจอร์ที่รองรับ
- ฟีเจอร์พื้นฐาน
- อ่านและเขียน ระบบไฟล์ Btrfs
- ค้นพบพาร์ทิชัน Btrfs ที่ปกติ Windows จะมองข้าม
- โวลุ่ม Btrfs แบบไม่มีพาร์ทิชัน
- การอ่านและเขียนแบบ asynchronous
- caching, free-space cache, free space tree
- RAID และการจัดการโวลุ่ม
- RAID0, RAID1, RAID10
- RAID5, RAID6
- balancing รวมถึงการ resume balance ที่เริ่มจาก Linux
- เพิ่มและลบอุปกรณ์
- degraded mount
- ย่อและขยายโวลุ่ม
- ฟีเจอร์ระบบไฟล์
- shell extension สำหรับสร้างและระบุ subvolume กับ snapshot
- hard link, symbolic link, reparse point
- sparse file, preallocation
- reflink copy
- subvolume send และ receive
- scrubbing, TRIM/DISCARD
- การทำงานร่วมกันระหว่าง Windows และ Linux
- นำเข้าและตั้งค่า ACL เป็น xattr
security.NTACL - เก็บ Alternate Data Streams เป็น xattr เช่น
:Zone.Identifierจะถูกเก็บเป็นuser.Zone.Identifier - แมปผู้ใช้ Linux กับผู้ใช้ Windows
- รองรับ LXSS หรือ “Ubuntu on Windows”
- passthrough metadata เช่นสิทธิ์สำหรับ LXSS
- รองรับแฟล็กไดเรกทอรีแบบแยกตัวพิมพ์ใหญ่-เล็กของ Windows 10
- นำเข้าและตั้งค่า ACL เป็น xattr
- การบีบอัดและฟีเจอร์ความเข้ากันได้
- การบีบอัด zlib, LZO, Zstd
- รองรับ Metadata UUID incompat flag ตาม Linux 5.0
- รองรับ RAID1 แบบ 3/4 ดิสก์ และ checksum แบบ xxhash, sha256, blake2 ตาม Linux 5.5
- รองรับ block group tree ตาม Linux 6.1
งานที่ยังเหลือ
- การรองรับ fs-verity เต็มรูปแบบยังอยู่ในรายการของ Linux 5.15
- การรองรับ Zoned ยังอยู่ในรายการของ Linux 5.11 พร้อมข้อสังเกตว่า HM-SMR อาจไม่รองรับบน Windows
- รายการสิ่งที่ต้องทำยังมี defragmentation, Btrfs quota, การรองรับ transaction log แบบเต็ม และการรองรับ TxF ซึ่งเป็น Windows transactions
การติดตั้งและถอนการติดตั้ง
- การติดตั้งทำได้โดยดาวน์โหลด รีลีสล่าสุด แตกไฟล์ แล้วคลิกขวา
btrfs.infเลือก Install - ไดรเวอร์มีลายเซ็นแล้ว จึงควรทำงานได้ทันทีบน Windows รุ่นใหม่
- หากเปิด Secure Boot บน Windows 10 หรือ 11 อาจต้องแก้รีจิสทรีเพื่อให้โหลดไดรเวอร์ได้
- มีการเสนอวิธีที่ง่ายกว่าคือปิด Secure Boot ใน BIOS
- ระบุว่า Windows 11 ต้องการ Secure Boot แบบไม่เข้มงวดตอนติดตั้ง แต่หลังติดตั้งแล้วแม้ปิดก็ยังทำงานได้
- สามารถติดตั้งผ่าน package manager ได้ด้วย
- Chocolatey:
choco install winbtrfs - Scoop:
scoop bucket add nonportable,scoop install winbtrfs-np -g
- Chocolatey:
- การถอนการติดตั้งทำได้ด้วยคำสั่ง
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 btrfs.infหรือถอน “Btrfs controller” ใน Device Manager - หากต้องถอนผ่านรีจิสทรี ให้ตั้งค่า
HKLM\SYSTEM\CurrentControlSet\services\btrfs\Startเป็น 4 เพื่อปิดบริการ จากนั้นรีบูตแล้วลบคีย์และC:\Windows\System32\drivers\btrfs.sys
การ build และการแมปผู้ใช้
- หากต้องการ build ด้วย Visual C++ 2019 ให้เปิดไดเรกทอรีแล้วให้ CMake จัดการ และควรทำงานได้หากติดตั้ง Windows DDK อย่างถูกต้อง
- หากต้องการ build ด้วย GCC บน Linux ต้องใช้ cross compiler
i686-w64-mingw32หรือx86_64-w64-mingw32 - การแมปผู้ใช้ถูกเก็บในคีย์รีจิสทรี
HKLM\SYSTEM\CurrentControlSet\services\btrfs\Mappings- สร้าง DWORD ที่มีชื่อเป็น Windows SID แล้วใส่ค่า Linux uid
- ตรวจสอบ SID ปัจจุบันได้ด้วย
wmic useraccount get name,sid
- การแมปกลุ่มถูกเก็บไว้ใต้
GroupMappings- รายการเริ่มต้นแมปกลุ่ม Users ของ Windows ไปยัง gid 100 ซึ่งโดยทั่วไปคือ
usersบน Linux - สามารถระบุ SID ของผู้ใช้เพื่อให้ไฟล์ที่ผู้ใช้บางคนสร้างอยู่ในกลุ่มที่กำหนดได้
- รายการเริ่มต้นแมปกลุ่ม Users ของ Windows ไปยัง gid 100 ซึ่งโดยทั่วไปคือ
- มีข้อควรระวังคือโปรเซสที่รันด้วย User Access Control token จะสร้างไฟล์ด้วย SID
BUILTIN\Administratorsไม่ใช่บัญชีผู้ใช้
รองรับ WSL/LXSS
- ไดรเวอร์สามารถ passthrough metadata ของ Linux ไปยัง LXSS เวอร์ชันล่าสุดได้
- หากต้องการใช้ ให้ตั้งค่า
/etc/wsl.confจาก Bash prompt ของ Windows ในรูปแบบต่อไปนี้[automount]enabled = trueoptions = "metadata"mountFsTab = false
- การเปลี่ยนแปลงจะมีผลในการรีบูตครั้งถัดไป
- ระบุว่าควรสามารถ chroot เข้าสู่สภาพแวดล้อมติดตั้ง Linux จริงได้
งานผ่าน command line
shellbtrfs.dllมีอินเทอร์เฟซ GUI แต่สามารถรันงานบางอย่างจาก command line ด้วยrundll32.exeได้rundll32ไม่มีวิธีคืนค่า error code ดังนั้นคำสั่งอาจ ล้มเหลวแบบเงียบ ๆ- คำสั่งทั่วไป
CreateSubvol <path>CreateSnapshot <source> <destination>ReflinkCopy <source> <destination>และสามารถรับ wildcard กับไฟล์ต้นทางหลายไฟล์ได้
- คำสั่งที่ต้องใช้สิทธิ์ administrator
SendSubvol <source> [-p <parent>] [-c <clone subvol>] <stream file>RecvSubvol <stream file> <destination>StartScrub <drive>StopScrub <drive>
ข้อจำกัดสำคัญในการแก้ปัญหา
- ถือว่าชื่อไฟล์ทั้งหมดถูกเข้ารหัสเป็น UTF-8
- ระบุว่าใน Windows 10 รุ่นหลัง ๆ ที่เปิด Secure Boot มีเงื่อนไขที่ดูเหมือนจะใช้กับไดรเวอร์โอเพนซอร์สไม่ได้ เนื่องจากข้อกำหนดด้านลายเซ็นของ Microsoft
- วิธีเลี่ยงคือสร้าง DWORD
UpgradedSystemที่HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policyตั้งค่าเป็น 1 แล้วรีบูต - หรือปิด Secure Boot ใน BIOS
- วิธีเลี่ยงคือสร้าง DWORD
- การที่ root ของไดรฟ์ใน LXSS ไม่แยกตัวพิมพ์ใหญ่-เล็กเป็นพฤติกรรมที่ Microsoft hardcode ไว้
- ไม่สามารถเพิ่ม Btrfs ลงใน dialog format ของ Windows เองได้ เพราะรายการระบบไฟล์ถูก hardcode ไว้
- การ format เป็น Btrfs ใช้
mkbtrfs.exeที่รวมมาให้ - หากไม่ต้องการ option เฉพาะของ Btrfs ก็ใช้
format /fs:btrfsได้เช่นกัน
- การ format เป็น Btrfs ใช้
- Synology NAS ดูเหมือนจะใช้ LVM บนอุปกรณ์บล็อก จึง mount ไม่ได้หากไม่มีไดรเวอร์ LVM สำหรับ Windows
- Thecus NAS ใช้ Linux MD RAID จึงต้องติดตั้ง WinMD ร่วมด้วย
- โมเดลสิทธิ์ของ Windows และ POSIX แตกต่างกันมากเกินไปจนไม่มีการแมปที่ใช้ได้จริง และสำหรับไฟล์ที่ไม่ต้องการให้แก้ไขบน Windows สามารถสร้าง Windows ACL ได้
การเปลี่ยนแปลงใน v1.9
- v1.9 รีลีสเมื่อวันที่ 15 มีนาคม 2024
- เพิ่มการรองรับ block group tree ของ Linux 6.1
- แก้ปัญหาระบบค้างเมื่ออยู่ภายใต้โหลดสูง
- เพิ่ม option
/blockgrouptree,/freespacetreeให้mkbtrfs - ปรับค่าเริ่มต้น
/noholesในmkbtrfsให้เปิดอยู่เหมือน Linux - เพิ่มการรองรับคำสั่ง CRC32C บน aarch64
Debug และ mount options
- WinBtrfs แบ่ง debug message เป็นสามระดับ ได้แก่ errors/FIXMEs, warnings, traces
- ไดรเวอร์เวอร์ชัน release จะบันทึกเฉพาะ errors และ FIXMEs ผ่าน
DbgPrintและดูได้ด้วย Microsoft DebugView - หากต้องการแนบ debug log เต็มเมื่อรายงานปัญหา ให้ใช้ไดรเวอร์เวอร์ชัน debug และตั้งค่ารีจิสทรี
DebugLogLevel: 0 คือไม่มีข้อความ, 1 คือ errors/FIXMEs, 2 รวม warnings, 3 รวมทั้งหมดถึง tracesLogDevice: เป็นตัวเลือก อุปกรณ์ serial ที่จะส่งออกLogFile: เป็นตัวเลือก ไฟล์ที่จะส่งออก
- mount options ถูกเก็บไว้ในคีย์ย่อย UUID ของแต่ละระบบไฟล์ใต้
HKLM\SYSTEM\CurrentControlSet\Services\btrfs - option หลัก
Ignore: ไม่โหลดระบบไฟล์นั้นReadonly: ไม่อนุญาตให้เขียนเหมือนแฟล็กroของ LinuxCompress,CompressForce,CompressType: ตั้งค่าการบีบอัดเริ่มต้น, บังคับบีบอัด, รูปแบบการบีบอัดที่ต้องการFlushInterval: ช่วงเวลา flush metadata ค่าเริ่มต้นคือ 30 วินาทีเหมือน LinuxSubvolId: ID ของ subvolume ที่จะ mount เป็น rootSkipBalance: ข้ามการ resume balance ที่กำลังดำเนินอยู่ตอนปิดเครื่องครั้งล่าสุดNoTrim: ปิดการรองรับ TRIMAllowDegraded: อนุญาตให้ mount โวลุ่ม degraded ที่มีอุปกรณ์หายไปNoDataCOW: ปิด copy-on-write สำหรับไฟล์ใหม่ เหมือนแฟล็กnodatacowของ Linux
ไลเซนส์และขอบเขตความรับผิดชอบ
- โปรเจกต์ทั้งหมดเผยแพร่ภายใต้ GNU Lesser General Public Licence หรือ LGPL
- ระบุว่าการใช้ซอฟต์แวร์เป็นความรับผิดชอบของผู้ใช้เอง และไม่รับผิดชอบต่อความเสียหายที่อาจเกิดกับระบบไฟล์
- แม้จะระบุว่าควรเหมาะสำหรับการใช้งานประจำวัน แต่ก็แนะนำให้ทำ backup
- มีประกาศลิขสิทธิ์และไลเซนส์ของโค้ดบุคคลที่สามที่รวมอยู่ เช่น Zlib, LZO, Zstd, BLAKE2, SHA256
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เคยอยากลองใช้อยู่พักหนึ่ง แต่พอไล่อ่าน issue ใน GitHub แล้วก็ถอดใจทันที
เห็นปัญหาอย่าง จอฟ้า, ค้าง, การใช้งานพุ่งสูง, และข้อมูลเสียหาย ถ้ามีไดรเวอร์ btrfs/ZFS ที่เสถียร ผมก็ยินดีจ่ายเงิน
ไม่ค่อยเข้าใจว่าทำไมโปรเจกต์แบบนี้ถึงไม่ได้รับความสนใจมากกว่านี้
ดังนั้นแม้ปัญหาที่พูดถึงข้างต้นจะถูกแก้แล้ว การบูต Windows จาก btrfs ก็ยังมีแนวโน้มว่าจะยากอยู่ดี
เข้าเมืองตาหลิ่วต้องหลิ่วตาตาม บางที Windows อาจควรรันผ่านการทำ virtualization เท่านั้นก็ได้
จุดที่บอกว่า เขียนใหม่ทั้งหมด โดยไม่ใช้โค้ดของ Linux นี่เจ๋งจริง ๆ และการรองรับไปถึง XP/2k3 กับ ReactOS ก็ยอดเยี่ยม
คงต้องลองใช้กับเครื่องเก่าเครื่องหนึ่งดู
ไม่แน่ใจว่าควรลิงก์เรื่องนี้ไปที่ไหน แต่มี issue ของไลบรารี QUIC แบบไม่มี I/O ที่โพสต์ไว้ในปี 2019: https://github.com/aiortc/aioquic/issues/4
ถ้าระบบไฟล์ทำตามแพตเทิร์นนี้ได้ก็คงดีมาก
ถ้านำตรรกะของระบบไฟล์มาใช้ซ้ำ แล้วปรับใช้กับ Windows, FUSE, Linux, ที่เก็บข้อมูลแบบ linear address ของ wasm ฯลฯ ได้ ความสามารถในการพอร์ต การนำกลับมาใช้ซ้ำ และการแฮ็กต่อยอดก็น่าจะเพิ่มขึ้นอย่างมหาศาล
บทความที่เกี่ยวข้อง:
WinBtrfs – A Windows driver for the next-generation Linux filesystem Btrfs - https://news.ycombinator.com/item?id=15177002 - กันยายน 2017, 100 ความคิดเห็น
WinBtrfs v0.7 - https://news.ycombinator.com/item?id=12794214 - ตุลาคม 2016, 1 ความคิดเห็น
เมื่อไม่กี่สัปดาห์ก่อนลองใช้กับฮาร์ดไดรฟ์ btrfs แต่ทำให้ทำงานได้ไม่สำเร็จ
หลังจากนั้นลองเข้าถึงผ่าน WSL ช่วงแรกก็ใช้ได้อยู่ไม่กี่ครั้ง แต่ค่อย ๆ เริ่มล้มเหลวมากขึ้น และสุดท้ายแม้แต่เมานต์ก็ไม่ได้
สุดท้ายถึงนึกได้ว่าบูตด้วย Linux live ISO แล้วคัดลอก/ย้ายไฟล์ระหว่างไดรฟ์ Windows กับไดรฟ์ btrfs ก็พอ ตอนนี้เลยใช้ Fedora Workstation live ISO บน Ventoy USB อยู่
ตอนนี้ใน Windows ก็ทำข้อมูลหายด้วย btrfs ได้แล้ว :-D
ใช้ไดรเวอร์นี้บนแล็ปท็อปมาสักพักแล้ว
เป็นสภาพแวดล้อมที่ใช้ร่วมกัน โดยบน Linux ใช้เขียนโค้ดงาน ส่วนบน Windows ใช้เล่นเกม·ดูหนัง·มีเดีย
ถ้ากังวลเรื่องข้อมูลเสียหายในพาร์ทิชันและไดรฟ์ btrfs ให้โฟกัสที่ ตัวเลือกการเมานต์ ใน README
สำหรับพาร์ทิชันระบบ Arch Linux ใช้
Ignoreและที่เหลือทั้งหมดใช้Readonlyก็พออย่างไรก็ตาม แม้จะเมานต์ HDD ภายนอก 20TB ที่ใช้การบีบอัด btrfs
zstd:2แบบเต็ม ๆ ผมก็ไม่เคยเจอ CPU พุ่งหรือข้อมูลเสียหายแนะนำให้อ่าน README ทั้งหมด
ผู้เขียนตอบคำถามที่ผมสงสัยไว้แล้ว และยังมีเนื้อหาอีกมากกว่านั้นด้วย
สงสัยว่าอันนี้บอกว่ารองรับ RAID 5/6 แบบ “พื้นฐานและขั้นสูง” ได้อย่างไร
ตัว btrfs เองไม่ได้เป็นแบบนั้น และก็ไม่ชัดว่า “พื้นฐาน/ขั้นสูง” ที่พูดถึงตรงนี้หมายถึงอะไร: https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid5...
Linux btrfs โดยทั่วไปก็รองรับ RAID5 แต่มี edge case ที่รู้จักกันซึ่งทำให้ใช้อย่างปลอดภัยได้ยาก
ในทางปฏิบัติใกล้เคียงกับ “ใช้งานได้แต่ยังเป็นเชิงทดลองและเหมาะสำหรับนักพัฒนาเท่านั้น”
WinBtrfs แค่ระบุโหมด RAID5 ไว้เป็นหนึ่งในฟีเจอร์ แต่ไม่ได้ลงรายละเอียดว่ามันทำงานได้ดีแค่ไหน
คำถามใน issue ที่เกี่ยวข้องก็ถูกปิดไปโดยไม่มีคำตอบที่เป็นสาระ: https://github.com/maharmstone/btrfs/issues/293
ก่อนจะได้คำตอบที่ชัดเจนจากนักพัฒนาเรื่องสถานะและการทดสอบ ผมจะไม่ฝากข้อมูลไว้กับ RAID 5/6
ไม่รู้เหมือนกันว่าทำไม แต่อาจเป็นเพราะอย่างแรกไม่ต้องใช้การคำนวณพาริตีแบบ “ขั้นสูง” ก็ได้
เคยใช้ไดรเวอร์นี้กับ btrfs เพื่อเติมไลบรารีไว้ล่วงหน้าบน Steam Deck
ถ้าดาวน์โหลดผ่านเครือข่ายจะใช้เวลานานเกินไป และด้วยอินเทอร์เน็ตตอนนั้นคงใช้เวลานานกว่านั้นราว 100 เท่า
นี่อาจเป็น *ระบบไฟล์แรกหลังจาก FAT ที่ใช้งานได้เลยบน nix, Mac และ Windows ก็ได้
ยอดเยี่ยม
ถ้ามีใครใช้ระยะยาวหรือใช้ในโปรดักชันอยู่ ก็อยากรู้ว่าประสบการณ์จริงเป็นอย่างไร
เห็นว่ารองรับ TRIM แล้ว แต่สงสัยว่ารองรับ RETRIM ด้วยหรือไม่
หมายถึงฟีเจอร์ที่จำเป็นสำหรับการปล่อยพื้นที่ที่ตอนแรกไม่สามารถ TRIM ได้เพราะคิวคำสั่งเต็ม ระหว่างการเพิ่มประสิทธิภาพไดรฟ์
และก็อยากรู้ด้วยว่าสำหรับคนที่ไม่ชอบ ReFS มันพอจะใช้เป็น ตัวทดแทน NTFS ที่มี data parity ได้ไหม รวมถึงเมื่อเทียบกับ ZFS สำหรับ Windows แล้วมันสุกงอมแค่ไหน
เป็นคอนฟิกที่มีพาร์ทิชัน Windows, พาร์ทิชัน Linux (btrfs บน LUKS) และพาร์ทิชัน btrfs ที่สามไว้เก็บไฟล์
ไม่ได้ใช้บ่อยนัก แต่เวลาที่ใช้ก็แทบไม่รู้สึกถึงการมีอยู่ของมันเลย
รู้สึกเหมือน Windows อ่าน btrfs ได้แบบเนทีฟมาตั้งแต่แรก และในการใช้งานระดับแค่เข้าถึง·แก้ไข·ลบไฟล์ธรรมดา ๆ ก็ไม่ได้ใช้ฟีเจอร์ “ขั้นสูง” อะไรเป็นพิเศษ
พอรู้ตัวแล้ว cancel build ก็พบว่ามีโฟลเดอร์ชื่อเดียวกันแต่เนื้อหาต่างกันเกิดขึ้นสองโฟลเดอร์ และต้องลบชื่อโฟลเดอร์เดิมซ้ำสองครั้ง
ดูเหมือนไดรเวอร์นี้จะมี ปัญหาเรื่อง concurrency
“Win OpenZFS driver and WinBtrfs driver dont play well with each other”
https://github.com/openzfsonwindows/openzfs/issues/364
เท่าที่ได้ยินมา BTRFS มีรายการบั๊กที่แค่แตะผิดนิดเดียวก็อาจค้างหรือทำให้ข้อมูลเสียหายได้ยาวจนน่าขัน
การเอาสิ่งที่ความน่าเชื่อถือยังน่าสงสัยแม้บนระบบปฏิบัติการเนทีฟของมันเอง มายัดใช้บน Windows นี่แทบจะบ้าไปแล้ว
ถ้าลองเล่นเพื่อความสนุกก็ได้ แต่ผมจะไม่ฝากข้อมูลจริงไว้กับชุดนี้เด็ดขาด
“บน mirror 2 ดิสก์ของผมก็ใช้ได้ดีนะ” เป็นแค่เรื่องเล่าเฉพาะกรณี ไม่ใช่ข้อมูล
สงสัยว่าถ้าใช้สิ่งนี้ จะทำให้ บูต Windows 10/11 จาก USB stick ของ Windows ที่ฟอร์แมตเป็น btrfs ได้หรือไม่
จากประสบการณ์ที่เคยใช้ Windows 10 แบบนั้นทุกวันอยู่พักหนึ่ง มันทำงานได้ค่อนข้างดี แต่มีข้อควรระวังอยู่บ้าง
ต้องมีการเชื่อมต่อ USB ที่เสถียร และต้องใช้ enclosure ไดรฟ์ USB ที่ชิปคอนโทรลเลอร์เสถียรและไม่ร้อนเกินไป
ตัวไดรฟ์ต้องทนต่อการสูญเสียไฟฟ้าได้ดี
น่าเสียดายที่ผมไม่รู้จักแหล่งข้อมูลที่ช่วยประเมินความสามารถในการรับมือไฟดับ
ไดรฟ์บางรุ่นอาจมีปัญหาหนักเมื่อไฟถูกตัดกะทันหัน
ผมมีประสบการณ์ที่ดีกับ Intel enterprise SATA SSD และไดรฟ์ NVMe ของ Dockcase ที่มีคาปาซิเตอร์
ถ้าไดรฟ์หายไป การจ่ายไฟใหม่อาจช่วยได้: https://dfarq.homeip.net/fix-dead-ssd/
ควรตั้งค่าแบ็กอัปอัตโนมัติไว้ด้วย
มีประโยชน์มากสำหรับการทดสอบประสิทธิภาพหรือการอัปเดตเฟิร์มแวร์ฮาร์ดแวร์ที่ทำได้เฉพาะบน Windows
เวลาเอาไปใช้สลับคอมพิวเตอร์หลายเครื่อง หลังบูต Windows มักจะงง ๆ แล้วต้องรีบูต จากนั้นจึงใช้งานได้
แต่ผมไม่เคยใช้ WinBTRFS หรือโปรเจกต์บูตโหลดเดอร์แยกต่างหาก และบูตโหลดเดอร์นั้นดูเหมือนจะพังอยู่ตั้งแต่หลายเดือนก่อน
การบูตไฟล์ Windows VHD ด้วย Ventoy ก็อาจเป็นตัวเลือกที่ดีเช่นกัน
ต้องมี บูตโหลดเดอร์ แยกต่างหากด้วย
ผู้เขียนได้ทำ implementation ชื่อ Quibble ไว้ และตัวนี้ก็รองรับ btrfs ด้วย
[0] https://github.com/maharmstone/quibble