Hello all,
If you look in the Boot Tools section, you will see a new entry called Rufus. I am the author of this program.
Rufus, is a Windows utility that helps format and create bootable USB drives. It can do so using either DOS (embedded) or an user provided bootable ISO, such as Windows or Linux installation media.
Why would you want to use Rufus?
Rufus takes the approach compensating for a feature that should be enabled in every OS by default, which is the ability to quickly and easily create a bootable USB, either for DOS or from a bootable ISO.
With USB now being ubiquitous, we see little reason why, in 2012, the default Windows formatting dialog offers the option to create an obsolete bootable floppy, but not a more useful bootable USB.
As such we believe that, any Windows user, be them sysadmins or occasional users, should have the ability to quickly and painlessly create a bootable USB, and this is exactly what Rufus aims at providing.
- Need a DOS bootable USB to flash a BIOS or some other firmware? Launch Rufus, click the Start button, copy the ROM and flasher files and you're done.
- Have a bootable ISO that you'd like to convert to USB? Launch Rufus, select the ISO, click the Start button and that's it.
A bootable USB tool really shouldn't be more complicated than that!
Rufus Features
Now, while the above can be achieved with other tools (though we believe not as easily) this is what we think makes Rufus stand above the competition:
- Rufus is fast: It is usually quite a bit faster than the competition, especially because we use an internal ISO library (libcdio) while most other tools reuse 7z, which is actually slower than libcdio on extraction. For some speed comparison results, please see here.
- Rufus is small: Why should a bootable USB creation tool be more than 1 MB? Rufus is currently around 150 KB, and still offers ISO support.
- Rufus is simple to use: Its UI is very similar to the familiar Windows formatting dialog, and it doesn't bother the user with options that are confusing or unneeded.
- Rufus doesn't require an installer: An utility that does a simple task, that most users will only perform occasionally shouldn't require an installer. Just download, run it, and get done with it.
- Rufus keeps true to the original ISO content: Unlike other tools, Rufus does not override any of the config files that were set by the original creators - instead it just reuses them.
- Rufus is generic: A bootable USB creation tool should not have to ask its users about the type of ISO provided. This also ensures that the tool will support ISOs that have yet to be created. For a non exhaustive list of bootable ISOs Rufus is known to work with, please see here.
- Rufus can check devices for bad blocks: Up to 4 passes can be selected to find out if your media is defective. We believe that a formatting utility should always come with the ability to check for defects.
- Rufus will detect and set a non US locale (DOS): If the Windows version you use is set to a specific locale, you probably want DOS to use the same. Why should you be constrained to use DOS with an US keyboard? Rufus will detect and set the locale for you (while still providing the option to fall back to US keyboard during boot, if needed).
- Rufus can set an internationalized/extended label: If you format a disk to FAT, being constrained to 11 uppercase English characters for the label is very limiting. NTFS also has its limitations. Rufus can use the autorun/autoplay feature of Windows to display a label that contains any characters you like.
- There's a version of Rufus that comes with native FreeDOS: While slightly larger than the standard version of Rufus (~410 KB) it offers a more modern and much improved version of DOS. Check it out!
- Rufus is 100% Free Source: Rufus is released under GPLv3. If you're a developer and you really would like a new feature added, you very much can!
For additional info, you are invited to have a look at its entry in the downloads section or its official homepage.
For a more technical overview of how Rufus works, please read on.
![Posted Image]()
The utility originally started as a replacement for the venerable HPUSBFW tool and basically offers all the features HPUSBFW has, apart from the ability to provide external DOS files. The reason behind that is that we provide a version of Rufus with FreeDOS embedded, therefore use for external DOS files would be very limited. Thus, Rufus should detect and formats USB drives in pretty much the same fashion as HPUSBFW, except it uses ms-sys to create the DOS or FreeDOS boot sectors.
For ISO9660 and UDF support, Rufus relies on libcdio (which seems much faster than 7zip for extraction) and syslinux. The way isolinux config files are handled is by creating a /syslinux.cfg on the target (if needed) that references an already existing config file. So far, this method seems work very well, apart from a small issue with distros that use obsolete versions of vesamenu.c32. The application will also attempt to update the existing isolinux/syslinux config file, if a disk label is required by the kernel.
With this, the produced USB is as close as possible to the original ISO, while most recent isolinux based bootable ISOs should be supported in a generic fashion.
With regards to Windows support (Vista or later), we simply format the drive as NTFS (which, btw, is the only filesystem that can properly handle the > 4GB install.wim from the x64 version of the Windows 8 developer preview) and use ms-sys to add the NTFS record, along with the bootmgr we pick from the ISO.
Finally, if requested (and if none exists) Rufus can also add an autorun.inf and icon, to set a customized/internationalized label as well as a drive icon.
If you have comments or ideas for improvement, feel free to do so, knowing that:
- I am not planning to create a commandline version of the utility, since I'd rather see features added to it than have it reused in another application.
- I am not planning to look into multiboot. I think multiboot is way too user specific and I don't see a generic solution for it that I could find acceptable. Also, if people need a tool to create a multiboot USB for them, I don't think they should be using multiboot in the first place. This is even more true if a program like Rufus can manage to make it quick and easy to switch between ISOs instead of having to create a multiboot USB.
Right now, the next thing I'd like to support would be BartPE and XP, though this may be a bit of a challenge. I'm hoping that either the ISO's existing SETUPLDR.BIN can be used (even if it needs to be patched) or that ReactOS's freeldr can help. Basically, I'd like Rufus to support anything WinPE based.
I'm also aware about grub4dos and iPXE, though I'm not currently sure whether anything specific should be done there. It looks to me like simply installing a blank syslinux and letting users do the chainloading would be acceptable, especially as I'd like to keep the utility small.
Again, please don't hesitate to give Rufus a try and let me know what you think.
If you look in the Boot Tools section, you will see a new entry called Rufus. I am the author of this program.
Rufus, is a Windows utility that helps format and create bootable USB drives. It can do so using either DOS (embedded) or an user provided bootable ISO, such as Windows or Linux installation media.
Why would you want to use Rufus?
Rufus takes the approach compensating for a feature that should be enabled in every OS by default, which is the ability to quickly and easily create a bootable USB, either for DOS or from a bootable ISO.
With USB now being ubiquitous, we see little reason why, in 2012, the default Windows formatting dialog offers the option to create an obsolete bootable floppy, but not a more useful bootable USB.
As such we believe that, any Windows user, be them sysadmins or occasional users, should have the ability to quickly and painlessly create a bootable USB, and this is exactly what Rufus aims at providing.
- Need a DOS bootable USB to flash a BIOS or some other firmware? Launch Rufus, click the Start button, copy the ROM and flasher files and you're done.
- Have a bootable ISO that you'd like to convert to USB? Launch Rufus, select the ISO, click the Start button and that's it.
A bootable USB tool really shouldn't be more complicated than that!
Rufus Features
Now, while the above can be achieved with other tools (though we believe not as easily) this is what we think makes Rufus stand above the competition:
- Rufus is fast: It is usually quite a bit faster than the competition, especially because we use an internal ISO library (libcdio) while most other tools reuse 7z, which is actually slower than libcdio on extraction. For some speed comparison results, please see here.
- Rufus is small: Why should a bootable USB creation tool be more than 1 MB? Rufus is currently around 150 KB, and still offers ISO support.
- Rufus is simple to use: Its UI is very similar to the familiar Windows formatting dialog, and it doesn't bother the user with options that are confusing or unneeded.
- Rufus doesn't require an installer: An utility that does a simple task, that most users will only perform occasionally shouldn't require an installer. Just download, run it, and get done with it.
- Rufus keeps true to the original ISO content: Unlike other tools, Rufus does not override any of the config files that were set by the original creators - instead it just reuses them.
- Rufus is generic: A bootable USB creation tool should not have to ask its users about the type of ISO provided. This also ensures that the tool will support ISOs that have yet to be created. For a non exhaustive list of bootable ISOs Rufus is known to work with, please see here.
- Rufus can check devices for bad blocks: Up to 4 passes can be selected to find out if your media is defective. We believe that a formatting utility should always come with the ability to check for defects.
- Rufus will detect and set a non US locale (DOS): If the Windows version you use is set to a specific locale, you probably want DOS to use the same. Why should you be constrained to use DOS with an US keyboard? Rufus will detect and set the locale for you (while still providing the option to fall back to US keyboard during boot, if needed).
- Rufus can set an internationalized/extended label: If you format a disk to FAT, being constrained to 11 uppercase English characters for the label is very limiting. NTFS also has its limitations. Rufus can use the autorun/autoplay feature of Windows to display a label that contains any characters you like.
- There's a version of Rufus that comes with native FreeDOS: While slightly larger than the standard version of Rufus (~410 KB) it offers a more modern and much improved version of DOS. Check it out!
- Rufus is 100% Free Source: Rufus is released under GPLv3. If you're a developer and you really would like a new feature added, you very much can!
For additional info, you are invited to have a look at its entry in the downloads section or its official homepage.
For a more technical overview of how Rufus works, please read on.

