]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Fix the "Failed to open random seed ..." message.
authorlongpanda <59477474+ventoy@users.noreply.github.com>
Thu, 5 Aug 2021 01:31:44 +0000 (09:31 +0800)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 9 Aug 2021 08:56:01 +0000 (10:56 +0200)
When boot ArchLinux from Ventoy, it always print `Failed to open random seed file: write protected.`
As Ventoy emulate the ISO file as a read-only CDROM, I didn't test with a real physical CDROM drive, but maybe it also has such problem.
As we use `EFI_FILE_MODE_WRITE`  to open the `loader\random-seed` file, so I think it's better to check the result with both  `EFI_WRITE_PROTECTED` and `EFI_NOT_FOUND`.

src/boot/efi/random-seed.c

index ff364695f352982871e37bda4480b6b89f893c76..3e179851b0805cd8ddd0f90dbf6576da9d19baf6 100644 (file)
@@ -245,7 +245,7 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
 
         err = uefi_call_wrapper(root_dir->Open, 5, root_dir, &handle, (CHAR16*) L"\\loader\\random-seed", EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0ULL);
         if (EFI_ERROR(err)) {
-                if (err != EFI_NOT_FOUND)
+                if (err != EFI_NOT_FOUND && err != EFI_WRITE_PROTECTED)
                         Print(L"Failed to open random seed file: %r\n", err);
                 return err;
         }