Win2Go Components

Vortex Acherontic 347 words 2 minutes win2go windows wim wimlib hivex dbus python dasbus bcd

Win2Go uses the following addional tools to acomplishit's mission.

Wimlib

Since the Windows install ISO isn't the only image format involved in the process of installing Windows. Win2Go also ships with wimlib which is used to analyze and extract the actual Windows Edition onto the UBS device. All Windows Editions found on an ISO image are contained in an install.wim archive.

Win2Go therefore uses wimlib to fetch all available version of Windows contained in such image and to extract the chosen image to the USB device.

Website

dasbus

Is a Python DBus abstraction library which is leveraged to actually talk to UDisk2 in the first place. Since Win2Go also mounts the ISO of Windows it has to tell Udisks2 where the actual image is located. For this the dbus interface involved requires a Unix File Descriptor to reference the ISO image on disk.

While there are many dbus abstractions for Python dasbus is one of the few (or the only one at all) which has support for file descriptors. Many other python dbus interfaces even pydbus, which is mentioned by DBus itself, does not support this.

Therefore, we use dasbus.

dasbus - Gihub

Hivex

Since working with Windows also sometimes involves working with Windows Registy files Win2Go uses hivex to do exactly this.

At the moment it is used to set up the BCD file which is part of Windows Bootloader. The BCD tells the bootloader where the actual Windows can be found in order to launch it.

In future release we also plan on using hivex to disable certain hardware checks of Windows 11 for an even more portable Windows.

Win2Go uses a premade boot.reg file which contains a few not Windows registry conformant placeholders to set up the bootloader. All we do is to collect the required information, replaces them in the boot.reg and then merge them using hivexregedit with the more or less empty default BCD file shipped by Win2Go.

This modified BCD file is then copied to the Windows Boot partition.

hivex GitHub