Commit Graph

353 Commits

Author SHA1 Message Date
Pete Batard 0a3600f9ff
[ext2fs] add registry setting to specify which ext fs version we should use
* Also improve log progress report
* Also move ext formatting to before we format the main partition
2019-04-17 20:34:39 +01:00
Pete Batard 0ad3f8c1d3
[ext2fs] integrate ext3 formatting into UI operations
* Add display of persistence controls on relevant images
* Add progress on ext3 formatting and improve error reporting
* Also improve MountVolume() and fix some Coverity warnings
2019-04-16 20:44:13 +01:00
Pete Batard ccf0f1bf3c
[ext2fs] add journal support for ext3 formatting
* Also clean up code, handle errors and fix issues
2019-04-15 17:04:39 +01:00
Pete Batard 9610e3a63b
[misc] refactor some global variables' names so we can reinstate -Wshadow
* Also remove no longer used _coverity.cmd and update .gitignore
2019-04-13 15:29:27 +01:00
Pete Batard cec443ef61
[ext2fs] update to latest e2fsprogs
* e2fsprogs commit [cecc2bc78b39ddcd34a819a4d7e7cd30897958cb]
* Also add LGPLv2 license text
2019-04-13 14:52:29 +01:00
Pete Batard cda716c1ff
[ext2fs] initial ext2fs support 2019-04-12 21:32:40 +01:00
Pete Batard d4a663991b
[core] report write errors more explicitly
* Also issue a port cycle on ERROR_NOT_READY
* Also run a check for conflicting processes during write retries
2019-04-09 21:37:08 +01:00
Pete Batard 06b33f94e4
[core] alter the drive letter we use when Windows has already remounted it
* Our code should be flexible enough to do just that and this will also
  alleviate requiring end users to retry an operation.
