diff --git a/base/setup/lib/bootsup.c b/base/setup/lib/bootsup.c index 4c57fc8218b..1ee5f8c133d 100644 --- a/base/setup/lib/bootsup.c +++ b/base/setup/lib/bootsup.c @@ -880,7 +880,6 @@ InstallMbrBootCodeToDisk( InstallMbrBootCode); } - static NTSTATUS InstallBootloaderFiles( @@ -895,7 +894,19 @@ InstallBootloaderFiles( CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer, L"\\loader\\freeldr.sys"); CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"freeldr.sys"); - DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath); + DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath); + Status = SetupCopyFile(SrcPath, DstPath, FALSE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("SetupCopyFile() failed (Status 0x%08lx)\n", Status); + return Status; + } + + /* Copy rosload to the system partition, always overwriting the older version */ + CombinePaths(SrcPath, ARRAYSIZE(SrcPath), 2, SourceRootPath->Buffer, L"\\loader\\rosload.exe"); + CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"rosload.exe"); + + DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath); Status = SetupCopyFile(SrcPath, DstPath, FALSE); if (!NT_SUCCESS(Status)) { diff --git a/base/setup/lib/utils/bldrsup.c b/base/setup/lib/utils/bldrsup.c index ad13cbe51df..097a79dc222 100644 --- a/base/setup/lib/utils/bldrsup.c +++ b/base/setup/lib/utils/bldrsup.c @@ -124,7 +124,7 @@ NtLdrEnumerateBootEntries( // Question 2: What if many config files are possible? NTOS_BOOT_LOADER_FILES NtosBootLoaders[] = { - {FreeLdr, L"freeldr.sys\0", L"freeldr.ini", + {FreeLdr, L"freeldr.sys\0" L"rosload.exe\0", L"freeldr.ini", OpenIniBootLoaderStore, CloseIniBootLoaderStore, (PENUM_BOOT_STORE_ENTRIES)FreeLdrEnumerateBootEntries}, {NtLdr , L"ntldr\0" L"osloader.exe\0", L"boot.ini", OpenIniBootLoaderStore, CloseIniBootLoaderStore, (PENUM_BOOT_STORE_ENTRIES)NtLdrEnumerateBootEntries },