The Reliable USB Formatting Utility
Go to file
Pete Batard e073fb47b0
[net] add Windows retail ISO downloads
* This is accomplished through Fido (https://github.com/pbatard/Fido), a *SIGNED*
  PowerShell script, that is downloaded from GitHub and that resides in memory for
  the duration of a session.
* The reason we use a downloaded PS script, rather than an embedded on, is because:
  - Microsoft have regularly been changing the deal with regards to how retail ISOs
    can be downloaded, and not for the better, so we can't simply embed a static
    means of downloading ISOs and expect that to work forever.
  - By using an external script, we can immediately respond to whatever new means of
    *ANNOYING* their legitimate users Microsoft will come up with next, as well as
    make sure that, the minute a new retail version of Windows becomes available, it
    also becomes available for download in Rufus.
* Note that if you are concerned about downloading a remote PS script that is being
  run at the same level as an elevated application, you should understand that:
  - Only scripts downloaded from GitHub, from an account that is protected with 2FA,
    are allowed to run (i.e. someone would first have to steal a *physical* 2FA key
    to be in a position to upload a malicious script).
  - On top of this, only scripts that are signed with a separate private key (RSA +
    AES-256), that is itself also protected with a strong unique password which only
    a single person knows (and must manually enter each time they want to make a new
    version of the script available for download), are allowed to run.
  The above means that there's about as much chance for someone to manage to upload
  a malicious script on the GitHub servers, that Rufus would allow to run, as there
  is for someone to upload a malicious version of Rufus itself.
  Still, if you are paranoid and have concerns that, even as you can validate from
  its source that Rufus does not attempt to execute any remote script unless a user
  actively selected and clicked the DOWNLOAD button, you can also completely disable
  the remote script download feature, if you just set the update check to disabled
  (which, by the way, Rufus *EXPLICITLY* asks you to choose whether you want to
  enable or not, the very first time you run the application).
* Also remove _unlinkU() which duplicates what DeleteFileU() already does.
2019-03-02 23:34:32 +00:00
.github v3.1 (build 1320) 2018-06-19 12:00:28 +01:00
.vs [misc] update project to use latest default VS2017 SDK 2019-02-27 18:47:15 +00:00
res [net] add Windows retail ISO downloads 2019-03-02 23:34:32 +00:00
src [net] add Windows retail ISO downloads 2019-03-02 23:34:32 +00:00
.gitattributes [misc] ensure 'missing' is checked out as LF 2015-11-18 00:21:56 +00:00
.gitignore [pollock] small fixes & improvements 2018-07-20 14:59:39 +01:00
ChangeLog.txt v3.4 (build 1430) 2018-12-05 16:13:15 +00:00
LICENSE.txt [misc] refactoring and cleanup - part 2 2013-01-25 01:56:28 +00:00
Makefile.am [internal] add auto detection of 'git commit --amend' 2018-05-12 11:39:05 +01:00
Makefile.in [internal] add auto detection of 'git commit --amend' 2018-05-12 11:39:05 +01:00
README.md [misc] report executable arch in the log 2018-10-27 14:22:09 +01:00
_chver.sh [pollock] add comment preservation 2018-07-11 18:02:03 +01:00
_coverity.cmd [misc] fix Coverity warnings 2017-07-25 12:19:50 +01:00
_detect-amend.sh [internal] add auto detection of 'git commit --amend' 2018-05-12 11:39:05 +01:00
_pre-commit.sh [internal] update hooks to remove automated tagging 2018-10-19 14:36:48 +01:00
_release.sh [misc] move appx generation to Makefile 2017-05-09 10:54:13 +01:00
_set_git_hooks.sh [internal] update hooks to remove automated tagging 2018-10-19 14:36:48 +01:00
_sign.cmd [misc] update project to use latest default VS2017 SDK 2019-02-27 18:47:15 +00:00
aclocal.m4 [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
appveyor.yml [internal] fix AppVeyor builds 2018-10-27 16:45:56 +01:00
bootstrap.sh [misc] Linux cross compilation fixes 2016-11-11 11:58:05 +00:00
compile [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
configure [core] fix abort if we can't display the "drive in use" message 2018-12-14 18:19:33 +00:00
configure.ac [core] fix abort if we can't display the "drive in use" message 2018-12-14 18:19:33 +00:00
install-sh [internal] update app URL as well as scripts 2011-12-09 22:47:44 +00:00
missing [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
rufus.sln [vs2017] revert to using x86/x64 for x86 output directories 2018-10-26 12:54:20 +01:00

README.md

Rufus: The Reliable USB Formatting Utility

Build status Coverity Scan Build Status Build contributors Licence

Rufus logo

Features

  • Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS
  • Create DOS bootable USB drives, using FreeDOS or MS-DOS (Windows 8.1 or earlier)
  • 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 To Go drives
  • Compute MD5, SHA-1 and SHA-256 checksums of the selected image
  • Twice as fast as Microsoft's USB/DVD tool or UNetbootin, on ISO -> USB creation (1)
  • Perform bad blocks checks, including detection of "fake" flash drives
  • Modern and familiar UI, with 39 languages natively supported
  • Small footprint. No installation required.
  • Portable
  • 100% Free Software (GPL v3)

Compilation

Use either Visual Studio 2017 (version 15.8 or later with SDK 10.0.17134 installed) or MinGW and then invoke the .sln or configure/make respectively.

Visual Studio

Note that, since 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.

(1) Tests carried out with a 16 GB USB 3.0 ADATA pen drive on a Core 2 duo/4 GB RAM platform running Windows 7 x64. ISO: en_windows_7_ultimate_with_sp1_x64_dvd_618240.iso

Name of tool Version Time
Windows USB/DVD Download Tool v1.0.30 8 mins 10s
UNetbootin v1.1.1.1 6 mins 20s
Rufus v1.1.0 3 mins 25s