The utility originally started as a replacement for the venerable HPUSBFW tool and basically offers all the features HPUSBFW has, apart from the ability to provide external DOS files. The reason behind that is that we provide a version of Rufus with FreeDOS embedded, therefore use for external DOS files would be very limited. Thus, Rufus should detect and formats USB drives in pretty much the same fashion as HPUSBFW, except it uses ms-sys to create the DOS or FreeDOS boot sectors.
For ISO9660 and UDF support, Rufus relies on libcdio (which seems much faster than 7zip for extraction) and syslinux. The way isolinux config files are handled is by creating a /syslinux.cfg on the target (if needed) that references an already existing config file. So far, this method seems work very well, apart from a small issue with distros that use obsolete versions of vesamenu.c32. The application will also attempt to update the existing isolinux/syslinux config file, if a disk label is required by the kernel.
With this, the produced USB is as close as possible to the original ISO, while most recent isolinux based bootable ISOs should be supported in a generic fashion.
With regards to Windows support (Vista or later), we simply format the drive as NTFS (which, btw, is the only filesystem that can properly handle the > 4GB install.wim from the x64 version of the Windows 8 developer preview) and use ms-sys to add the NTFS record, along with the bootmgr we pick from the ISO.
Finally, if requested (and if none exists) Rufus can also add an autorun.inf and icon, to set a customized/internationalized label as well as a drive icon.
If you have comments or ideas for improvement, feel free to do so, knowing that:
- I am not planning to create a commandline version of the utility, since I'd rather see features added to it than have it reused in another application.
- I am not planning to look into multiboot. I think multiboot is way too user specific and I don't see a generic solution for it that I could find acceptable. Also, if people need a tool to create a multiboot USB for them, I don't think they should be using multiboot in the first place. This is even more true if a program like Rufus can manage to make it quick and easy to switch between ISOs instead of having to create a multiboot USB.
Right now, the next thing I'd like to support would be BartPE and XP, though this may be a bit of a challenge. I'm hoping that either the ISO's existing SETUPLDR.BIN can be used (even if it needs to be patched) or that ReactOS's freeldr can help. Basically, I'd like Rufus to support anything WinPE based.
I'm also aware about grub4dos and iPXE, though I'm not currently sure whether anything specific should be done there. It looks to me like simply installing a blank syslinux and letting users do the chainloading would be acceptable, especially as I'd like to keep the utility small.
Again, please don't hesitate to give Rufus a try and let me know what you think.