Browse Source

[iso] fix a situation where no file system might be proposed in ISO mode

* The Nutanix phoenix.x86_64-fnd_5.6.1_patch-aos_6.8.1_ga.iso contains a GRUB bootloader that somehow stripped
  the 'fshelp' source string from the fat module, and therefore prevents Rufus from detecting that FAT32 support
  is available.
* As a result, since NTFS is also not supported, no file system able to be selected by the user for ISO mode,
  and the media creation process fails with "Could Not Partition Drive".
* Fix this by only disabling FAT32 in ISO mode if NTFS is available, and producing a warning in the log if we
  have to forcefully enable FAT32 even if we didn't detect FAT32 compatibility.
* Closes #2769.
* Also add the setup wrapper binaries produced from previous commit and harmonise the casing of WARNING messages.
pull/2779/head
Pete Batard 2 weeks ago
parent
commit
1a4175891b
No known key found for this signature in database GPG Key ID: 38E0CF5E69EDD671
  1. 10
      res/setup/readme.txt
  2. BIN
      res/setup/setup_arm64.exe
  3. BIN
      res/setup/setup_x64.exe
  4. 2
      src/dev.c
  5. 10
      src/drive.c
  6. 16
      src/format.c
  7. 4
      src/iso.c
  8. 2
      src/ms-sys/file.c
  9. 5
      src/msapi_utf8.h
  10. 2
      src/net.c
  11. 2
      src/process.c
  12. 15
      src/rufus.c
  13. 10
      src/rufus.rc
  14. 2
      src/stdfn.c
  15. 4
      src/stdio.c
  16. 10
      src/stdlg.c
  17. 4
      src/syslinux.c
  18. 2
      src/vhd.c
  19. 8
      src/wue.c

10
res/setup/readme.txt

@ -33,11 +33,11 @@ and can be validated to not have been tampered through SHA-256 validation (Since
produce SHA-256 hashes during the build process per:
https://github.com/pbatard/rufus/blob/master/.github/workflows/setup.yml).
Per the https://github.com/pbatard/rufus/actions/runs/15539519674 GitHub Actions
Per the https://github.com/pbatard/rufus/actions/runs/16191913388 GitHub Actions
workflow run, the SHA-256 for the executables (before signature was applied) were:
* bea9a68e73b53820ea9c3fcdda70b1615f7453ad483dd3aa06e0385fd28f004e *./setup_x64.exe
* f024aed61b1f215a3b684bbb2fd176893fc61f92243708a0d9334671df1cdb61 *./setup_arm64.exe
* f8e1c7c5f1297be7a76d73567d4d82f61bb20c2e5c86d2a2f8d2e5961751d658 *./setup_x64.exe
* e6ff77b859231cc58c872c7b14ce9def73244641e487bbb074d3a759bdfcbc8d *./setup_arm64.exe
You will also find the VirusTotal reports for the current signed executable at:
* https://www.virustotal.com/gui/file/41037f63f20f5984e5ca1dab12c033d795966e80bd8b76a39c1dc42a3dc33594/detection
* https://www.virustotal.com/gui/file/cc9cb4f4080db352d9a82ef926fc290d62a8d67a45a5557f46fa924a7b9bdbe3/detection
* https://www.virustotal.com/gui/file/11df838dc69378187e1e1aaf32d34384157642d07096c6e49c1d0e7375634544/detection
* https://www.virustotal.com/gui/file/14bd07f559513890a0f6565df3927392b4fe6b8e6fc3f5e832e9d69c8b7bb7eb/detection

BIN
res/setup/setup_arm64.exe

BIN
res/setup/setup_x64.exe

2
src/dev.c

@ -1015,7 +1015,7 @@ BOOL GetDevices(DWORD devnum)
}
num_drives++;
if (num_drives >= MAX_DRIVES)
uprintf("Warning: Found more than %d drives - ignoring remaining ones...", MAX_DRIVES);
uprintf("WARNING: Found more than %d drives - ignoring remaining ones...", MAX_DRIVES);
safe_free(devint_detail_data);
break;
}

10
src/drive.c