2019-04-08 16:29:17 +01:00
Pete Batard 661ba7b64c
[core] fix Win7 EFI boot file extraction when dual BIOS+UEFI is in use
* Closes #1292
* Also add "RISD" (Ricoh IDE SD Card reader) to list of card readers (#551)
* Also make running Fido script read-only
2019-03-27 12:21:41 +00:00
Pete Batard 82bb497c1b
[fido] add a log notice to explain why ISO downloads are disabled
* Also fix an issue where Rufus doesn't report an error if 'fmifs.dll' can't be found (#1284)
* Also improve GitHub issue template to mention that Ctrl-L can also be used to access the log
2019-03-19 12:04:29 +00:00
Pete Batard 28c1d6eb31
[core] display a notice about Legacy in the protective MBR for GPT
* This should help Windows users who create a GPT/UEFI drive and try to use it in BIOS/Legacy
* Also make sure that we take into account the split space for both "SELECT" and "DOWNLOAD"
2019-03-16 13:12:08 +00:00
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
Pete Batard 326ae54f45
[togo] add a notice about WppRecorder.sys BSOD with 1809 ISOs
* Also improve detection of build number
2019-01-30 17:15:25 +00:00
Pete Batard 521034da99
[togo] add newer install.wim + install.esd support
* With no thanks whatsoever to Microsoft for *NOT* documenting that you need
  to pass flag 0x2000000 to WIMCreateFile() if you want to avoid an open error.
  One has to wonder if Microsoft isn't deliberately adding *BULLSHIT FLAGS*
  that only they know of, to hinder competing third-party tools...
2019-01-08 18:30:07 +00:00
Pete Batard befe2606cf
[misc] use %S to print wchar_t strings where possible
* Also fix some Coverity warnings
2019-01-03 12:29:28 +00:00
Pete Batard 4cd308a1c0
[core] don't analyse boot records of deleted partition
* Also revert a472e96e87 as this is creating
  unwanted detection issues as per #1239. We'll try to devise a better way
  to avoid intempestive refreshes later on.
2018-11-28 11:12:54 +00:00
Pete Batard c0526b3e8b
[core] invoke VDS to delete all partitions before format/write 2018-11-28 10:50:00 +00:00
Pete Batard 04a5793ee7
[misc] use compilation flag to undefine NDEBUG for assert 2018-11-21 17:45:18 +00:00
Pete Batard 790b188b3d [ui] fix disabling of Quick Format checkbox
* Closes #1211
* Also fix MBR analysis report displayed each time the user changes boot selection
2018-10-03 19:14:40 +02:00
Pete Batard 204908f8e0 [misc] enable MinGW reproducible builds
* -Wl,--no-insert-timestamp seems to do the trick
* Also set rufus-next to 3.4
2018-09-24 23:42:04 +01:00
Pete Batard 1b63e59ee2 v3.3
* Also be more lenient about erasing the backup GPT
2018-09-17 12:09:54 +01:00
Pete Batard 97315a238d [togo] fix bcdboot invocation for ISOs that aren't dual BIOS and UEFI
* Closes #1111
2018-09-14 14:10:40 +01:00
Pete Batard 2d99601a5f [core] fix a regression when scanning uncompressed bootable DD images
* Closes #1206
2018-09-13 11:49:51 +01:00
Pete Batard 2d99bbcd41 v3.2 (build 1397) 2018-09-11 16:05:30 +01:00
Pete Batard 6275c5b724 fix MinGW-w64 warnings 2018-09-03 13:41:29 +01:00
Pete Batard 71578459d7 [loc] fix spaces before full stops
* Also: "Asserts, it's not just for debug any more!"
2018-07-31 20:47:24 +01:00
Pete Batard 59aab9b61d [core] refactor fast-zeroing code and fix warnings
* Fox coverity and MinGW warnings
2018-07-15 12:27:21 +01:00
René van der Zee 77bf5c8a49 [core] add alternate cheat mode for fast zeroing
* Ctrl-Alt-Z can now be used to zero a drive, while skipping blocks that are detected empty
* Depending on your hardware, as well as the existing drive content, this strategy can greatly
  speed up zeroing operations, especially if the flash memory's read speed is much higher than
  its write speed.
* Closes #1174
2018-07-06 13:29:20 +01:00
Pete Batard a34cb1194e [ui] initial work for the display of a persistence option
* This doesn't mean we'll get persistence support any time soon, but any UI work
  on this needs to be carried out *MONTHS* in advance because of the translators.
2018-07-06 00:40:52 +01:00
Pete Batard 7c142fadbc [net] improve handling of invalid signatures
* Also make bPromptOnError an actual parameter to the download function calls
* Also prefer the use of assert() to custom assertion messages
2018-06-30 22:45:15 +01:00
Pete Batard 2d262df8f3 [bb] bad blocks check improvement
* Use a default block size of 128 KB (can speed up read operations)
* Reorganise patterns to suit different types of NAND cells (SLC, MLC and TLC)
* Only run fake drive test on first pass
* Also update rufus-next to 3.2
2018-06-28 16:25:13 +01:00
Mattiwatti dbc92e3adc [core] add support for Windows XP x64 and Server 2003 x64 ISOs
* Closes #1167
2018-06-25 15:51:19 +01:00
Pete Batard 5ab67c03d6 [core] improve write retry handling
* Add a proper delay before retrying a write operation and increase retry count to 4
* Add retries when clearing boot records or when zeroing a drive
* Also improve log output from USB device reset
2018-06-13 19:23:24 +01:00
Pete Batard b274388f95 [iso] fix file extraction for GRUB/Grub4DOS based ISOs
* We were switching the global boot type variable to something other than BT_IMAGE,
  which prevented ISO extraction whenever a GRUB secondary boot record was written.
* Closes #1145
2018-06-04 12:12:24 +01:00
Pete Batard dd1bf3b998 [core] fix unable to format as FAT32 for RTL languages
* This is a "stealth" update for the 3.0 release
* The issue was that we are picking the UTF16 file system name from
  the dropdown, and where we use the "(Default)" suffixed version,
  it now has an RLE at the beginning which we must skip.
* This prevented RTL languages from being able to format a drive as FAT32...
2018-05-29 12:57:26 +01:00
Pete Batard cdacc6f342 [ui] fix whole screen refresh and progress bar issues
* Whole screen was being refreshed when calling InvalidateRect() in ResizeMoveCtrl()
* Progress bar bounding rectangle could be erased at 0.0%
* No progress was displayed when writing ISOHybrid images in DD mode
* Also fix an issue when write error would not display the error string
2018-05-08 20:28:23 +01:00
Pete Batard 7221dee4d1 [core] disable file indexing by default
* File indexing is too much of an annoyance on removable drives anyway
  and this should help with perf and access issues
* Alt-Q cheat mode is now changed to re-enable file indexing
* Also fix a rogue 'else' in the code
2018-04-19 16:02:07 +01:00
Pete Batard 7fef3c6434 [ui] use our own custom bar with text
* Needed because native Windows produces obnoxious tearing on redrawing.
* Also rename global partition scheme variable back to 'pt'
* Also fix major and minor version numbers in the .rc
2018-04-16 17:05:23 +02:00
Pete Batard 1dbbe69a4b [ui] improve partition scheme default selection
* Also rename our variable to PartitionStyle/ps for clarity
2018-03-26 19:06:55 +01:00
Pete Batard a44518355f [ui] UI redesign
* Better guide the user through the flow of operations
* Also follow a concept design by Fahad Al-Riyami
* Closes #117
2018-03-22 23:14:21 +00:00
Pete Batard 903ac993f2 [misc] remove no longer needed XP workarounds 2017-11-13 14:30:25 +00:00
Pete Batard c5f4e5a2ee [misc] drop Clang support and move VS2017 project files to .vs 2017-11-11 15:41:04 +00:00
Will Thompson 88631806da [cmp] propagate decompression errors from bled
* If, for example, you have a truncated gz-compressed file and try to
  write it to disk, bled_uncompress_with_handles() will return an error.
  Previously, this was not reported back to the user.
* Closes #1040
2017-10-13 10:48:37 +01:00
Pete Batard fe3004d17f [misc] use UTF-8 compatible _unlinkU() when deleting files 2017-08-30 11:24:47 +01:00
Pete Batard 90dc847e24 [misc] add static_strcat & static_strcpy and use static_ calls wherever possible
* Also set Rufus next to 2.17 and fix a warning
2017-08-10 19:43:52 +01:00
Pete Batard 5d371088cb [iso] add EFI boot support from 'efi.img' FAT images
* Required to support Debian Live 9.1 in ISO mode
* Note that this only works if the efi.img boot files do not require
  additional content besides the one extracted from the ISO.
2017-08-09 16:27:11 +01:00
Pete Batard eb5087d504 [togo] fix a typo in index selection and add support for nonofficial ISOs
* Closes #991
2017-08-02 18:59:45 +01:00
Pete Batard a528bb3d83 [ui] report process(es) that are preventing access on error
* Also revert loc file changes that were introduced in f53b22a077
2017-07-11 17:50:38 +01:00
Pete Batard 390c134b7a [togo] be more verbose about the files being applied 2017-06-20 14:10:22 +01:00
Pete Batard 867177c5cd [misc] expand lock cheat mode to also apply to write sharing
* Also improve log messages
2017-05-03 14:48:24 +01:00
Pete Batard 23390bf911 [core] relax the FILE_SHARE_WRITE rules during enumeration
* Should allow enumeration of drives, that other process have open
  with RW access, back again (looking at you, Paragon!!!)
2017-05-02 00:56:07 +01:00
Pete Batard 3b4b742772 [wintogo] add an error popup if we can't select the version 2017-05-02 00:38:40 +01:00
Pete Batard 7b86943266 [ui] don't report an error on chkdsk failure 2017-05-01 16:40:14 +01:00
Pete Batard 30137de7cb [iso] improve handling of image size
* Don't use the projected size where the actual image size should be used
* Also fix an issue with the projected size computation
2017-05-01 16:22:34 +01:00
Pete Batard d1927ac1ef [core] handle search improvements
* Fix memory leaks due to not releasing the heap
* Also speed up lookups by not reopening the same process twice in a row
* Also make the usb_debug variable global so we can use uuprintf everywhere
2017-04-29 17:14:16 +01:00
Pete Batard aec2736245 [togo] improve Windows To Go support for Windows 10 Creators Update
* Enable the use of GPT on REMOVABLE drives, if the host is Windows 10 CU
* Don't display the message about REMOVABLE boot, if the target is Windows 10 CU
2017-04-19 11:30:24 +01:00
Pete Batard caa9b06426 [core] work around Windows 10 CU potentially selecting the UEFI:NTFS partition for formatting
* Should only happen with Windows 10 Creator Update (1703)
* Closes #931
* Also silence the flow of bcdboot benign errors on WinToGo creation (unless USB Debug is enabled)
* Also ensure WaitForLogical() will not actually spends 15 seconds max before giving up
2017-04-11 22:15:05 +01:00
Pete Batard 477ff95f93 [core] display device paths in GetHandle()
* Also reorder bLockDrive and bWriteAccess parameters
2017-04-08 21:58:10 +01:00
Pete Batard edcfd43ed5 [misc] fix multiple VS Code Analysis warnings 2017-03-10 19:07:48 +01:00
Pete Batard 2f81e4f177 [core] avoid the use of FILE_SHARE_WRITE
* Not having FILE_SHARE_WRITE on a disk or volume handle helps
  prevent spurious accesses from the OS or other apps while we
  are repartitioning/refomatting.
2017-02-16 14:13:30 +00:00
Pete Batard c72aa7be0a [core] don't clean up partition data before writing a disk image
* This workaround seems to be needed for the upcoming Windows 10 rs2_release (see #883)
* Also some minor fixes
* Closes #883
2017-02-14 12:44:25 +00:00
Pete Batard 5170706695 [misc] fix coverity warnings 2017-01-04 18:07:58 +00:00
Pete Batard d7e977e1f1 [core] enable FAT32 for Windows install when dual UEFI+BIOS is enabled 2017-01-03 16:56:30 +00:00
Pete Batard d783573178 [syslinux] enable NTFS selection for Syslinux 6.x or later
* Tested with latest Arch, Debian and Ubuntu
2016-12-15 16:28:00 +00:00
Pete Batard f4ebe1b6c2 [togo] prompt user to select a version before formatting 2016-12-15 12:04:19 +00:00
Pete Batard 104b33a7ba [core] remove 'MBR for BIOS' option for pure UEFI images
* Closes #832
* Also refactor image property macros
2016-12-14 23:27:41 +00:00
Pete Batard 7d302d340f [togo] enable selection of Windows version
* Closes #847
* Also set rufus-next to 2.12
2016-12-13 14:26:27 +00:00
Pete Batard 5113be0a39 [iso] add dumping of ISOs from optical media (Alt-O) 2016-12-06 11:47:19 +00:00
Pete Batard aa4baab194 [core] add a workaround for >1TB HDDs that mistakenly report short writes
* It appears that 1.5TB and 2TB HDDs, accessed trough some Seagate ow WD USB ↔ SATA
  controllers, can report that 0 bytes were written on WriteFile(), even though all
  the data was effectively written. 1TB HDDs, accessed through the same controller,
  do not report this issue. So add a workaround for that.
* Also see #787
2016-09-06 18:31:30 +01:00
Pete Batard 8ca644de5a [core] fix sanitizing of exFAT labels
* Closes #818
2016-08-31 13:01:39 +01:00
Pete Batard 08566fa127 [core] add half workaround for an XP issue
* This is not a complete workaround, but it will do for
  until we drop support for XP altogether.
* Closes #810
2016-08-31 12:21:10 +01:00
Pete Batard 5d3be6ca51 [misc] add a cheat mode to disable file indexing after format
* New cheat mode is Alt-Q, and gets preserved between sessions
* Only for file systems that support it (NTFS, UDF and ReFS)
2016-08-27 18:06:06 +01:00
Pete Batard d9a928f5bc [core] fix handling of BFD drives
* A BFD (Big Floppy Disk) is a disk that isn't actually partitioned,
  but where the first data sector starts at sector 0
* Closes #814
2016-08-21 14:06:15 +02:00
Pete Batard e7578bc12d [syslinux] support ISOs that use boot.bin instead of isolinux.bin
* Such as WebConverger (webc-35.1.iso)
* Also fix non installation of Syslinux if Alt-E (dual UEFI/BIOS) is set
* Also update README and AppVeyor script
2016-08-07 18:41:47 +02:00
Pete Batard 9dd06e93bc [ui] improve Windows format prompt autoclose
* Closes #794
* Also reorder some messages (so that RUFUS_TEST comes first)
* Also update issue template
2016-07-09 16:20:58 +01:00
Pete Batard 91eec034b1 [core] try not to clear MBR/GPT sectors higher than the lowest partition
* This ensures that a drive can be reformatted without error after writing
  an image such as super_grub2_disk_x86_64_efi_2.02s4.iso
2016-07-07 18:13:01 +01:00
Pete Batard ed1b3fd72e [iso] reload label after formatting
* The Windows APIs may further modify the label compared to our proposed
  version (e.g. remove trailing spaces), and we need an exact label for
  the Syslinux/GRUB config file update.
* This issue was reported against Springdale Linux, where the isolinux.cfg
  label was patched using 'SPRINGDALE\x20' instead of 'SPRINGDALE'
* Closes #784
* Also ensure that we don't replace NULL buffers in msapi_utf8.h and add
  GetVolumeInformationU()
2016-06-26 22:24:16 +02:00
Pete Batard e76f60a3e8 [misc] use the more univerasal _mm_alloc() instead of _aligned_malloc()
* Also ensure that our buffers are aligned
* Also remove the use of static buffers in ms-sys
2016-06-10 12:42:43 +01:00
Pete Batard f1f620411c [syslinux] use SetFilePointerEx and other improvements 2016-06-06 19:39:53 +01:00
Pete Batard 39d6b90447 [misc] fixes for Clang/C2 compilation support 2016-06-04 17:13:50 +01:00
Pete Batard 790aacd49a [core] add SHA-256 validation DB for downloadable content
* Downloadable content will now be indicating, in the log, whether it can be trusted with ✓ (validated) or ✗ (caution)
* Of course this validation only applies for files we know of, i.e. the downloadable content that existed at the time the DB was
  created. So, if Syslinux 8.x gets released tomorrow and we put it on our server, you'll get an ✗ regardless of its integrity.
* Closes #758
2016-05-25 12:20:20 +01:00
Pete Batard 81673ade26 [core] clean up the RUFUS_DRIVE_INFO struct
* Remove the duplication of DISK_GEOMETRY to keep only the variables we actually use
* Also set rufus-next to 2.10
2016-05-23 12:19:43 +01:00
Pete Batard 258a4f7ca0 [core] work around a Windows bug that may render a disk inaccessible on cleanup
* The root of the issue is that Windows IOCTL_DISK_CREATE_DISK does not properly
  zero all of the MBR/GPT/PBR structure with PARTITION_STYLE_RAW (which is what
  diskpart uses to clean a disk), and leaves plenty of partition artefacts behind.
* This means that, when an image with complex partitioning has been applied, such
  as Chromium/ChromeOS, you may end up with a drive that can not be repartitioned
  or reformatted in Windows (and this is completely independent of whether Rufus
  was used to perform these operations - For instance you will get the same issue
  if you use Win32DiskImager and diskpart + clean).
* The only option left for users then is to reset/repartition their drives in Linux
  or some other OS, as Windows' VDS becomes incapacitated to handle the drive, as
  the problem persists independently of reset/re-plug/Windows platform being used.
* To work around this, we ensure that we zero the MBR/GPT/PBR sectors BEFORE calling
  IOCTL_DISK_CREATE_DISK.
* Also move zeroing of the drive before partition reset.
* Closes #759
2016-05-21 16:34:34 +01:00
Pete Batard b82462bb7d [ui] improve progress bar refresh
* Closes #699
2016-03-10 16:13:16 +00:00
Pete Batard 1cc7fca4c5 [ui] disable BIOS boot when MBR for UEFI is selected in dual UEFI/BIOS mode
* Closes #708
2016-03-07 16:15:18 +00:00
Pete Batard 71520baf31 [core] factorize the img/zero disk writing code
* Also fix a WDK warning
2016-03-04 16:34:50 +00:00
Pete Batard b9caf8b605 [core] fix computation of FAT size for Large FAT32
* Ridgecropt's GetFATSizeSectors() computation was incorrect
  and resulted in data sectors being "wasted" (unaddressable)
* See: http://www.syslinux.org/archives/2016-February/024850.html
* Also revert the minfatsize check of Syslinux, since it no longer fails.
2016-02-26 13:26:34 +00:00
Pete Batard 250d46e401 [core] use GetTickCount64() always where possible
* Damn you XP!!!
* Also some more code cleanup
2016-02-24 16:10:54 +00:00
Pete Batard c3f47ada06 [misc] add missing.h header
* Also clean up code
2016-02-20 22:52:32 +00:00
Pete Batard f88faf1a4f [usb] enable listing of non USB card readers
* Also fix the VID:PID population of USB card readers
* Also improve enumeration debugging
* Also add an unofficial cheat mode to list non USB *REMOVABLE* drives
* Closes #693
2016-02-16 20:43:30 +00:00
Pete Batard f2a539a48c [core] add and use WriteFileWithRetry() where possible 2016-01-14 17:43:02 +00:00
Pete Batard b77561bb9b [ms-sys] update ms-sys to current
* NB: This includes an updated Syslinux MBR
2016-01-07 15:49:58 +00:00
Pete Batard 549bf731a6 [ui] fix UEFI/BIOS mode never being disabled once enabled
* Closes #635
* Also fix minor logic issue and trailing whitespaces
2015-11-05 22:54:38 +00:00
Pete Batard b66401b355 [core] add a cheat mode to zero the USB device
* Alt-Z to zap!
* Also set rufus-next to 2.6
2015-11-04 13:58:19 +00:00
Pete Batard e1f8b276c8 [loc] fix various RTL issues
* MSG_002 doesn't display in RTL
* Update Policy dialog loses RTL setting after the first paragraph
* Some text displayed in native Windows message boxes is not using RTL
 (even as the Message Box itself will display the rest of the UI elements as RTL)
* Detect if the relevant language pack is installed and use MessageBoxEx to
  display native message box buttons using the selected language.
* All theses issues are part of #621
* Also remove trailing whitespaces
2015-10-18 21:37:58 +01:00
Pete Batard af53d11718 [misc] add a cheat mode to not lock the physical drive during partitioning and formatting
* In some circumstances, this *might* help with the infamous #312 issue, though
  I will still recommend to figure out which application is keeping a lock instead
  of trying to cheat...
2015-10-01 22:22:20 +01:00
Pete Batard a9b681976a [ui] enable some settings and cheat modes to be persisted
* Currently, the user settings that are persisted are:
  - Advanced mode (UI)
  - Timestamps preservation (Alt-T)
  - Proper unit Display (Alt-U)
  - USB debug (Alt.)
  - Fake drives detection (Alt-B)
  - Dual UEFI+BIOS for Windows images (Alt-E)
  - Force Large FAT32 formatting (Alt-L)
  - VMWare Disk Detection (Alt-W)
* Settings that are *NOT* persisted include:
  - UDB HDD listing (too dangerous!)
  - NTFS compression (Alt-N)
  - ISO/Joliet/Rock-Ridge (too confusing if not reset)
  - Disabling of size limits (Alt-S)
* Closes #436
2015-09-17 00:20:22 +01:00
Pete Batard ff9eae4e6d [vhd] fix broken save to VHD cheat mode
* vhd_save wasn't static, which of course created all kind of issues
  when the VHD save thread tried to use it while it was being freed...
* Closes #591
2015-09-04 14:15:22 +01:00
Pete Batard 5024e7f65e [internal] refactor iso_report -> img_report
* Also set rufus-next to 2.4
2015-09-02 23:20:00 +01:00
Pete Batard d1eccbd107 [togo] fix bcdboot errors
* Closes #558
2015-08-23 17:03:35 +01:00
Pete Batard 5004374277 [misc] update to VS2015 and fix VS code analysis issues
* Also update Bled to latest, as well as build scripts
* Note: Considering that Visual Studio 2015 is both freely and legally
  available for anyone who wants to use it to compile Rufus, starting
  with this commit, I will NOT be supporting any other version of Visual
  Studio but 2015.
2015-08-10 23:30:23 +01:00
Pete Batard 3ccae1d2e2 disable MS-DOS creation for Windows 10 or later
* Microsoft removed the diskcopy.dll that contained the MS-DOS floppy image
  Not a big loss, since we have FreeDOS... ;)
* Closes #545
* Also apply a long overdue refactoring for boot and target types
* Also update the README to add an icon
2015-07-01 21:26:41 +01:00
Pete Batard c95910e268 [misc] add MD5 and SHA-1 computation for current image
* Uses the Alt-M cheat mode for now
* Closes #475
2015-06-29 23:43:49 +01:00
Pete Batard 477674016e [core] make sure the system disk is never listed
* When using VHD or VMDK drives, it was possible for the system disk to be listed.
* Closes #541
2015-06-27 22:12:30 +01:00
Pete Batard cc6234296d [togo] don't apply the 'set internal disks offline' policy
* This creates issue due to dism incompatibilities between Windows versions
  and some users are puzzled why they don't see their internal disks.
* Also make the bcdboot call more robust by using the system one if the USB one fails
* Also fix small issues in RunCommand() and MountVolume()
2015-06-24 20:00:20 +01:00
Pete Batard 4f0e8a24a8 [vhd] add cheat mode to save the current device to VHD
* Alt-V = Save to VHD
2015-06-07 22:51:54 +01:00
Pete Batard eee9458984 v2.1 (build 649)
* Reduce log verbosity on format tasks
* Also update "lost translators" list
2015-03-23 22:18:29 +00:00
Pete Batard 7f621b9648 [core] enable the installation of a bare UEFI:NTFS in advanced mode
* Closes #468
* Also prevent drives with UEFI:NTFS from being listed as multi-partitions
* Also add a label for the UEFI:NTFS FAT partition
* Also fix internal chver script
2015-03-18 21:34:28 +00:00
Pete Batard 66edd53b2c [core] add x86_32 boot for UEFI:NTFS
* NB: This increases the compressed executable size by 25K :(
* Also set rufus-next to 2.1
2015-03-16 20:34:04 +00:00
Pete Batard 528add160f [core] fix creation of Windows 10 Preview x32 UFDs
* Rufus was detecting the ISO as needing the Windows 7 EFI workaround
  despite the presence of bootia32.efi
* Closes #462
2015-03-11 21:45:06 +00:00
Pete Batard 000f60c535 [core] improve support for multipart install.wim
* Closes #450
2015-02-26 23:47:20 +00:00
Pete Batard 785150dcb2 [core] fix "Requesting Disk Access" issue with Syslinux/NTFS
* See http://reboot.pro/topic/17902-rufus-v130-has-been-released/?p=190958
* Also fix non continuation of format operation after Syslinux has been downloaded
* Also fix missing Syslinux installation for ReactOS
2015-02-26 00:15:13 +00:00
Pete Batard d22933636c [core] fix precedence of Syslinux over Grub
* Closes #449
* Also fix Coverity builds
2015-02-25 01:45:47 +00:00
Pete Batard 1dc55596d5 [grub] update Grub4DOS to 0.4.6a
* Also fix Grub4DOS and Grub2.0 versioning issues
* Also ensures that operation gets canceled on missing download
* Also fix German translation and remove trailing whitespaces in .loc file
* Also fix inverted display status for VMWare disk detection
2015-02-16 22:29:23 +00:00
Pete Batard e4e9e87768 [misc] handle multipart install.swm Windows images
* Closes #437
2015-02-09 19:34:41 +00:00
Pete Batard 1c322aba56 [misc] drop the micro from the version
* Closes #439
2015-02-08 22:59:09 +00:00
Pete Batard b830c040d2 [misc] fix XP compatibility
* MinGW's gcc 4.9.2 seems to implement a broken "%lld" format 64 bit integer is
  followed by more variables and the app executes on XP => use PRI macros
* Also fix partition ID being ignored when using Rufus MBR
* Also fix some global vars shadowing and add other improvements
2015-01-28 23:22:11 +00:00
Pete Batard 5d8483c359 [togo] fix zeroing of MSR
* Also fix broken debug messages
2015-01-26 23:20:39 +00:00
Pete Batard fdcb17aa7a [misc] pocketful of enhancement and fixes - part 3
* Add Windows To Go tooltips
* Set UEFI:TOGO partition type to EFI System Partition
* Improve apply-image progress report
* Fix MBR analysis for 4k disks
* Do not select Rufus MBR for Windows To Go
2015-01-22 22:31:34 +00:00
Pete Batard 4b76cb2555 [togo] Add Windows To Go support - part 4
* Ignore partitions we don't care about
* Fix issues with AltMountVolume()
* Try to support 4k drives when setting up MS EFI partition
* Zero the start of the MSR partition to prevent leftover detection
* Fix unwanted use of MBR hidden sectors and redundant CloseHandle()
* Fix addon of BIOS compatibility extra partition
* Print apply image progress to info box
2015-01-20 21:54:29 +00:00
Pete Batard ed9fae7c81 [togo] Add Windows To Go support - part 2
* Enable the creation of MSR and MS EFI partition in GPT mode
* Closes #432
2015-01-20 02:56:17 +00:00
Pete Batard ec761dfb41 [core] refactor CreatePartition()
* Also add groundwork for optional creation of MSR (see #432)
* Also fix a few minor issues
2015-01-19 01:23:32 +00:00
Pete Batard 032d4413c8 [togo] Add Windows To Go support - part 2
* Closes #126
* Only supported on Windows 8 or later for now
* Also fix MinGW and WDK compilation issues
2015-01-16 01:53:24 +00:00
Pete Batard 295650a8b4 [togo] Add Windows To Go support - part 1
* Add apply support to WIM image handling
* Requires Windows 8 or later (Windows 7+ for WIM API support but Windows 8+ for ISO mount)
* Also fix an issue for Windows 7 x64 EFI mode
2015-01-15 01:45:10 +00:00
Pete Batard 3444a48fce [ui] display ToGo radio selection according to ISO content
* Also simplify EFI detection and reporting
2015-01-13 02:11:57 +00:00
Pete Batard a327bb114c [ui] Remove the separate progress dialog
* Closes #125
* Also provide more intuitive info for bad blocks check
* Also update Bled to latest to enable cancelling
2015-01-01 23:39:28 +00:00
Pete Batard e90eaa4abc [grub] add GRUB 2.0 versioning and enable external core.img download
* Closes #419
* Also updated Bled to latest
2014-12-30 19:46:13 +00:00
Pete Batard 7599715ae6 [cmp] add decompression support
* Adds .Z, .gz, .lzma, .xz and .bz2 decompression support for DD images
  using the Bled library (https://github.com/pbatard/bled).
* Closes #269
2014-12-29 20:34:41 +00:00
Pete Batard 3f0e71f3ba [efi] fix incorrect offset for UEFI:TOGO partition
* Also remove the use of hardcoded value for the size of the UEFI:TOGO
  partition and fix a WDK warning.
2014-12-21 01:56:36 +00:00
Pete Batard d81f83c110 [core] enable UEFI NTFS support
* This allows no-sweat UEFI support of Windows installation ISOs
  that contain a >4GB file for instance
* This is done through UEFI:TOGO (https://github.com/pbatard/uefi-togo)
  and the efifs NTFS driver (http://efi.akeo.ie)
* Closes #414
* This will also be part of our implementation of #126
2014-12-20 00:22:00 +00:00
Pete Batard 420db67ce1 [misc] add dual UEFI/BIOS cheat mode for Windows
* Suggested by Jacob Boyce
2014-12-18 16:29:03 +00:00
Pete Batard ea28080e0a [core] fix write error when using non sector aligned DD images
* Closes #410
2014-12-03 21:28:24 +00:00
Pete Batard 8b47e95eb5 [grub] switch to the more compatible Grub 2.00-22
* Also enable Old BIOS fixes with Syslinux, Grub installation and fix related UI issues
* Also add a check to confirm that Grub SBR will fit
2014-11-18 23:49:29 +00:00
Pete Batard b3947fc026 [grub] add Grub 2.0 support
* Also moves secondary Grub boot record as a resource
* Also fix a typo in README.txt and update signtool path
* Closes #340
2014-11-17 23:41:46 +00:00
Pete Batard 306191fb85 [grub] add Grub4DOS support
* Also adds some stubs for Grub 2.0
* Also add a note about VS2013 CE in the readme
* Addresses the first part of #340
2014-11-14 23:46:56 +00:00
Pete Batard 2be12ff3b6 [ui] use "Segoe UI" as default font on Vista and later
* Greatly improves the display of non western character sets, such as CJK.
* Note: Since I'm no longer willing to go the extra mile for XP, the way we
  handle the non availability of the Segoe font there is by doing the lazy
  thing and duplicating all our UI resources, in a similar way as what we do
  for RTL, and setting them with the old "MS Shell Dlg".
* Also update some Syslinux V5 refs to Syslinux V6.
* Closes #308
2014-11-12 02:39:12 +00:00
Pete Batard 6ca024ae3b [syslinux] update Syslinux to v6.03
* Also add experimental support for Syslinux/NTFS
* Closes #391
2014-11-11 19:54:05 +00:00
Pete Batard d46342c16c [core] ensure AutoMount is enabled while the app is running
* Having AutoMount disabled when a Fixed drive is being used can
  result in a failure during formatting (issue #386).
* Also set explicit FILE_ATTRIBUTE_NORMAL flag an normalize CreateFile usage
* Closes #386
2014-11-11 19:17:39 +00:00
Pete Batard b6a52756cd [misc] fix the display of "task x/y" when formatting
* Using the famous URS™ (Under Rug Swept) technology
* Closes #182
2014-10-31 19:03:51 +00:00
Pete Batard 91565477ed [core] fix formatting for drives with nonstandard sector size
* Issue #385
* Also bump version to 1.4.11
2014-10-28 19:19:17 +00:00
Pete Batard 45714cf5fb [ui] UI fixes and improvements
* Fix missing DD-Image option when no drive is present
* Prevent formatting of a drive when using an image residing on same drive
* Fix ignored bootable checkbox when using a DD-Image
* Fix wrong title for error messages (due to too many concurrent loc messages)
2014-08-09 00:10:12 +01:00
Pete Batard 79a871be63 [core] improve handling of DD images and formatting task order
* Add logic to mount/remount a DD image if it contains a partition we can handle
* Clear GPT structures before copying DD image in case it doesn't overwrites them
* Add a call to refresh the drive layout after copying a DD image
* Move the unlocking of logical drive further down. This may help with the
  infamous "device in use by another process" error.
2014-08-07 01:45:46 +01:00
Pete Batard f6ab32c95d [misc] fix a crash when scanning a DD image with no UFD plugged in
* Also set the block size to 512 when scanning MBR and PBR
* Closes #352
2014-08-06 23:17:20 +01:00
Pete Batard 60c66ef813 [misc] fix division by zero if the sector size is misreported
* It looks like some disks may report a sector size of zero
* Hopefully, this will address #352 (but some report about the
  detected sector size from people observing the crash would be nice)
2014-08-03 19:34:01 +01:00
Pete Batard 04bd5116a7 [vhd] add backup to uncompressed VHD image
* Part of #321
* NOTE: This feature will be enabled after the 1.4.8 release
2014-05-23 01:03:01 +01:00
Pete Batard bfa1656488 [core] Add VHD source image support
* As part of #321
* Also improve FileDialog so that it can support multiple extensions
* Also fix a typo in rufus.loc
2014-05-22 01:52:25 +01:00
Pete Batard 9df63b3b2a [loc] update translation base to v1.0.12
* Also change UM_ISO_ constants to the more generic UM_PROGRESS_
2014-05-19 23:25:00 +01:00
Pete Batard b6bc17b7f4 [core] add KolibriOS support
* Closes #331
2014-05-15 21:17:12 +01:00
Pete Batard 7a3fb515ea [misc] more DLL handling improvements
* also set rufus-next to 1.4.8
2014-05-13 00:50:44 +01:00
Pete Batard 266599e6fd [misc] fix various Coverity issues
* update DLL load/unload
* fix resources not being freed and potentially unsafe calls
* add extra checks
2014-05-10 22:20:22 +01:00