Go to file
Pete Batard 3a0f7d3813
[iso] attempt to fix the clusterfuck of GRUB 2.06 incompatible versions
* As was *ENTIRELY PREDICTIBLE*, the lack of timely releases from the GRUB
  project has resulted in distro maintainers (Ubuntu, Fedora, etc.) taking
  matters in their own hand and applying patches on top of their 2.06 version.
  However, these patches result in 2.06 bootloaders that are incompatible
  with 2.06 modules that don't have the same patches applied. Especially this
  now results in the infamous "452: out of range pointer" error message when
  using patched modules with unpatched bootloader or unpatched modules with
  patched bootloaders.
* Making this issue worse, we also have distro maintainers who won't add a
  suffix to their GRUB version, AS ONE SHOULD DO WHEN ONE APPLIES TONS OF
  PATCHES ON TOP OF A PROJECT'S SOURCE, and MISreport their non 2.06 GRUB as
  "2.06", and, because we can't detect what patches are needed from modules
  themselves (unlike what is the case for grub_debug_is_enabled), we have no
  way of telling incompatible GRUB 2.06 binaries from one another.
* As a result, we have no choice but to append a sanitized version of the ISO
  label to the GRUB version, as a means to differentiate between incompatible
  versions, and tweak our existing bootloader download mechanism to *ATTEMPT*
  to download a compatible 'core.img' from our server... where we will have
  to waste a lot of time adding new binaries and symlinks to try to make all
  these GRUB "2.06" based images work, and will probably miss quite few with
  the end results that users who are just trying to install Linux will be left
  stranded.
* Again, I have to point out how the end result of regular users wanting to
  try Linux and being unable to do so is the *DIRECT* result of the GRUB project
  maintainers having sat on a 2-year influx of CONTINUOUS patches, and thinking
  that "Release Early, Release Often" is only a gimmick, and not something that
  should apply to their project, even as they have been warned before, by yours
  truly, that *NOT* releasing on a timely basis is causing actual grievances...
  That's because, had the GRUB maintainers released on a timely basis (at least
  once a year) Fedora and Ubuntu would be using vanilla GRUB 2.07 with the memory
  patches, and we wouldn't be trying to mix that with old GRUB 2.06 binaries.
* For more on this, see #2233, noting that we will need to apply a compatibility
  breaking change during the 4.1 release, to revert the patches we applied to
  the default 2.06 'core.img' in pbatard/rufus-web@320b800592.
2023-05-16 14:05:28 +01:00
.github Rufus 4.0 (Build 2035) 2023-04-26 00:00:03 +01:00
.mingw [misc] further Windows 7 specifics removals 2023-04-28 17:46:05 +01:00
.vs [misc] further Windows 7 specifics removals 2023-04-28 17:46:05 +01:00
res Rufus 4.0 (Build 2035) 2023-04-26 00:00:03 +01:00
src [iso] attempt to fix the clusterfuck of GRUB 2.06 incompatible versions 2023-05-16 14:05:28 +01:00
.gitattributes [internal] add pull_request_template.md and update issue_template.md 2023-01-13 21:45:50 +00:00
.gitignore [loc] remove Azerbaijani translation 2019-07-10 11:49:52 +01:00
ChangeLog.txt [misc] update DB for newer GRUB core.img's 2023-04-28 17:34:06 +01:00
LICENSE.txt [misc] refactoring and cleanup - part 2 2013-01-25 01:56:28 +00:00
Makefile.am [loc] update French translation 2021-03-31 16:38:09 +01:00
Makefile.in [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
README.md [misc] update DB for newer GRUB core.img's 2023-04-28 17:34:06 +01:00
SECURITY.md [misc] add SECURITY.md file 2021-09-04 01:39:48 +01:00
_chver.sh [appstore] revert to using a script to build AppStore bundle 2021-10-27 09:47:27 +01:00
_coverity.cmd [misc] fix Coverity warnings 2020-06-19 10:53:40 +01:00
_detect-amend.sh [misc] fix dos_locale.c warning 2019-11-25 17:39:56 +00:00
_pre-commit.sh [appstore] revert to using a script to build AppStore bundle 2021-10-27 09:47:27 +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 copyright year 2022-01-09 15:02:50 +00:00
aclocal.m4 [misc] update autotools support files 2021-03-25 23:57:34 +00: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 [misc] update version to 4.0 2023-04-22 15:46:03 +01:00
configure.ac [misc] update version to 4.0 2023-04-22 15:46:03 +01:00
install-sh [misc] fix GitHub Actions' MinGW compilation 2022-01-05 12:51:29 +00:00
missing [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
rufus.sln [appstore] use a separate solution for App packaging 2021-02-07 20:19:53 +00:00

README.md

Rufus: The Reliable USB Formatting Utility

VS2022 Build Status MinGW Build Status Coverity Scan Status
Latest Release Licence Download Stats Contributors

Rufus logo

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
  • 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 persistent Linux partitions
  • Create VHD/DD images of a drive
  • Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image
  • 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 7, 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.