A modern, high-performance C++20 / CMake solution that automatically detects Linux disks & USBs (when inserted or already present), validates and parses Linux data partitions (Ext2/3/4), strictly excludes boot/system/swap partitions, protects write safety with read-only enforcement, and projects data partitions as native Windows folders using Windows Projected File System (ProjFS).
- Automatic Disk & Hotplug Monitoring :
- Detects all existing physical drives (
PhysicalDrive0..PhysicalDriveN). - Listens in real-time for USB and external disk insertion and removal via Win32
WM_DEVICECHANGEdevice interface hooks.
- Detects all existing physical drives (
- Strict Data-Only Partition Filtering :
- Automatically inspects GPT and MBR partition tables.
- Allowed Data Partitions : Linux Filesystem Data, Linux
/home, Linux Root (x86_64,arm64,x86),/srv,/var, and user data partitions. - Excluded Partitions : EFI System Partitions (ESP), BIOS Boot, Linux
/boot, Linux Swap, Microsoft Reserved (MSR), Microsoft Recovery.
- Zero-Dependency Ext2/Ext3/Ext4 Engine :
- Built-in, self-contained parser supporting 64-bit block addressing, extents trees, directory hash/linear entries, fast & regular symlinks, and inode table parsing.
- Native Windows Explorer Integration (ProjFS) :
- Projects the Linux filesystem directly into
C:\LinuxDisks\Disk<N>_Part<M>using the Windows Projected File System. - Standard Windows Explorer operations: double-click to open files, view properties, drag-and-drop, and copy files/folders directly to Windows drives.
- Projects the Linux filesystem directly into
- Enforced Read-Only Safety :
- Drive handles opened strictly in
GENERIC_READmode withFILE_SHARE_READ | FILE_SHARE_WRITE. - File attributes tagged with
FILE_ATTRIBUTE_READONLY. - All write, modify, truncate, and delete operations are blocked (
ERROR_ACCESS_DENIED).
- Drive handles opened strictly in
- Memory-Resident Background Daemon & System Tray :
- Runs quietly in the notification area with a sleek context menu.
- Interactive permission prompt asking user consent for Windows startup.
- Desktop balloon notifications when Linux partitions are mounted or unmounted.
Linux2Win provides an integrated Windows Setup Wizard (linux2win_setup.exe):
- Interactive Startup Permission : Asks for permission to load on Windows startup in memory-resident background mode.
- Explorer Shortcuts : Automatically creates desktop and Start Menu shortcuts to
C:\LinuxDisks. - ProjFS Feature Activator : Enables the Windows Projected File System feature if not active.
- Clean Uninstallation : Registers with WindowsAdd or Remove Programs and generates
uninstall.exe.
.\linux2win.exe scan
.\linux2win.exe monitor
.\linux2win.exe auto
.\linux2win.exe mount <disk_index> <partition_number> [target_folder]
.\linux2win.exe mount 1 2 C:\LinuxDisks\Drive1_Part2
.\linux2win.exe ls <disk_index> <partition_number> [path]
.\linux2win.exe ls 1 2 /home/user
.\linux2win.exe cat <disk_index> <partition_number> <file_path>
.\linux2win.exe export <disk_index> <partition_number> <linux_path> <windows_target_dir>
.\linux2win.exe export 1 2 /etc/fstab C:\Users\YourUser\Desktop
- Visual Studio 2022 (with MSVC C++20 toolchain)
- CMake 3.20+
- Windows 10 (1809+) or Windows 11
git clone https://github.com/APS-PPR-2016/Linux2Win.git
cd Linux2Win
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
cd build
ctest -C Release --output-on-failure
cpack -C Release -G ZIP
If you find Linux2Win useful, please consider supporting the project:
This project is licensed under the MIT License.