Hoe Rufus het UEFI/BIOS-probleem oplost
Om ervoor te zorgen dat een Windowsinstallatie op een usb-schijf met elke pc kan booten, kun je bij Rufus instellen dat het systeem kan starten in zowel een UEFI- als een legacy BIOS-omgeving. Dat lijkt een contradictie, want van Windows ben je gewend dat er voorwaarden zijn: een Windows-installatie op een interne schijf boot in de legacy BIOS-modus alleen van gegevensdragers die een MBR-partitie hebben. In de UEFI-modus boot het systeem echter alleen vanaf een GPT-partitie. In dat geval moet de bootloader bovendien op een FAT-partitie staan.
Dat het Rufus desondanks toch lukt, komt doordat de vereisten minder stringent zijn dan je zou denken. Het is namelijk in de UEFI-modus prima mogelijk om Windows te booten vanaf een externe schijf met een MBR-partitie. Daarom gebruikt Rufus dat partitieschema en niet GPT.
De FAT-eis is in werkelijkheid ook niet hard. In de UEFI-specificatie staat wel dat elk UEFI-BIOS vanaf een FAT-partitie moet kunnen booten (waarmee naast FAT32 ook andere FAT-varianten bedoeld zijn), maar dat wil nog niet zeggen dat een UEFI-BIOS niet ook van partities kan booten die anders geformatteerd zijn. Dat het in de praktijk toch vaak uitdraait op ‘kan alleen op FAT’, komt omdat er in de meeste gevallen in het UEFIBIOS geen andere bestandssysteem-driver zit, maar er enkel een driver voor FAT aanwezig is.
Dat is waar Rufus in het spel komt: de tool creëert op de usb-schijf een kleine FAT-partitie waar niet de Windows-bootloader op staat, maar in feite alleen een read-only NTFS-driver die ervoor zorgt dat een UEFI-BIOS aansluitend de bootloader kan starten van de NTFS-partitie die achter de FAT-partitie zit. Die bevat naast de bootloader ook de Windows-installatie zelf. Rufus-ontwikkelaar Pete Batard heeft de driver beschikbaar gesteld als opensource-download op https://efi.akeo.ie/.