mirror of
https://github.com/pbatard/rufus.git
synced 2026-10-24 02:28:58 +03:00
dea9451869fcddc7f0a96850dc6085d296a23ae5
* Well, our super-smart way of presenting users with the disk partitioning dialog, so that they could provide disk drivers instead of seeing their installation drive scratched, was once again foiled by Windows Setup being an ass when it comes to assigning drive letters. * First of all, along with S:, U: and X: you don't want to use D: as the drive letter as it only works if your target drive is "unclean", but, more importantly, the drive letter assignation process, as designed by Microsoft, ONLY EVER WORKS FOR FIXED DRIVES, and is not designed to be used with USB drives that are of type REMOVABLE. But of course, since Microsoft duplicated the drive assignation in 2 steps, one before the file copy and one after, and they only validate that the drive being mapped is of type FIXED in the latter, you don't get the error early, where you'd be able to catch it or at least make some sense of it, but MUCH, MUCH LATER... * And that is the reason why pretty much everybody who tries the new silent install ends up with an error at 75% during the file copy phase, since this is when Windows Setup performs its SECOND remapping of the drive letter and actually tests if the drive is of a type it can bloody handle! Oh and since our fastest test media are all UAS/SSD-based FIXED drives, this is what we used during our extensive testing of the silent installation feature, and the reason why we never saw the issue in the first place. * Our fix therefore is to drop the letter assignation altogether, since we'll never be able to use it with the vast majority of consumer USB drive, and instead switch to trying to relabel the UEFI:NTFS partition, or at least the partition at [disk 1, partition 2] where it is expected to reside (yeah, don't ask me why Microsoft starts numbering disks at 0 but partitions at 1), since this should be an one-step operation that works regardless of your drive is of type FIXED or REMOVABLE. * Testing for the UEFI:NTFS partition should also help us bail out the partition screen on systems where the user forgot to disconnect all the disks they don't want to see scratched (since, in most cases these would be data disks without a second partition) thereby helping prevent unwanted data loss. This should also bail to disk partitioning for people who want to split WIMs rather than use UEFI:NTFS, but it's their problem. Full silent install is for UEFI:NTFS only. * Finally, on some systems that have card readers that Windows Setup happens to map as formal disks (in my experience, this seems to be the exception rather than the rule), we will also bail out to the disk partition screen, even if the card reader is empty, but there's really only so much we can accomplish to address all system scenarios with the limited commands we have at our disposal during unattended partitioning. Since our priority is to prevent data loss, as well as show the partition screen whenever it is needed, we consider this annoyance as a small trade-off, especially as these users should be able to disable card readers from their UEFI setting. Again, our silent installation process expects that the user will have disconnected ALL disks except the one they want to install Windows on and that includes card readers). If that is not the case, all bets are off, and we will try to show the partition screen, to make the user aware of the deviation. * Closes #2960.
Rufus: The Reliable USB Formatting Utility
Rufus is a utility that helps format and create bootable USB flash drives.
Features
- Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3
- Create DOS bootable USB drives using FreeDOS or MS-DOS
- Create BIOS or UEFI bootable drives, including UEFI bootable NTFS
- Create bootable drives from bootable ISOs (Windows, Linux, etc.)
- Create bootable drives from bootable disk images, including compressed ones
- Create Windows 11 installation drives for PCs that don't have TPM or Secure Boot
- Create Windows To Go drives
- Create VHD/DD, VHDX and FFU images of an existing drive
- Create persistent Linux partitions
- Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image
- Perform runtime validation of UEFI bootable media
- Improve Windows installation experience by automatically setting up OOBE parameters (local account, privacy options, etc.)
- Perform bad blocks checks, including detection of "fake" flash drives
- Download official Microsoft Windows 8, Windows 10 or Windows 11 retail ISOs
- Download UEFI Shell ISOs
- Modern and familiar UI, with 38 languages natively supported
- Small footprint. No installation required.
- Portable. Secure Boot compatible.
- 100% Free Software (GPL v3)
Compilation
Use either Visual Studio 2022 or MinGW and then invoke the .sln or configure/make respectively.
Visual Studio
Rufus is an OSI compliant Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for Rufus. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.
Additional information
Rufus provides extensive information about what it is doing, either through its easily accessible log, or through the Windows debug facility.
Enhancements/Bugs
Please use the GitHub issue tracker for reporting problems or suggesting new features.
Description
Languages
C
89.3%
Makefile
4.5%
C++
2.8%
DIGITAL Command Language
1.4%
C#
0.8%
Other
1.1%