1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2024-08-14 23:57:05 +00:00
No description
Find a file
Pete Batard 67d324f82b
[extfs] fix inodes not being initialized above 4 GB
* So, as it happens, when assigning the product of two 32-bit variables into a 64-bit one,
  compilers default to being *DUMB* and, against all reasonable expectations, do not perform
  that multiplication as a 64-bit operation (even when the code is compiled as x64). Wow,
  that's really great decision making by compiler designers if I ever saw some... Whoever
  decided that C developers would much rather want truncation and 32-bit overflows, instead
  of the expected *LOGICAL* behaviour of conducting arithmetic operations as 64-bit when the
  result will be assigned to a 64-bit variable, need to be condemned to a lifetime of trying
  to help elderly folks trying to conduct simple computing tasks as a punishment...
  Anyhoo, nt_write_blk()'s offset.QuadPart = block * channel->block_size + nt_data->offset
  was overflowing 32-bit as soon as block * channel->block_size went over the 4 GB mark,
  with the disastrous results one can expect. Considering that this is code we practically
  lifted verbatim from e2fsprogs, I guess e2fsprogs' NT I/O manager was never properly
  tested with anything larger than a 4 GB. Awesome!
* We fix the above by doing what unix_io.c does and setting the 32-bit read/write_blk()
  calls to be wrappers around their 64-bit counterpart (since, once you deal with a 64-bit
  block variable, the computation is conducted as 64-bit).
* Also remove a bunch of stuff we don't need from config.h
* Closes #1396
2020-02-12 16:27:32 +00:00
.github [internal] add auto-locking of closed issues after 90 days of inactivity 2019-04-06 12:08:51 +01:00
.vs [misc] move Large FAT32 and ext formatting to their own source 2020-02-10 13:04:50 +00:00
res [misc] use $(srcdir) in Makefiles 2020-02-10 12:08:04 +00:00
src [extfs] fix inodes not being initialized above 4 GB 2020-02-12 16:27:32 +00:00
.gitattributes [misc] ensure 'missing' is checked out as LF 2015-11-18 00:21:56 +00:00
.gitignore [loc] remove Azerbaijani translation 2019-07-10 11:49:52 +01:00
_chver.sh [pollock] add comment preservation 2018-07-11 18:02:03 +01:00
_detect-amend.sh [misc] fix dos_locale.c warning 2019-11-25 17:39:56 +00: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 to Visual Studio 2019 2019-08-22 16:41:12 +01:00
aclocal.m4 [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
appveyor.yml [internal] fix AppVeyor MinGW builds 2019-08-22 20:14:52 +01:00
bootstrap.sh [misc] Linux cross compilation fixes 2016-11-11 11:58:05 +00:00
ChangeLog.txt [misc] mention that ext and persistence support should still be viewed as EXPERIMENTAL 2019-11-09 13:38:30 +00:00
compile [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
configure [misc] fix a typo and set rufus-next to 3.9 2019-09-17 18:49:49 +02:00
configure.ac [misc] fix a typo and set rufus-next to 3.9 2019-09-17 18:49:49 +02:00
install-sh [internal] update app URL as well as scripts 2011-12-09 22:47:44 +00:00
LICENSE.txt [misc] refactoring and cleanup - part 2 2013-01-25 01:56:28 +00:00
Makefile.am [internal] add automatic copy of ARM and appx binaries to root dir 2019-09-11 13:45:09 +01:00
Makefile.in [internal] add automatic copy of ARM and appx binaries to root dir 2019-09-11 13:45:09 +01:00
missing [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
README.md [misc] Readme improvements 2019-11-19 20:31:11 +00:00
rufus.sln [misc] update to Visual Studio 2019 2019-08-22 16:41:12 +01:00

Rufus: The Reliable USB Formatting Utility

Build status Coverity Scan Build Status Build contributors Release Licence

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 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
  • Create persistent Linux partitions
  • Download official Microsoft Windows 8 or Windows 10 retail ISOs
  • 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 38 languages natively supported
  • Small footprint. No installation required.
  • Portable
  • 100% Free Software (GPL v3)

Compilation

Use either Visual Studio 2019 (version 16.0 or later with SDK 10.0.18362 installed) 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.

(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