On my laptop, there are two instances of Windows 10. Upon inspecting the Boot Entries using VisualBCD, I found that the initial entry is for Windows A:
This refers to the entry for Windows B:
I have included two entries into the refind.conf file:
menuentry "Work Station" {
icon \EFI\refind\themes\icons\os_win.png
volume 4:
loader \Windows\system32\winload.efi
}
menuentry "Music Station" {
icon \EFI\refind\themes\icons\os_unknown.png
volume 5:
loader \Windows\system32\winload.efi
}
Upon rebooting my laptop, I am directed to the rEFInd bootloader. However, upon selecting one of the two entries, an error message pops up indicating that the winload.efi cannot be located.
The only way to access one of the two Windows instances is by selecting the automatically detected entry, which leads to the Windows bootloader, and then selecting either Windows A or B. I am struggling to find a way to directly boot into one of the two Windows instances without having to go through the Windows bootloader.
I have tried various methods such as using C or D and the GUIDs of the volumes in the volume section of the menu entries, but nothing seems to work.
3 Answers
Understanding the Issue of Two Windows 10 Instances on a Laptop
Having two instances of Windows 10 on a laptop can cause issues with booting the system. It can lead to confusion and complications when trying to access one of the instances. In this situation, the user is struggling to directly boot into one of the two Windows instances without having to go through the Windows bootloader.
The issue is that the bootloader is not able to locate the winload.efi file when selecting one of the two entries. This is causing an error message to pop up, making it difficult to access the Windows instances. The user has tried various methods to solve the issue, but nothing seems to work.
Possible Solutions to the Issue
There are several possible solutions to the issue of having two Windows 10 instances on a laptop. The first solution is to use the bcdedit command to modify the boot configuration data. This can be done by opening the command prompt as an administrator and typing the following command:
bcdedit /default {GUID}
Replace {GUID} with the GUID of the Windows instance that you want to boot into by default. This will set the default boot option to the specified Windows instance, allowing you to directly boot into it without going through the Windows bootloader.
Another solution is to use the EasyBCD software to modify the boot configuration data. This software provides a graphical user interface that makes it easy to modify the boot configuration data. Simply select the Windows instance that you want to boot into by default and set it as the default boot option.
If none of these solutions work, you can try using a third-party bootloader such as rEFInd. This bootloader provides a graphical user interface that allows you to select the Windows instance that you want to boot into. Simply install rEFInd and add the Windows instances to the boot menu.
Using rEFInd to Solve the Issue
If you decide to use rEFInd to solve the issue, there are a few steps that you need to follow. First, download the rEFInd software and extract it to a folder on your computer. Next, open the folder and run the install.sh script as an administrator. This will install rEFInd on your computer.
Once rEFInd is installed, you need to add the Windows instances to the boot menu. To do this, open the refind.conf file located in the /boot/efi/EFI/refind/ folder. Add the following lines to the file:
menuentry "Work Station" {
icon EFIrefindthemesiconsos_win.png
volume 4:
loader Windowssystem32winload.efi
}
menuentry "Music Station" {
icon EFIrefindthemesiconsos_unknown.png
volume 5:
loader Windowssystem32winload.efi
}
Replace “Work Station” and “Music Station” with the names of your Windows instances. Replace the volume numbers with the volume numbers of your Windows instances. Save the file and exit.
Now, when you reboot your computer, you should be directed to the rEFInd bootloader. From here, you can select the Windows instance that you want to boot into. This should allow you to directly boot into the specified Windows instance without having to go through the Windows bootloader.
Conclusion
Having two instances of Windows 10 on a laptop can cause issues with booting the system. However, there are several possible solutions to this issue. You can use the bcdedit command or the EasyBCD software to modify the boot configuration data. If these solutions do not work, you can try using a third-party bootloader such as rEFInd.
Using rEFInd can be an effective solution to the issue. By adding the Windows instances to the boot menu, you can directly boot into the specified Windows instance without having to go through the Windows bootloader. Follow the steps outlined in this post to solve the issue of having two Windows 10 instances on a laptop.
It looks like you are trying to use the rEFInd boot manager to boot into one of the two Windows instances on your laptop. In order to do this, you will need to specify the correct path to the winload.efi
file for each of the Windows instances.
The winload.efi
file is responsible for loading the Windows operating system, and it is typically located in the \Windows\System32
folder. It is possible that the path to the winload.efi
file is incorrect in the refind.conf
file, which is why you are seeing the error message when you try to boot into one of the Windows instances.
To fix this issue, you will need to determine the correct path to the winload.efi
file for each of the Windows instances and update the refind.conf
file accordingly. You can do this by using the bcdedit
command in the Windows command prompt to list the boot entries for each of the Windows instances.
To do this, follow these steps:
- Boot into one of the Windows instances.
- Open the command prompt as an administrator.
- Type the following command and press Enter:
bcdedit /enum
- This will display a list of boot entries for the current Windows instance. Look for an entry that has
winload.efi
as the value for thedevice
orpath
property. - Take note of the value for the
identifier
property for this entry. You will need this value in the next step. - Type the following command and press Enter, replacing
IDENTIFIER
with the value you obtained in the previous step:bcdedit /enum IDENTIFIER
- This will display the details for the boot entry with the specified
identifier
. Look for the value of thedevice
orpath
property. This is the correct path to thewinload.efi
file for the current Windows instance. - Repeat steps 3-6 for the other Windows instance.
- Once you have determined the correct paths to the
winload.efi
files for both Windows instances, update therefind.conf
file to use these paths in theloader
property for the respectivemenuentry
entries.
After updating the refind.conf
file with the correct paths to the winload.efi
files, you should be able to boot directly into either of the two Windows instances by selecting the corresponding entry in the rEFInd boot menu.
A possible approach to achieve this is by having two EFI partitions. The individual writing this statement employs rEFInd as a boot manager, and they have attached a screenshot of it:
By observing the screenshot, you can notice that the operating system chosen is the one in the middle, and the displayed text indicates that it will boot Microsoft EFI Boot from the ESP, leading to the launch of Windows on Disk2 partition 4. Alternatively, if the user selected the OS on the left-hand side, the text would say Boot Microsoft EFI Boot from EFI, and it would initiate Windows on Disk0 partition 3 (as illustrated in the partitions below).
The refind.conf file detects these options automatically, with the manual stanza for Windows 10 being disabled to prevent it from showing up on the right-hand side, which the writer dislikes:
timeout 5
use_nvram false
# UI
hideui hints,arrows,badges
banner themes/colourful/10-6.png
selection_big themes/colourful/selection_big.png
selection_small themes/colourful/selection_small.png
showtools shell,csr_rotate,apple_recovery,shutdown
# mac stuff
csr_values 10,77
spoof_osx_version 10.9
enable_and_lock_vmx true
# search locations
scanfor internal,external,biosexternal,optical,manual
dont_scan_volumes "RECOVERY","FAT VOLUME","Windows"
#dont_scan_dirs +,EFI:/EFI/Boot,EFI:/EFI/GRUB,C12A7328-F81F-11D2-BA4B-00A0C93EC93B:/EFI/Microsoft
dont_scan_dirs +,EFI:/EFI/Boot,EFI:/EFI/GRUB
menuentry "Windows 10" {
icon \EFI\refind\myicons\os_win_old.png
loader \EFI\Microsoft\Boot\bootmgfw.efi
disabled
}
These are my physical partitions:
A1398% diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Microsoft Reserved 16.8 MB disk0s2
3: Microsoft Basic Data Windows 68.2 GB disk0s3
4: Windows Recovery 1.1 GB disk0s4
5: Microsoft Basic Data Data 107.4 GB disk0s5
6: Linux Filesystem 12.9 GB disk0s6
7: Apple_APFS Container disk1 53.7 GB disk0s7
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *250.1 GB disk2
1: EFI ESP 209.7 MB disk2s1
2: Apple_HFS SamsungHFS 76.3 GB disk2s2
3: Apple_APFS Container disk3 50.0 GB disk2s3
4: Microsoft Basic Data SamsungNTFS 85.2 GB disk2s4
5: Microsoft Basic Data exFAT 26.8 GB disk2s5
6: Linux Filesystem 10.7 GB disk2s6
I possess two disks, and one of the EFI partitions is labeled ESP. However, the specific volume names are not significant to the writer. They named the internal one EFI and the external one ESP for easier distinction between the two.
Each of the ESP and EFI volumes includes the directory EFI/Microsoft/Boot, and they both contain the Microsoft bootloader bootmgrfw.efi and the BCD file within that same directory.
rEFInd employs the chosen bootmgrfw.efi, which is capable of detecting NTFS without requiring the rEFInd NTFS driver. This executable then accesses the BCD file in its own directory to determine the appropriate Windows bootloader to launch.
Each Windows BCD has a single entry that corresponds to itself, and thus, choosing the appropriate icon on rEFInd initiates the respective Windows instance directly, bypassing any queries from the Windows bootloader.
You can configure this feature in the boot tab of the msconfig utility in Windows. In each Windows instance, you must define only one boot entry.
It is plausible to replicate this behavior with a single EFI partition by either copying the entirety of EFI/Microsoft/Boot to EFI/Boot or creating a second EFI partition on the same disk. However, the writer has not attempted this since they only require the second Windows instance to be available when the external drive is connected.