@ -166,7 +166,7 @@ static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWr
uprintf("Waiting for access on %s...", Path);
} else if (!bWriteShare && (i > DRIVE_ACCESS_RETRIES/3)) {
// If we can't seem to get a hold of the drive for some time, try to enable FILE_SHARE_WRITE...
uprintf("Warning: Could not obtain exclusive rights. Retrying with write sharing enabled...");
uprintf("WARNING: Could not obtain exclusive rights. Retrying with write sharing enabled...");
bWriteShare = TRUE;
// Try to report the process that is locking the drive
access_mask = GetProcessSearch(SEARCH_PROCESS_TIMEOUT, 0x07, FALSE);
@ -362,7 +362,7 @@ char* GetLogicalName(DWORD DriveIndex, uint64_t PartitionOffset, BOOL bKeepTrail
// NB: We need to re-add DRIVE_INDEX_MIN for this call since CheckDriveIndex() subtracted it
ret = AltGetLogicalName(DriveIndex + DRIVE_INDEX_MIN, PartitionOffset, bKeepTrailingBackslash, bSilent);
if ((ret != NULL) && (strchr(ret, ' ') != NULL))
uprintf("Warning: Using physical device to access partition data");
uprintf("WARNING: Using physical device to access partition data");
}
out:
@ -1148,7 +1148,7 @@ static BOOL _GetDriveLettersAndType(DWORD DriveIndex, char* drive_letters, UINT*
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL, 3000);
if (hDrive == INVALID_HANDLE_VALUE) {
if (GetLastError() == WAIT_TIMEOUT)
uprintf("Warning: Time-out while trying to query drive %c", toupper(drive[0]));
uprintf("WARNING: Time-out while trying to query drive %c", toupper(drive[0]));
continue;
}
@ -1883,7 +1883,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys
SelectedDrive.SectorSize = DiskGeometry->Geometry.BytesPerSector;
SelectedDrive.FirstDataSector = MAXDWORD;
if (SelectedDrive.SectorSize < 512) {
suprintf("Warning: Drive 0x%02x reports a sector size of %d - Correcting to 512 bytes.",
suprintf("WARNING: Drive 0x%02x reports a sector size of %d - Correcting to 512 bytes.",
DriveIndex, SelectedDrive.SectorSize);
SelectedDrive.SectorSize = 512;
}
@ -2126,7 +2126,7 @@ BOOL MountVolume(char* drive_name, char *volume_name)
}
uprintf("Retrying after dismount...");
if (!DeleteVolumeMountPointA(drive_name))
uprintf("Warning: Could not delete volume mountpoint '%s': %s", drive_name, WindowsErrorString());
uprintf("WARNING: Could not delete volume mountpoint '%s': %s", drive_name, WindowsErrorString());
if (SetVolumeMountPointA(drive_name, volume_name))
return TRUE;
if ((GetLastError() == ERROR_DIR_NOT_EMPTY) &&

16
src/format.c

@ -745,7 +745,7 @@ static BOOL ClearMBRGPT(HANDLE hPhysicalDrive, LONGLONG DiskSize, DWORD SectorSi
}
liFilePointer.QuadPart = 0ULL;
if (!SetFilePointerEx(hPhysicalDrive, liFilePointer, &liFilePointer, FILE_BEGIN) || (liFilePointer.QuadPart != 0ULL))
uprintf("Warning: Could not reset disk position");
uprintf("WARNING: Could not reset disk position");
if (!WriteFileWithRetry(hPhysicalDrive, pZeroBuf, (DWORD)(SectorSize * num_sectors_to_clear), NULL, WRITE_RETRIES))
goto out;
CHECK_FOR_USER_CANCEL;
@ -807,7 +807,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
if (buffer[0x1c2] == 0x0e) {
uprintf("Partition is already FAT16 LBA...");
} else if ((buffer[0x1c2] != 0x04) && (buffer[0x1c2] != 0x06)) {
uprintf("Warning: converting a non FAT16 partition to FAT16 LBA: FS type=0x%02x", buffer[0x1c2]);
uprintf("WARNING: converting a non FAT16 partition to FAT16 LBA: FS type=0x%02x", buffer[0x1c2]);
}
buffer[0x1c2] = 0x0e;
break;
@ -815,7 +815,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
if (buffer[0x1c2] == 0x0c) {
uprintf("Partition is already FAT32 LBA...");
} else if (buffer[0x1c2] != 0x0b) {
uprintf("Warning: converting a non FAT32 partition to FAT32 LBA: FS type=0x%02x", buffer[0x1c2]);
uprintf("WARNING: converting a non FAT32 partition to FAT32 LBA: FS type=0x%02x", buffer[0x1c2]);
}
buffer[0x1c2] = 0x0c;
break;
@ -1170,7 +1170,7 @@ static BOOL WriteDrive(HANDLE hPhysicalDrive, BOOL bZeroDrive)
// We poked the MBR and other stuff, so we need to rewind
li.QuadPart = 0;
if (!SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN))
uprintf("Warning: Unable to rewind image position - wrong data might be copied!");
uprintf("WARNING: Unable to rewind image position - wrong data might be copied!");
UpdateProgressWithInfoInit(NULL, FALSE);
if (bZeroDrive) {
@ -1532,7 +1532,7 @@ DWORD WINAPI FormatThread(void* param)
safe_unlockclose(hPhysicalDrive);
PrintInfo(0, MSG_239, lmprintf(MSG_307));
if (!is_vds_available || !DeletePartition(DriveIndex, 0, TRUE)) {
uprintf("Warning: Could not delete partition(s): %s", is_vds_available ? WindowsErrorString() : "VDS is not available");
uprintf("WARNING: Could not delete partition(s): %s", is_vds_available ? WindowsErrorString() : "VDS is not available");
SetLastError(ErrorStatus);
ErrorStatus = 0;
// If we couldn't delete partitions, Windows give us trouble unless we
@ -1845,7 +1845,7 @@ DWORD WINAPI FormatThread(void* param)
// the name we proposed, and we require an exact label, to patch config files.
if ((fs_type < FS_EXT2) && !GetVolumeInformationU(drive_name, img_report.usb_label,
ARRAYSIZE(img_report.usb_label), NULL, NULL, NULL, NULL, 0)) {
uprintf("Warning: Failed to refresh label: %s", WindowsErrorString());
uprintf("WARNING: Failed to refresh label: %s", WindowsErrorString());
} else if (IS_EXT(fs_type)) {
const char* ext_label = GetExtFsLabel(DriveIndex, 0);
if (ext_label != NULL)
@ -1944,7 +1944,7 @@ DWORD WINAPI FormatThread(void* param)
uprintf("Installing: %s (KolibriOS loader)", kolibri_dst);
if (ExtractISOFile(image_path, "HD_Load/USB_Boot/MTLD_F32", kolibri_dst,
FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM) == 0) {
uprintf("Warning: loader installation failed - KolibriOS will not boot!");
uprintf("WARNING: Loader installation failed - KolibriOS will not boot!");
}
}
// EFI mode selected, with no 'boot###.efi' but Windows 7 x64's 'bootmgr.efi' (bit #0)
@ -2004,7 +2004,7 @@ DWORD WINAPI FormatThread(void* param)
UpdateProgress(OP_EXTRACT_ZIP, 0.0f);
drive_name[2] = 0;
if (archive_path != NULL && fs_type < FS_EXT2 && !ExtractZip(archive_path, drive_name) && !IS_ERROR(ErrorStatus))
uprintf("Warning: Could not copy additional files");
uprintf("WARNING: Could not copy additional files");
}
out:

4
src/iso.c

@ -2031,7 +2031,7 @@ static DWORD WINAPI OpticalDiscSaveImageThread(void* param)
// In case someone poked the disc before us
li.QuadPart = 0;
if (!SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN))
uprintf("Warning: Unable to rewind device position - wrong data might be copied!");
uprintf("WARNING: Unable to rewind device position - wrong data might be copied!");
hDestImage = CreateFileU(img_save->ImagePath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hDestImage == INVALID_HANDLE_VALUE) {
@ -2058,7 +2058,7 @@ static DWORD WINAPI OpticalDiscSaveImageThread(void* param)
// Optical drives do not appear to increment the sectors to read automatically
li.QuadPart = wb;
if (!SetFilePointerEx(hPhysicalDrive, li, NULL, FILE_BEGIN))
uprintf("Warning: Unable to set device position - wrong data might be copied!");
uprintf("WARNING: Unable to set device position - wrong data might be copied!");
s = ReadFile(hPhysicalDrive, buffer,
(DWORD)MIN(img_save->BufSize, img_save->DeviceSize - wb), &rSize, NULL);
if (!s) {

2
src/ms-sys/file.c

@ -59,7 +59,7 @@ int64_t write_sectors(HANDLE hDrive, uint64_t SectorSize,
{
/* Some large drives return 0, even though all the data was written - See github #787 */
if (large_drive && Size == 0) {
uprintf("Warning: Possible short write\n");
uprintf("WARNING: Possible short write\n");
return 0;
}
uprintf("write_sectors: Write error\n");

5
src/msapi_utf8.h

@ -644,9 +644,8 @@ static __inline BOOL GetTextExtentPointU(HDC hdc, const char* lpString, LPSIZE l
return ret;
}
// A UTF-8 alternative to MS GetCurrentDirectory() since the latter is useless for
// apps installed from the App Store...
static __inline DWORD GetCurrentDirectoryU(DWORD nBufferLength, char* lpBuffer)
// Gets the directory where the executable resises, through GetModuleFileName()
static __inline DWORD GetAppDirectoryU(DWORD nBufferLength, char* lpBuffer)
{
DWORD i, ret = 0, err = ERROR_INVALID_DATA;
// coverity[returned_null]

2
src/net.c

@ -514,7 +514,7 @@ static void CheckForDBXUpdates(int verbose)
WriteSetting64(reg_name, timestamp);
uprintf("Saved %s as 'dbx_%s.bin'", dbx_info[i].url, efi_archname[i + 1]);
} else
uprintf("Warning: Failed to download %s", dbx_info[i].url);
uprintf("WARNING: Failed to download %s", dbx_info[i].url);
}
}

2
src/process.c

@ -697,7 +697,7 @@ static DWORD WINAPI SearchProcessThread(LPVOID param)
out:
if (!bInitSuccess)
uprintf("Warning: Could not start process handle enumerator!");
uprintf("WARNING: Could not start process handle enumerator!");
if (wHandleName != NULL) {
for (j = 0; j < nHandles; j++)

15
src/rufus.c

@ -192,8 +192,13 @@ static void SetAllowedFileSystems(void)
if ((image_path == NULL) || !HAS_NTFSLESS_GRUB(img_report))
allowed_filesystem[FS_NTFS] = TRUE;
// Don't allow anything besides NTFS if the image is not compatible
if ((image_path != NULL) && !IS_FAT32_COMPAT(img_report))
if ((image_path != NULL) && !IS_FAT32_COMPAT(img_report)) {
// Only disable FAT32 if we have NTFS enabled
if (allowed_filesystem[FS_NTFS])
break;
// Else, print a warning
uprintf("WARNING: FAT32 has been forcefully enabled, but this image may not work with FAT32.");
}
if (!HAS_WINDOWS(img_report) || (target_type != TT_BIOS) || allow_dual_uefi_bios) {
if (!HAS_WINTOGO(img_report) || (ComboBox_GetCurItemData(hImageOption) != IMOP_WIN_TO_GO)) {
allowed_filesystem[FS_FAT16] = TRUE;
@ -2112,7 +2117,7 @@ static void InitDialog(HWND hDlg)
len = 0;
buf = (char*)GetResource(hMainInstance, resource[i], _RT_RCDATA, "ldlinux_sys", &len, TRUE);
if (buf == NULL) {
uprintf("Warning: could not read embedded Syslinux v%d version", i + 4);
uprintf("WARNING: could not read embedded Syslinux v%d version", i + 4);
} else {
embedded_sl_version[i] = GetSyslinuxVersion(buf, len, &ext);
static_sprintf(embedded_sl_version_str[i], "%d.%02d", SL_MAJOR(embedded_sl_version[i]), SL_MINOR(embedded_sl_version[i]));
@ -3351,7 +3356,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
is_x86_64 = (strcmp(APPLICATION_ARCH, "x64") == 0);
// Retrieve various app & system directories.
if (GetCurrentDirectoryU(sizeof(app_dir), app_dir) == 0) {
if (GetAppDirectoryU(sizeof(app_dir), app_dir) == 0) {
uprintf("Could not get application directory: %s", WindowsErrorString());
static_strcpy(app_dir, ".\\");
} else {
@ -3362,7 +3367,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
static_strcat(app_dir, "\\");
}
// In the wonderful world of Microsoft Windows, GetCurrentDirectory() returns the
// In the wonderful world of Microsoft Windows, GetCurrentDirectory() may return the
// directory where the application resides, instead of the real current directory
// so we need another method to resolve the *ACTUAL* current directory.
static_strcpy(cur_dir, ".\\");
@ -3821,7 +3826,7 @@ relaunch:
// Set the hook to automatically close Windows' "You need to format the disk in drive..." prompt
SetAlertPromptMessages();
if (!SetAlertPromptHook())
uprintf("Warning: Could not set alert prompt hook");
uprintf("WARNING: Could not set alert prompt hook");
ShowWindow(hDlg, SW_SHOWNORMAL);
UpdateWindow(hDlg);

10
src/rufus.rc

@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 232, 326
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Rufus 4.10.2266"
CAPTION "Rufus 4.10.2267"
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
BEGIN
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@ -407,8 +407,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,10,2266,0
PRODUCTVERSION 4,10,2266,0
FILEVERSION 4,10,2267,0
PRODUCTVERSION 4,10,2267,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -426,13 +426,13 @@ BEGIN
VALUE "Comments", "https://rufus.ie"
VALUE "CompanyName", "Akeo Consulting"
VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "4.10.2266"
VALUE "FileVersion", "4.10.2267"
VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2025 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
VALUE "OriginalFilename", "rufus-4.10.exe"
VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "4.10.2266"
VALUE "ProductVersion", "4.10.2267"
END
END
BLOCK "VarFileInfo"

2
src/stdfn.c

@ -83,7 +83,7 @@ BOOL htab_create(uint32_t nel, htab_table* htab)
return FALSE;
}
if_not_assert(htab->table == NULL) {
uprintf("Warning: htab_create() was called with a non empty table");
uprintf("WARNING: htab_create() was called with a non empty table");
return FALSE;
}

4
src/stdio.c

@ -618,7 +618,7 @@ BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWr
// Need to get the current file pointer in case we need to retry
readFilePointer = SetFilePointerEx(hFile, liZero, &liFilePointer, FILE_CURRENT);
if (!readFilePointer)
uprintf("Warning: Could not read file pointer %s", WindowsErrorString());
uprintf("WARNING: Could not read file pointer %s", WindowsErrorString());
if (nNumRetries == 0)
nNumRetries = 1;
@ -634,7 +634,7 @@ BOOL WriteFileWithRetry(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWr
return TRUE;
// Some large drives return 0, even though all the data was written - See github #787 */
if (large_drive && (*lpNumberOfBytesWritten == 0)) {
uprintf("Warning: Possible short write");
uprintf("WARNING: Possible short write");
return TRUE;
}
uprintf("Wrote %d bytes but requested %d", *lpNumberOfBytesWritten, nNumberOfBytesToWrite);

10
src/stdlg.c

@ -700,7 +700,7 @@ static INT_PTR CALLBACK CustomSelectionCallback(HWND hDlg, UINT message, WPARAM
SetDarkModeForDlg(hDlg);
// Don't overflow our max radio button
if (nDialogItems > (IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1 + 1)) {
uprintf("Warning: Too many options requested for Selection (%d vs %d)",
uprintf("WARNING: Too many options requested for Selection (%d vs %d)",
nDialogItems, IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1);
nDialogItems = IDC_SELECTION_CHOICEMAX - IDC_SELECTION_CHOICE1;
}
@ -895,7 +895,7 @@ INT_PTR CALLBACK ListCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
SetDarkModeForDlg(hDlg);
// Don't overflow our max radio button
if (nDialogItems > (IDC_LIST_ITEMMAX - IDC_LIST_ITEM1 + 1)) {
uprintf("Warning: Too many items requested for List (%d vs %d)",
uprintf("WARNING: Too many items requested for List (%d vs %d)",
nDialogItems, IDC_LIST_ITEMMAX - IDC_LIST_ITEM1);
nDialogItems = IDC_LIST_ITEMMAX - IDC_LIST_ITEM1;
}
@ -1034,7 +1034,7 @@ INT_PTR CALLBACK TooltipCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM
#ifdef _DEBUG
// comctl32 causes issues if the tooltips are not being manipulated from the same thread as their parent controls
if (GetCurrentThreadId() != MainThreadId)
uprintf("Warning: Tooltip callback is being called from wrong thread");
uprintf("WARNING: Tooltip callback is being called from wrong thread");
#endif
return CallWindowProc(ttlist[i].original_proc, hDlg, message, wParam, lParam);
}
@ -2023,11 +2023,11 @@ void SetAlertPromptMessages(void)
// 4126 = "Format disk" (button)
if (LoadStringU(hMui, 4125, title_str[0], sizeof(title_str[0])) <= 0) {
static_strcpy(title_str[0], "Microsoft Windows");
uprintf("Warning: Could not locate localized format prompt title string in '%s': %s", mui_path, WindowsErrorString());
uprintf("WARNING: Could not locate localized format prompt title string in '%s': %s", mui_path, WindowsErrorString());
}
if (LoadStringU(hMui, 4126, button_str, sizeof(button_str)) <= 0) {
static_strcpy(button_str, "Format disk");
uprintf("Warning: Could not locate localized format prompt button string in '%s': %s", mui_path, WindowsErrorString());
uprintf("WARNING: Could not locate localized format prompt button string in '%s': %s", mui_path, WindowsErrorString());
}
FreeLibrary(hMui);
}

4
src/syslinux.c

@ -294,8 +294,8 @@ BOOL InstallSyslinux(DWORD drive_index, char drive_letter, int file_system)
if (i > 0)
img_report.cfg_path[i] = '/';
if (w < 0) {
uprintf("Could not patch Syslinux files.");
uprintf("WARNING: This could be caused by your firewall having modified downloaded content, such as 'ldlinux.sys'...");
uprintf("WARNING: Could not patch Syslinux files.");
uprintf("This could be caused by your firewall having modified downloaded content, such as 'ldlinux.sys'...");
goto out;
}

2
src/vhd.c

@ -619,7 +619,7 @@ BOOL SaveImage(void)
// Start from the end of our extension array, since '.vhd' would match for '.vhdx' otherwise
for (i = (UINT)img_ext.count; (i > 0) && (strstr(img_save.ImagePath, &img_ext.extension[i - 1][1]) == NULL); i--);
if (i == 0) {
uprintf("Warning: Can not determine image type from extension - Saving to uncompressed VHD.");
uprintf("WARNING: Can not determine image type from extension - Saving to uncompressed VHD.");
i = image_type_vhd;
} else {
save_image_type = (char*)&img_ext.extension[i - 1][2];

8
src/wue.c

@ -601,14 +601,14 @@ int SetWinToGoIndex(void)
// If we are parsing such an ISO, try to fall back to using DESCRIPTION.
if (StrArrayAdd(&version_name, ezxml_child_val(image, "DISPLAYNAME"), TRUE) < 0) {
if (StrArrayAdd(&version_name, ezxml_child_val(image, "DESCRIPTION"), TRUE) < 0) {
uprintf("Warning: Could not find a description for image index %d", i + 1);
uprintf("WARNING: Could not find a description for image index %d", i + 1);
StrArrayAdd(&version_name, "Unknown Windows Version", TRUE);
}
bNonStandard = TRUE;
}
}
if (bNonStandard)
uprintf("Warning: Nonstandard Windows image (missing <DISPLAYNAME> entries)");
uprintf("WARNING: Nonstandard Windows image (missing <DISPLAYNAME> entries)");
if (i > 1)
// NB: _log2 returns -2 if SelectionDialog() returns negative (user cancelled)
@ -624,7 +624,7 @@ int SetWinToGoIndex(void)
PopulateWindowsVersionFromXml(xml, xml_len, i - 1);
// If we couldn't obtain the major and build, we have a problem
if (img_report.win_version.major == 0 || img_report.win_version.build == 0)
uprintf("Warning: Could not obtain version information from XML index (Nonstandard Windows image?)");
uprintf("WARNING: Could not obtain version information from XML index (Nonstandard Windows image?)");
uprintf("Will use '%s' (Build: %d, Index %s) for Windows To Go",
version_name.String[i - 1], img_report.win_version.build, version_index.String[i - 1]);
// Need Windows 10 Creator Update or later for boot on REMOVABLE to work
@ -953,7 +953,7 @@ BOOL ApplyWindowsCustomization(char drive_letter, int flags)
// (provided that the registry key creation was the only item for this pass)
if ((flags & UNATTEND_WINPE_SETUP_MASK) == UNATTEND_SECUREBOOT_TPM_MINRAM) {
if (replace_in_token_data(unattend_xml_path, "<settings", "windowsPE", "disabled", FALSE) == NULL)
uprintf("Warning: Could not disable 'windowsPE' pass from unattend.xml");
uprintf("WARNING: Could not disable 'windowsPE' pass from unattend.xml");
// Remove the flags, since we accomplished the registry creation outside of unattend.
flags &= ~UNATTEND_SECUREBOOT_TPM_MINRAM;
} else {

Loading…
Cancel
Save