diff --git a/.gitignore b/.gitignore index b178099..a9d9b9e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ -_book/ .vuepress/dist node_modules/ .vscode/ .DS_Store package-lock.json -yarn.lock \ No newline at end of file +yarn* \ No newline at end of file diff --git a/.vuepress/config.js b/.vuepress/config.js index 9f07722..a43baba 100755 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -102,16 +102,15 @@ module.exports = { children: [ ['/Intro/Def', 'What is it?'], ['/Intro/Booting-part', 'UEFI? Legacy? CSM? What?'], - ['/Intro/disc', 'Disclaimer'], ] }, { - title: 'Multibooting Situations', + title: 'UEFI Multibooting', collapsable: false, sidebarDepth: 1, children: [ - ['/empty/', 'Multibooting Situations'], + ['/empty/', 'Empty Disk(s)'], { collapsable: false, sidebarDepth: 1, @@ -120,7 +119,7 @@ module.exports = { ['/empty/diffdisk', 'Multiple disks - multiple OSes'], ] }, - ['/exist/', 'Existing Filled Disk'], + ['/exist/', 'Existing Filled Disk(s)'], { collapsable: false, sidebarDepth: 1, @@ -131,19 +130,36 @@ module.exports = { }, ] + }, + { + title: 'Troubleshooting', + collapsable: false, + sidebarDepth: 1, + children: [ + ['troubleshooting', 'Troubleshooting'], + ] + }, { title: 'OpenCore configuration', collapsable: false, sidebarDepth: 1, children: [ - ['/oc/win', 'For Windows booting'], ['/oc/linux', 'For Linux booting'], ['/oc/duet', 'Installing OpenCore on a legacy system'], ['https://dortania.github.io/OpenCore-Post-Install/multiboot/bootstrap.html', 'Using LauncherOption'], ['https://dortania.github.io/OpenCore-Post-Install/multiboot/bootcamp.html', 'BootCamp installation'], ] + }, + { + title: 'Windows 10 manual and automatic Installation', + collapsable: false, + sidebarDepth: 1, + children: [ + ['Win', 'Windows 10 manual and automatic Installation'], + ] + }, ], }, diff --git a/Intro/Booting-part.md b/Intro/Booting-part.md index 01de52a..851a65c 100644 --- a/Intro/Booting-part.md +++ b/Intro/Booting-part.md @@ -8,7 +8,7 @@ Usually, 2012+ computers that came with Windows 8 would have a UEFI firmware (so - Loads its integrated drivers and services - Reads the boot menu entries and start loading the first boot entry - If failed starts the next one -- Loads the bootloader +- Loads the bootloader - OS is loaded after that. Usually, the said "bootloader" is contained somewhere in the disk, and that somewhere is called a **EFI Partition**. You can find this named different things like ESP (EFI System Partition), SYSTEM, EFI, BOOT and so on. This partition is **FAT32** formatted and flagged as **EF00** in MBR or **C12A7328-F81F-11D2-BA4B-00A0C93EC93B** GUID in GPT. This partition contains usually the EFI applications (like an OS bootloader) in it that are loaded at boot by the UEFI firmware (remember this as it is important for later for recovery). @@ -19,12 +19,12 @@ Contrary to UEFI, Legacy systems are older and much more mature (dating back to These systems rely on another method of loading the bootloader. This piece of software is usually written in the first sectors of the disk (formatted as MBR) called **boot sector**, this sector is usually 512 or 4096 bytes big, the BIOS would then read the code, copy it to memory and then execute it, at that point an OS or Bootloader menu (like GRUB2) will show up: -* BIOS Starts up -* Reads the **boot sector** -* Loads the program into memory -* Executes the program -* Bootloader appears - * The OS will boot now. +- BIOS Starts up +- Reads the **boot sector** +- Loads the program into memory +- Executes the program +- Bootloader appears + - The OS will boot now. # Major differences between the systems @@ -68,7 +68,7 @@ Check **BIOS Mode**, it will either say **UEFI** or **Legacy**. Note that this i ### Method 1 -On most Linux distributions, you can run +On most Linux distributions, you can run ```ls /sys/firmware/efi``` diff --git a/Intro/Def.md b/Intro/Def.md index aa422be..1a24a00 100644 --- a/Intro/Def.md +++ b/Intro/Def.md @@ -19,5 +19,4 @@ Now that you made the difference, there are thing you need to know about dualboo But before starting any of this -# PLEASE BACKUP YOUR DATA. - +# PLEASE BACKUP YOUR DATA diff --git a/Intro/disc.md b/Intro/disc.md deleted file mode 100644 index 3e3105d..0000000 --- a/Intro/disc.md +++ /dev/null @@ -1,5 +0,0 @@ -# Disclaimer - -We are not responsible for bricked devices, dead hard drives, thermonuclear war, or you getting fired because you got a kernel panic and didn't save your work. You are responsible for reading everything carefully before you do anything. Do your research and ask for support if you have any questions or issues before trying random things on the internet because "it's the internet". If you do, YOU are choosing to follow random things on the internet, and if YOU point the finger at us for messing up your device, WE will laugh at you. - -So please backup your data and have a plan B in case things break (unlikely, but it happens more than you know). \ No newline at end of file diff --git a/QUICK.md b/QUICK.md index 0682105..8901f5c 100644 --- a/QUICK.md +++ b/QUICK.md @@ -33,13 +33,6 @@ Ok, if you're quite experienced with how partitioning and booting multiple OSes - If you're using linux it's the same steps as earlier (just 200MB EFI partition and somewhere to put macOS on) - Make sure the disk doesn't have any S.M.A.R.T errors - DO NOT have multiple EFIs on the same disk, you **MUST** only have **ONE** EFI partition per disk -- The OS Install order **does not matter at all** - - however windows can be a bit of a bitch, so installing it after macOS can be challenging, linux doesn't pose such problems - - If you happen to stumble on the sad windows crap you can: - - Boot windows installer - - Erase the partition where you want windows to be installed on to NTFS (as expected) - - Follow the rest from this [guide over at TenForums](https://www.tenforums.com/tutorials/84331-apply-windows-image-using-dism-instead-clean-install.html#Part2) - - You do NOT need MSR and Recovery, and you cannot create them when there are things already installed on the disk (blame windows installer) - - TODO: some way of creating a separate windows Recovery, I cannot find any guide on how to do that so that Windows would recognize it natively, if you know of a guide or know how to do it, open [a PR](https://github.com/dortania/OpenCore-Multiboot/) or [an issue](https://github.com/dortania/bugtracker) with your ideas. +- The OS Install order **does not matter at all**, however windows can be a bit of a bitch, so installing it after macOS can be challenging, linux doesn't pose such problems. [If you happen to stumble on the sad windows crap](./troubleshooting.md#Windows) -Now that you have all these information, good luck with the rest. However if you're not sure, follow then the long way that has more explanations and details on how to properly do it. \ No newline at end of file +Now that you have all these information, good luck with the rest. However if you're not sure, follow then the long way that has more explanations and details on how to properly do it. diff --git a/README.md b/README.md index 1353f31..72d0dae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Multiboot with OpenCore -Hello there! Looks like you're trying to get macOS and `$(OtherOS)` installed on your system, but you also do not want to mess `$(OtherOS)` or macOS in the process. You will be guided here through a multitude of steps to achieve just that while keeping the OS setups as unaffected as possible. +Hello there! Looks like you're trying to get macOS and `[OtherOS]` installed on your system, but you also do not want to mess `[OtherOS]` or macOS in the process. You will be guided here through a multitude of steps to achieve just that while keeping the OS setups as unaffected as possible. ## Firmware Types @@ -11,19 +11,24 @@ Multibooting is greatly affected by the type of firmware you're running. This gu The differences are minimal once you're using OpenCore but also it might be a bit difficult for the latter. Other than that, this guide will cover these elements: -1. What is multibooting and how does it work? -2. Partitioning vs Disk separating +1. Introduction to multi-booting + 1. What is it? + 2. UEFI? Legacy? CSM? What? 2. UEFI - 1. One disk for all OSes - 2. Different disks for different OSes -3. Legacy - 1. One disk for all OSes - 2. Different disks for different OSes -5. Troubleshooting -6. Tips and Tricks - -### Disclaimer - -We are not responsible for bricked devices, dead hard drives, thermonuclear war, or you getting fired because you got a kernel panic and didn't save your work. You are responsible for reading everything carefully before you do anything. Do your research and ask for support if you have any questions or issues before trying random things on the internet because "it's the internet". If you do, YOU are choosing to follow random things on the internet, and if YOU point the finger at us for messing up your device, WE will laugh at you. - -Now that we got that out of our way let's get going, and good luck. + 1. Multibooting on empty drives + 1. One disk for all OSes + 2. Different disks for different OSes + 2. Multibooting on filled drives + 1. One disk for all OSes + 2. Different disks for different OSes +3. Opencore Configuration + 1. For Linux booting + 2. For Legacy/CSM/BIOS booting +4. Troubleshooting +5. Windows installation + +## Disclaimer + +We are not responsible for bricked devices, dead hard drives, thermonuclear war, or you getting fired because you got a kernel panic and didn't save your work. You are responsible for reading everything carefully before you do anything. Do your research and ask for support if you have any questions or issues before trying random things on the internet because "it's the internet". If you do, YOU are choosing to follow random things on the internet, and if YOU point the finger at us for messing up your device, WE will laugh at you. + +So please backup your data and have a plan B in case things break (unlikely, but it happens more than you know). diff --git a/Win.md b/Win.md new file mode 100644 index 0000000..4673ab8 --- /dev/null +++ b/Win.md @@ -0,0 +1,120 @@ +# Installation of Windows 10 + +**Work in Progess**, you can help contibute via [PRs](https://github.com/dortania/OpenCore-Multiboot/pulls). This guide referes to Windows 10, however it's still valid for Windows 8/8.1. (for Windows 7 or older, follow the legacy section (duetpkg configurations only)) + +## Downloading and flashing Windows 10 + +You can download Windows in different ways. In this guide we talk about Windows 10. So: + +- [Downloading from MacOS/Linux](#MacOS/Linux) +- [Downloading from Windows](#Windows) + +### Macos + +Requirement: + +- [Windows 10 ISO file](https://www.microsoft.com/software-download/windows10) +- An USB device + +Download the appropriate ISO for your Country + +Open Boot Camp Assistant and click on "Create a windows 10 device" + +Wait until it finishes flashing, then boot on the USB. + +### Linux + +Requirement: + +- [Windows 10 ISO file](https://www.microsoft.com/software-download/windows10) +- An USB device +At the moment use or dd + +### Windows + +Requirement: + +- [MediaCreationTool](https://www.microsoft.com/software-download/windows10) + ![Media Creation Tool Download page](./images/win-md/dlMediaCreationTool.png) +- [Rufus](https://rufus.ie) +- An USB device + +Open MediaCreationTool and download the ISO file for your system (32 or 64 bits). + +Open rufus, connect the usb and setup rufus with the appropriate settings for your system. Wait until it finishes of flashing, then boot on the USB. + +![UEFI](/images/win-md/rufus.png) + +## Installing Windows 10 + +![The usb booted up](/images/win-md/esd-iso.png) + +When the usb booted, you can chose what to do: + +- [Install Windows 10 automatically](#Automatically) +- [Install Windows 10 manually](#Manually) (only when there are problems or when you want to control the procedure) + +### Automatically + +Follow the procedure printed on screen! + +![Installation image](/images/win-md/installation.png) + +### Manually + +This guide it's planned for a full installation. If you want to do a dualboot you can create the partition as you want. To open a terminal window use the key combo SHIFT-F10 + +Find and remember your path to install.esd/install.wim file. I suppose that `` it will be its path. + +#### Creating partitions + +You have to choose: + +- Create the partitions [automatically](#Automatically-partitions) +- Create the partition [manually](#Manually-partitions) + +##### Automatically partitions + +NOTE: This process can be followed only on blank disks. + +Follow the procedure since appears this section: + +![Custom installation](/images/win-md/custom.png) + +Select "Custom", remove all partitions and finally click on "Create". Windows will ask you a confirm, then you did it! + +##### Manually partitions + +![Windows UEFI partitions](/images/win-md/part.png) + +You can customize the commands (SHIFT+F10 to open Command Prompt) to your disk layout. If you felt more confortful, you could create all your partition (specify the size) on the diskmanagement screen (see [automatically](#Automatically-partitions)) and then installing manually (only blank disks). + +Type `diskpart` + +Type `list disk` and remember the disk number where you want to install Windows + +Type `sel disk 0` where 0 is the number of your disk + +Type `clean` to format the whole disk (optional) + +Type `convert gpt` to convert the disk to GPT (it would give an error if it was already converted, no problem) (risk of lose your data!!!) + +Type `create part efi size 200` to create the EFI partition (default size 200 MB), then type `format quick fs fat32` to format it and `assign letter q` to assign correctly our EFI partition. + +Type `create part msr size 128` to create the MSR partition (default size 128 MB, shouldn't be changed; used by some strange Windows things). + +Type `create part primary size 128000` to create the main partition (default size = [total space] - 450MB of WinRE - 128MB of MSR - 200MB of EFI. I remember that the size value must be in MB) --> default size = [total space] - 778MB, then type `format quick` to format it and `assign letter c` to assign correctly our drive. + +After that we set up the recovery enviroment: type `create part primary` (default size 450, the remaining part of the disk), `set id de94bba4-06d1-4d40-a16a-bfd50179d6ac` to change the type of partition (primary-->WINRE, more infos [here](https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs)),`gpt attributes 0x8000000000000001` to hide it,`format quick` to format it in NTFS. + +Type `exit` to quit diskpart. + +#### Install Windows + +Type `dism /get-wiminfo /wimfile:` to get the number of your edition. + +Type `dism /apply-image /imagefile: /index:4 /applydir:c:\` to flash the WIM/ESD image to your disk where 4 is changed as you edition number. + +Type `bcdboot c:\windows /s q:\` to create the boot files on the EFI disk (Caution! if OpenCore was present, Windows cannot inject your EFI). + +Reboot and hope everything work. diff --git a/empty/README.md b/empty/README.md index 8bb0729..9f525b2 100644 --- a/empty/README.md +++ b/empty/README.md @@ -2,4 +2,4 @@ This section will show you the tips and tricks of installing different OSes on empty drive(s) like on a newly built desktop or a FreeDOS laptop. It will contain information on the install order and technicalities of dualbooting. This is not limited to macOS only, it can be also helpful for multibooting other OSes with each other. -Let's get started... \ No newline at end of file +Let's get started... diff --git a/empty/diffdisk.md b/empty/diffdisk.md index 6d169c5..5af3cbb 100644 --- a/empty/diffdisk.md +++ b/empty/diffdisk.md @@ -3,15 +3,12 @@ I will not get too long in this part as it's the EASIEST one: * Install macOS on one of the disks -* Install $(SECONDOS) on the other disk +* Install `[OtherOS]` on the other disk * Install/copy OpenCore on the macOS disk EFI * You're good to go Things to keep in mind: -- Windows can be a bitch when it comes to multidisk setups (it freaks out when it sees a lot of EFI partitions on a lot of disks) -- If the above happens, disable/disconnect all the other disks and install windows as you would normally do - - For laptops this can be a pain, you can install windows manually by following [this guide from TenForums](https://www.tenforums.com/tutorials/84331-apply-windows-image-using-dism-instead-clean-install.html) - - Make sure you choose the proper disk -- You can still refer to other situations if you want to dualboot more than one OS on one of the disks. -- Make sure that OpenCore is on the same disk of macOS for easier troubleshooting and cleaner setup \ No newline at end of file +* If you have issues, please see the [troubleshooting section](../troubleshooting.md) +* You can still refer to other situations if you want to dualboot more than one OS on one of the disks. +* Make sure that OpenCore is on the same disk of macOS for easier troubleshooting and cleaner setup diff --git a/empty/samedisk.md b/empty/samedisk.md index e82452f..8eeb951 100644 --- a/empty/samedisk.md +++ b/empty/samedisk.md @@ -6,7 +6,7 @@ Basically, you only have one empty disk and you want to install multiple OSes to - BACKUP YOUR DATA - If possible, disconnect or disable any other disk/drive in your system, as it may interfere with the install procedure (especially windows') -- The drive isn't corrupted or have bad sectors +- The drive isn't corrupted or have bad sectors - Stable power input ## Situation this applies for @@ -36,21 +36,19 @@ Here is how it goes: 2. Once done, select "Partition", press "**+**" and choose the size of the other partition(s), "Format" MUST be `Mac OS Extended` or `APFS` (otherwise, macOS will convert the drive to hMBR which will break Windows installation). ![You can add as many partitions as you like, **Remember their sizes**](../images/disku2.png) 3. Hit Apply and let it do its thing: - * NOTE: on some macOS releases/setups, the disk utility may suddenly crash and send you back to the main menu, DO NOT PANIC (~~that sure helps~~), just wait for a minute or two then open disk utility back and check if the formatting is done. + - NOTE: on some macOS releases/setups, the disk utility may suddenly crash and send you back to the main menu, DO NOT PANIC (~~that sure helps~~), just wait for a minute or two then open disk utility back and check if the formatting is done. 4. Once done, you can install macOS on the partition of your choosing and continue along. #### Note -* You can still do the above if you have macOS already installed, do NOT use bootcamp assistant. - * BootCamp assistant will add extra drivers to the Windows installer that we do not need. +- You can still do the above if you have macOS already installed, do NOT use bootcamp assistant. + - BootCamp assistant will add extra drivers to the Windows installer that we do not need. ### For the others #### Windows -Windows can be a bit of a bitch when it comes to installing it as a second OS (like some kind of insult or just Microsoft doesn't realize that there are other OSes than Windows /s). Create your windows installer (on another computer with the windows creation disk utility or [Rufus](https://rufus.ie)) - -In case Windows has any issues while installing, boot back to the installer, remove the MSR/Recovery/Windows partitions that the installer made (there may be more, make sure you do not delete macOS or other OSes partitions), and follow [this guide over at TenForums](https://www.tenforums.com/tutorials/84331-apply-windows-image-using-dism-instead-clean-install.html) on how to install windows manually using the `dism` tool. +Create your windows installer (on another computer with the windows creation disk utility or [Rufus](https://rufus.ie)). If you have issues, please see the [troubleshooting section](../troubleshooting.md) #### Linux diff --git a/exist/README.md b/exist/README.md index 8c11708..de95b43 100644 --- a/exist/README.md +++ b/exist/README.md @@ -4,4 +4,4 @@ This section will explain how to deal with disks with data already in use in the This section is meant for those who have disks with an OS installed on it already, or just a secondary disk with partitions other than OSes. To be honest, either way, they both follow the same idea and procedures, but just to help with some special cases, it has been decided to split them into two different categories. -Let's get started... \ No newline at end of file +Let's get started... diff --git a/exist/data.md b/exist/data.md index abb8092..cde6c89 100644 --- a/exist/data.md +++ b/exist/data.md @@ -30,10 +30,10 @@ Note: we do not speak of the MBR patch, that's a bad idea and really should not ![img](../images/ex-data/mbvm.png) - Go to *Volumes* and check *Partition Style* - **MBR** drives will show: - + ![image-20200825010342403](../images/ex-data/mbr_disk.png) - **GPT** drives will show: - + ![image-20200825010434237](../images/ex-data/gpt_disk.png) #### In Linux @@ -90,7 +90,7 @@ Note: we do not speak of the MBR patch, that's a bad idea and really should not #### Destructive Conversion -This method will destroy all your data on your disk, making you a clean slate to work with. **Only use this if the data in the disk is not important or backed up already! YOUR DATA WILL BE GONE WITH THIS METHOD.** +This method will destroy all your data on your disk, making you a clean slate to work with. **Only use this if the data in the disk is not important or backed up already! YOUR DATA WILL BE GONE WITH THIS METHOD.** You can use any partitioning tool of your choice and destroy the data, OR you can just boot macOS installer that you made with the OpenCore Dortania Guide and select the disk and format it. You can check [Dualbooting on the same disk](../empty/samedisk.md) section for more information. You're not required to follow the rest of this section. @@ -100,7 +100,7 @@ This method has higher chances of keeping your data intact, **however this does We will be using `gdisk` ran on any linux distribution, I strongly NOT recommend using Windows or macOS gdisk to perform this operation as it may break seeing how Windows and macOS disk handling differs from Linux. You can use a USB distribution like `gparted` (lightweight iso/usb image) to do the manipulations or any distribution disk in hand (arch, Ubuntu, Fedora...). -- Download/Install `gdisk` following you distribution +- Download/Install `gdisk` following you distribution - Run `lsblk` to check for the destination drive identifiers @@ -140,9 +140,9 @@ Once your drive is converted, check again following the instruction above. You m ## Partitioning the Disk -Once you converted (or already formated) your disk is GPT, it is time to repartition it for macOS partition and the EFI partition if there isn't. +Once you converted (or already formated) your disk is GPT, it is time to repartition it for macOS partition and the EFI partition if there isn't. -### Checking the disk existing partitions: +### Checking the disk existing partitions Just because the disk is now GPT partitioned, it doesn't mean that macOS will accept it, macOS's HFS Plus (Mac OS Journaled File System) or APFS won't accept formatting it and will return an error with `MediaKit reports not enough space on device for requested operation`, this is because either there is no EFI partition or it's not large enough. Either way, if you're just using a disk with non-OS data, chances are you do not have that partition and we will have to make one. @@ -154,7 +154,7 @@ With that said, we still need to determine if it's required or not: - Check your destination disk - In case your disk already contains an EFI partition: (usually if your disk was already GPT or formatted before) ![img](../images/ex-data/gpt_efi.png) - - You'll see a description with `(EFI SYSTEM PARTITION)` + - You'll see a description with `(EFI SYSTEM PARTITION)` - The size of this partition is usually between 100MB and 500MB (any more and it's a waste of storage space) - In case the size of it is <200MB, **expand** the partition to 200MB (or a bit more) - In case the size of it is >500MB, **shrink** the partition to 500MB (or 200MB) because it's a waste of space @@ -164,7 +164,7 @@ With that said, we still need to determine if it's required or not: #### In Linux -- Download/Install `gdisk` following you distrubution +- Download/Install `gdisk` following you distrubution - Run `lsblk` to check for the destination drive identifiers @@ -313,7 +313,7 @@ In this section I'll be using MPW, the other tools are very similar and have ver - Run the following commands: - - `list disk` + - `list disk` - Will show your disks, check the destination disk carefully - You can check Disk Manager as the disk numbering is the same @@ -322,7 +322,7 @@ In this section I'll be using MPW, the other tools are very similar and have ver - Where X is your destination disk number - - `list part` + - `list part` - Will list partitions on that selected disk - Check the partitions as it may help you check for the destination @@ -410,4 +410,4 @@ We'll be using your favorite tool Gparted, if you're using parted/gpart, you're - You can also check in `gdisk` for `EF00` -- Once done you can go to **Partitioning for macOS** \ No newline at end of file +- Once done you can go to **Partitioning for macOS** diff --git a/images/bootcamp-md/done.png b/images/bootcamp-md/done.png deleted file mode 100755 index 7289c88..0000000 Binary files a/images/bootcamp-md/done.png and /dev/null differ diff --git a/images/bootcamp-md/error.png b/images/bootcamp-md/error.png deleted file mode 100644 index f79155d..0000000 Binary files a/images/bootcamp-md/error.png and /dev/null differ diff --git a/images/bootcamp-md/extension.png b/images/bootcamp-md/extension.png deleted file mode 100755 index 32f27df..0000000 Binary files a/images/bootcamp-md/extension.png and /dev/null differ diff --git a/images/bootcamp-md/location.png b/images/bootcamp-md/location.png deleted file mode 100755 index e9e5f46..0000000 Binary files a/images/bootcamp-md/location.png and /dev/null differ diff --git a/images/troubleshooting/Bsod.png b/images/troubleshooting/Bsod.png new file mode 100644 index 0000000..8f211a4 Binary files /dev/null and b/images/troubleshooting/Bsod.png differ diff --git a/images/win-md/blessoverride.png b/images/troubleshooting/blessoverride.png similarity index 100% rename from images/win-md/blessoverride.png rename to images/troubleshooting/blessoverride.png diff --git a/images/troubleshooting/msr.png b/images/troubleshooting/msr.png new file mode 100644 index 0000000..668145a Binary files /dev/null and b/images/troubleshooting/msr.png differ diff --git a/images/troubleshooting/winre.png b/images/troubleshooting/winre.png new file mode 100644 index 0000000..607cb3d Binary files /dev/null and b/images/troubleshooting/winre.png differ diff --git a/images/win-md/custom.png b/images/win-md/custom.png new file mode 100644 index 0000000..1ea8bb7 Binary files /dev/null and b/images/win-md/custom.png differ diff --git a/images/win-md/dlMediaCreationTool.png b/images/win-md/dlMediaCreationTool.png new file mode 100644 index 0000000..951c4f8 Binary files /dev/null and b/images/win-md/dlMediaCreationTool.png differ diff --git a/images/win-md/esd-iso.png b/images/win-md/esd-iso.png new file mode 100644 index 0000000..0271ed7 Binary files /dev/null and b/images/win-md/esd-iso.png differ diff --git a/images/win-md/installation.png b/images/win-md/installation.png new file mode 100644 index 0000000..15b56a7 Binary files /dev/null and b/images/win-md/installation.png differ diff --git a/images/win-md/part.png b/images/win-md/part.png new file mode 100644 index 0000000..c1c83a8 Binary files /dev/null and b/images/win-md/part.png differ diff --git a/images/win-md/rufus.png b/images/win-md/rufus.png new file mode 100644 index 0000000..3a848b7 Binary files /dev/null and b/images/win-md/rufus.png differ diff --git a/oc/bootcamp.md b/oc/bootcamp.md deleted file mode 100644 index d07a6c1..0000000 --- a/oc/bootcamp.md +++ /dev/null @@ -1,143 +0,0 @@ -# Installing and using BootCamp utilities - - - -So a neat feature of OpenCore is the ability to avoid the BIOS entirely and use the Startup disk solely for multiboot. The problem comes in when we try to boot windows and have no way of setting the boot option back to macOS. That's where the BootCamp utilities come in. - -* Note: This guide will not cover the creation of the Windows installer, only the installation of BootCamp drivers. - * Example of Windows installer creation: [Build a Bootable Windows ISO](https://www.freecodecamp.org/news/how-make-a-windows-10-usb-using-your-mac-build-a-bootable-iso-from-your-macs-terminal/) - * Reminder: Windows **MUST** be GPT/GUID based, OpenCore will not boot legacy installs -* Note 2: Using BootCamp utilities from macOS will erase the EFI/BOOT/BOOTx64.efi file on your EFI, which is needed for booting OpenCore. And OpenCore itself does not support MBR based installs so the utility is useless to us - -## Preparations - -To start we'll need the following: - -* Windows already installed - * MUST be UEFI/GPT based -* [Brigadier](https://github.com/corpnewt/brigadier) - * To download the BootCamp drivers -* SMBIOS injection enabled - * As the drivers have a SMBIOS check -* Setup [Bootstrap.efi](/post-install/multiboot/bootstrap.md) - * Not required but can help alleviate headaches when Windows erases the BOOTx64.efi OpenCore uses - -## Installation - -To install, it's as simple as grabbing [Brigadier](https://github.com/corpnewt/brigadier) and running either `Brigadier.bat` for Windows or `Brigadier.command` for macOS. If the SMBIOS you're currently using either has BootCamp issues or want to download for another SMBIOS, you can add `-- model{SMBIOS}` to the end: - -``` -cd path/to/Brigadier -brigadier.bat --model MacPro7,1 -``` - -* **Note**: Older versions of the BootCamp installer(6.0) do not support APFS, you'll need to either choose a newer SMBIOS that would have it bundled (ie. iMac 19,1 or MacPro7,1) or after installation update your bootcamp software. See below for more details on troubleshooting: [Windows Startup Disk can't see APFS drives](#windows-startup-disk-cant-see-apfs-drives) - -![](../images/bootcamp-md/extension.png) - -Next, you will find our bootcamp drivers under either: - -* Windows: - -``` -path\to\Brigadier\BootCamp-{version} -``` - -* macOS: - -``` -path/to/Brigadier/BootCamp-{version}/WindowsSupport.dmg -``` - -macOS users will next need to expand WindowsSupport.dmg and place it somewhere Windows can get. - -![](../images/bootcamp-md/done.png) - -Next navigate to the `bootcamp-{version}\BootCamp` folder and run the Setup.exe: - -![](../images/bootcamp-md/location.png) - -Once all is finished, you now have BootCamp switching! There should be a little BootCamp icon in your tray now that you can select which drive to boot to. - -* Note: For those no needing the extra drivers BootCamp provides, you can delete the following: - * `$WinPEDriver$`: **DO NOT** delete the folder itself, just the drivers inside - * Apple Wifi card users will want to keep the following: - * `$WinPEDriver$/BroadcomWireless` - * `$WinPEDriver$/BroadcomBluetooth` - * `$WinPEDriver$/AppleBluetoothBroadcom` - * `BootCamp/Drivers/...` - * **DO NOT** delete `BootCamp/Drivers/Apple` - * Apple Wifi card users will want to keep the following: - * `BootCamp/Drivers/Broadcom/BroadcomBluetooth` - -## Troubleshooting - -* [Can't find Windows/BootCamp drive in picker](#cant-find-windowsbootcamp-drive-in-picker) -* ["You can't change the startup disk to the selected disk" error](#you-cant-change-the-startup-disk-to-the-selected-disk-error) -* [Booting Windows results in BlueScreen or Linux crashes](#booting-windows-results-in-bluescreen-or-linux-crashes) -* [Booting Windows error: `OCB: StartImage failed - Already started`](#booting-windows-error-ocb-startimage-failed---already-started) -* [Windows Startup Disk can't see APFS drives](#windows-startup-disk-cant-see-apfs-drives) - -## Can't find Windows/BootCamp drive in picker - -So with OpenCore, we have to note that legacy Windows installs are not supported, only UEFI. Most installs now are UEFI based but those made by BootCamp Assistant in macOS are legacy based, so you'll have to find other means to make an installer(Google's your friend). This also means MasterBootRecord/Hybrid partitions are also broken so you'll need to format the drive you want to install onto with DiskUtility. - -Now to get onto troubleshooting: - -* Make sure `Misc -> Security -> ScanPolicy` is set to `0` to show all drives - -If Windows and OpenCore's boot loaders are on the same drive, you'll need to add a BlessOverride entry: - -``` -Misc -> BlessOverride -> \EFI\Microsoft\Boot\bootmgfw.efi -``` - -* **Note**: As of OpenCore 0.5.9, this no longer needs to be specified. OpenCore should pick up on this entry automatically - -![](../images/win-md/blessoverride.png) - -## "You can't change the startup disk to the selected disk" error - -This is commonly caused by either: - -* 3rd Party NTFS Drivers (ie. Paragon) -* Irregular partition setup of the Windows drive, specifically that the EFI is not the first partition. -* You have BitLocker enabled - -To fix the first, either disable or uninstall these tools. - -To fix the second, we need to enable this quirk: - -* `PlatformInfo -> Generic -> AdviseWindows -> True` - -![](../images/bootcamp-md/error.png) - -To fix the third, you will be required to lift Bitlocker encryption. - -## Booting Windows results in BlueScreen or Linux crashes - -This is due to alignment issues, make sure `SyncRuntimePermissions` is enabled on firmwares supporting MATs. Check your logs whether your firmware supports Memory Attribute Tables(generally seen on 2018 firmwares and newer) - -For Z390 and newer motherboards, you'll also want to enable `ProtectUefiServices` to ensure OpenCore's patches are applying correctly. - -If your firmware is quite old(generally 2013 and older), you'll want to enable `ProtectMemoryRegions`. - -Due to the variations of firmwares from vendor to vendor, you'll need to play around with the combination of these 3 quirks and see which works best. - -Common Windows error code: - -* `0xc000000d` - -## Booting Windows error: `OCB: StartImage failed - Already started` - -This is due to OpenCore getting confused when trying to boot Windows and accidentally thinking it's booting OpenCore. This can be avoided by either move Windows to its own drive *or* adding a custom drive path under BlessOverride. See [Configuration.pdf](https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf) and [Can't find Windows/BootCamp drive in picker](#cant-find-windowsbootcamp-drive-in-picker) entry for more details. - -## Windows Startup Disk can't see APFS drives - -* Outdated BootCamp drivers(generally ver 6.0 will come with brigadier, BootCamp Utility in macOS provides newer version like ver 6.1). You can try to alleviate these issues by either updating to the newest release with Apple's software updater or selecting a newer SMBIOS from brigadier (ie. `--model iMac19,1`) and when running brigadier. - -For the latter, you'll need to run the following(replace `filename.msi` with the BootCamp installation msi): - -``` -msiexec.exe /x "c:\filename.msi" -``` diff --git a/oc/bootstrap.md b/oc/bootstrap.md deleted file mode 100644 index 16df451..0000000 --- a/oc/bootstrap.md +++ /dev/null @@ -1,53 +0,0 @@ -# Using Bootstrap.efi - -* [Preparation](#preperation) -* [Troubleshooting](#troubleshooting) -* [Quick UEFI Shell Reference Guide](#quick-uefi-shell-reference-guide) -* [Adding OpenCore to your BIOS](#adding-opencore-to-your-bios) - -So with OpenCore 0.5.8 and newer, we get a neat little file inside our EFI/OC/Bootstrap folder called Bootstrap.efi. What this allows us to do is add OpenCore to our motherboard's boot menu and prevent issues where either Windows or Linux try to overwrite the BOOTx64.efi file which can happen during updates and completely delete any way of booting OpenCore. - -## Preparation - -So to start we're gonna need the following: - -* [OpenCore 0.5.8 or newer](https://github.com/acidanthera/OpenCorePkg/releases) - * Verify you have EFI/OC/Bootstrap/Bootstrap.efi -* config.plist settings: - * Misc -> Security -> BootProtect -> Bootstrap - * UEFI -> Quirks -> RequestBootVarRouting -> True -* [OpenShell](https://github.com/acidanthera/OpenCorePkg/releases) - * Bundled with OpenCore - * Remember to add this to both EFI/OC/Tools and config.plist -> Misc -> Tools - * This is mainly for troubleshooting - -## Booting - -So once you've got the prerequisites out of the way, we're ready to boot! So what the first boot with these settings enabled is to create a new boot option in our BIOS(Boot9696) and every boot after this will update the entry making sure it's correct. This now allows us to either remove BOOTx64.efi or not worry about it when other OSes overwrite this file. - -If no new boot option is created, you can go down and follow the troubleshooting steps on manually adding it. But triple check the above settings are correct on your system. - -## Troubleshooting - -This is mainly as a mini-guide in case BootProtect doesn't work or you'd like to do it manually. - -* [Verify Bootstrap entry was applied](#verify-bootstrap-entry-was-applied) -* [Removing Bootstrap entry from BIOS](#removing-bootstrap-entry-from-bios) - -### Verify Bootstrap entry was applied - -For those wanting to verify that the entry was applied in OpenCore, enabling logging(see [OpenCore Debugging](/troubleshooting/debug.md)) and check for entries similar to these: - -``` -OCB: Have existing option 1, valid 1 -OCB: Boot order has first option as the default option -``` - -### Removing Bootstrap entry from BIOS - -Because the Bootstrap entry is a protected entry when resetting NVRAM, you'll need to set certain settings: - -* Misc -> Security -> AllowNvramReset -> true -* Misc -> Security -> BootProtect -> None - -Once these 2 are set in your config.plist, you can next reboot into the OpenCore picker and select the `Reset NVRAM` entry diff --git a/oc/linux.md b/oc/linux.md index d2527fc..9fee20b 100644 --- a/oc/linux.md +++ b/oc/linux.md @@ -58,26 +58,26 @@ Some common Linux bootloader paths: ... ``` - - Check for the mount point section to get your system root `/` partition (here `sda3`) - - `/boot/efi` has my EFI partition mounted in it (if you properly added it in fstab, which you should) - - the bootloader/manager is in `/boot/efi` - - `/boot/efi` partition number is `1` in this case (it could be `sda1` or `nvme0nXp1` or anything else), if you have your EFI in another partition please remember which number it is + * Check for the mount point section to get your system root `/` partition (here `sda3`) + * `/boot/efi` has my EFI partition mounted in it (if you properly added it in fstab, which you should) + * the bootloader/manager is in `/boot/efi` + * `/boot/efi` partition number is `1` in this case (it could be `sda1` or `nvme0nXp1` or anything else), if you have your EFI in another partition please remember which number it is 2. Change the directory to where your EFI partition is mounted by running `cd /path/to/efi` (for example `cd /boot/efi`) 3. Once you're in, you'll usually find a folder named `EFI` which contains `BOOT` and other folders, one of these folders *may* contain your bootloader/manager EFI Application binary, commonly found in - - `EFI/arch/grubx64.efi` - for Arch with grub2 - - `EFI/ubuntu/grubx64.efi` - for Ubuntu with grub2 - - `EFI/systemd/systemd-bootx64.efi` - for systemd-boot (path used with Arch) - - `EFI/fedora/grubx64.efi` - for Fedora with grub2 - - or run `find . -iname "grubx64.efi"` or `find . -iname "systemd-bootx64.efi"` in your EFI folder (you can change the file name to whatever you're using) + * `EFI/arch/grubx64.efi` - for Arch with grub2 + * `EFI/ubuntu/grubx64.efi` - for Ubuntu with grub2 + * `EFI/systemd/systemd-bootx64.efi` - for systemd-boot (path used with Arch) + * `EFI/fedora/grubx64.efi` - for Fedora with grub2 + * or run `find . -iname "grubx64.efi"` or `find . -iname "systemd-bootx64.efi"` in your EFI folder (you can change the file name to whatever you're using) 4. Keep note of: - - the binary path - - the binary's partition number - - the binary's disk path (`/dev/sda` or `/dev/nvme0nX`) + * the binary path + * the binary's partition number + * the binary's disk path (`/dev/sda` or `/dev/nvme0nX`) 4. Install `efibootmgr` in your linux system (usually it comes built-in in ubuntu, but requires install on arch for example) @@ -87,11 +87,11 @@ Some common Linux bootloader paths: efibootmgr -c -L "Linux" -l "\EFI\pathto\filex64.efi" -d "/dev/sda" -p 1 ``` - - `-c`: Create - - `-L "Linux"`: Label the boot entry (you can change it to whatever you want) - - `-l "\EFI\pathto\filex64.efi"`: loader file path, must be in a format the UEFI Firmware can use, which means `\` for pathing instead of `/` you find in unix - - `-d "/dev/sda"`: disk path so that `efibootmgr` know which disk the UEFI firmware should read the file from, it can be `/dev/nvme0nX` (with X as a number) if you're using NVMe - - `-p 1`: point the partition number we found earlier, in case your EFI partition is the first one, this can be omitted + * `-c`: Create + * `-L "Linux"`: Label the boot entry (you can change it to whatever you want) + * `-l "\EFI\pathto\filex64.efi"`: loader file path, must be in a format the UEFI Firmware can use, which means `\` for pathing instead of `/` you find in unix + * `-d "/dev/sda"`: disk path so that `efibootmgr` know which disk the UEFI firmware should read the file from, it can be `/dev/nvme0nX` (with X as a number) if you're using NVMe + * `-p 1`: point the partition number we found earlier, in case your EFI partition is the first one, this can be omitted 6. Reboot and check OpenCore, **you will find a new entry named `EFI`**, there can be many as it can also point to other boot entries, that's by design by OpenCore, not a bug. @@ -109,7 +109,7 @@ We first need to determine your root partition and its UUID/PARTUUID, this infor #### 1. Your kernel and system root are in the same partition: (using Arch in this example) -- In a terminal window on your linux install, run `lsblk` (available in most distributions) +* In a terminal window on your linux install, run `lsblk` (available in most distributions) ```shell $ lsblk @@ -122,20 +122,20 @@ We first need to determine your root partition and its UUID/PARTUUID, this infor ... ``` - - Check for the mount point section to get your system root `/` partition (here `sda3`) - - `/boot/efi` has my EFI partition mounted in it (if you properly added it in fstab, which you should) - - the kernel and initramfs are stored in `/boot` which is part of my main system root partition + * Check for the mount point section to get your system root `/` partition (here `sda3`) + * `/boot/efi` has my EFI partition mounted in it (if you properly added it in fstab, which you should) + * the kernel and initramfs are stored in `/boot` which is part of my main system root partition -- Now we need to know which UUID/PARTUUID, run `blkid | grep -i ` , eg: `blkid | grep -i sda3` (must be root user) +* Now we need to know which UUID/PARTUUID, run `blkid | grep -i ` , eg: `blkid | grep -i sda3` (must be root user) ```shell # blkid | grep -i sda3 /dev/sda3: UUID="3d4768d7-d33e-4f9f-a821-e80eba22ca62" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a1073e53-c768-4ce5-89ad-b558669bdb89" ``` - - You'll get both your UUID/PARTUUID, save these somewhere. + * You'll get both your UUID/PARTUUID, save these somewhere. -- Explore `/boot` and list your files, you should find your kernel and initramfs +* Explore `/boot` and list your files, you should find your kernel and initramfs ```shell $ cd /boot @@ -149,11 +149,11 @@ We first need to determine your root partition and its UUID/PARTUUID, this infor -rw-r--r-- 1 root root 7541344 Sep 22 23:31 vmlinuz-linux ``` - - You see my kernel is named `vmlinuz-linux` with `initramfs-linux.img` as its initramfs, with a fallback img, but also `intel-ucode.img` for the trash intel mitigation - - In case you're using AMD, you might also find `amd-ucode.img` - - Some other distributions may have these images stored somewhere else, check your distribution and how it handles CPU ucode firmware + * You see my kernel is named `vmlinuz-linux` with `initramfs-linux.img` as its initramfs, with a fallback img, but also `intel-ucode.img` for the trash intel mitigation + * In case you're using AMD, you might also find `amd-ucode.img` + * Some other distributions may have these images stored somewhere else, check your distribution and how it handles CPU ucode firmware -- Reboot to OpenCore, and press Space, it should show more options, one of them should be OpenShell.efi. In case you do not have it, download the OpenCore zip, and take it from OC/Tools, and add it to your config.plist, ProperTree can do that with OC Snapshot. +* Reboot to OpenCore, and press Space, it should show more options, one of them should be OpenShell.efi. In case you do not have it, download the OpenCore zip, and take it from OC/Tools, and add it to your config.plist, ProperTree can do that with OC Snapshot. #### 2. Your kernel is in your EFI partition @@ -161,19 +161,19 @@ In case you're using systemd-boot, make sure you install the kernel in your EFI ### 2. Identifying your UEFI paths and devices -- In the shell +* In the shell - - run `map -r -b` to list all your devices (-b to break the scroll) + * run `map -r -b` to list all your devices (-b to break the scroll) - - `BLKX:` are all the partitions/disks scanned + * `BLKX:` are all the partitions/disks scanned - - `FSX:` are all the **explorable** filesystems + * `FSX:` are all the **explorable** filesystems - - `PciRoot(0x0)/Pci(AxB,CxD)/Sata` or `Nvme` are your drives types (nvme or ahci) + * `PciRoot(0x0)/Pci(AxB,CxD)/Sata` or `Nvme` are your drives types (nvme or ahci) - - `HD(X,GPT,,...)` or `HD(X,MBR)` are your drive partitions where `X` is a number, GPT/MBR the disk partition scheme then followed with PARTUUID + * `HD(X,GPT,,...)` or `HD(X,MBR)` are your drive partitions where `X` is a number, GPT/MBR the disk partition scheme then followed with PARTUUID - - Example: + * Example: ```shell Mapping table @@ -199,53 +199,53 @@ In case you're using systemd-boot, make sure you install the kernel in your EFI PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0x0,0x0)/HD(3,GPT,A1073E53-C768-4CE5-89AD-B558669BDB89,0xE914CB8,0xE8B0C90) ``` - - `BLK0` seems to be the disk BLK as its path does not show any partition numbering or UUID - - This is logical as the first thing your firmware will look for is the disk, not its partitions - - I have BLK1/BLK2/BLK9 which are my 3 main partitions - - Because I have APFS driver loaded from OpenCore, there are new BLK devices shown because of that and thus added more partitions, which are actually just APFS container partitions, those can be ignored - - The reason why they can be ignored is because you can see that they have the same PARTUUID, also we're not here for those partitions - - FS0 seems to be BLK1, which is my EFI partition which is also FAT32 formatted, where OC lives - - In a multi-disk setup, FS0: can be whatever the UEFI firmware detects first, it does not mean that OC is always in FS0, in these cases FS0: could point to a USB device or SATA device. Usually, most firmware will follow this setup to read/find partitions: USB > SATA > NVME, this is not a norm as some other firmware could do something else (it can also depend on the boot order setting). - - Check if your linux kernel is there (in case of systemdboot) - - `cd FSX:` - - `ls` - - Use your eyes and a brain cell - - Just make sure you're properly reading the partition location before doing any actions - - FS0/BLK2/BLK9 all live in a SATA drive (which is my main boot drive for this example device) - - This matches linux reading the device as `sdX` and not `nvmeXnX` - - In the case of a NVMe drive, you would be seeing `Nvme` instead of `Sata` - - BLK9's PARTUUID matches my root filesystem `a1073e53-c768-4ce5-89ad-b558669bdb89` - - But remember that it's in capital letters! - - BLK1 and BLK2 have their explorable `FSX`, which means the UEFI firmware can explore and read files from them, however BLK9 which is an ext4 partition isn't, this means the UEFI requires a suitable driver to load its contents. - - - Identify your EFI partition (in this example it's FS0:) - - - run `map -r > FSX:\drives_map.txt` - - This will run `map` and save the output to FSX: in a file named `drives_map.txt` - - Note that UEFI Firmware use Windows-style path slash `\` not `/` - -- Reboot to macOS/Linux distribution with ProperTree in it + * `BLK0` seems to be the disk BLK as its path does not show any partition numbering or UUID + * This is logical as the first thing your firmware will look for is the disk, not its partitions + * I have BLK1/BLK2/BLK9 which are my 3 main partitions + * Because I have APFS driver loaded from OpenCore, there are new BLK devices shown because of that and thus added more partitions, which are actually just APFS container partitions, those can be ignored + * The reason why they can be ignored is because you can see that they have the same PARTUUID, also we're not here for those partitions + * FS0 seems to be BLK1, which is my EFI partition which is also FAT32 formatted, where OC lives + * In a multi-disk setup, FS0: can be whatever the UEFI firmware detects first, it does not mean that OC is always in FS0, in these cases FS0: could point to a USB device or SATA device. Usually, most firmware will follow this setup to read/find partitions: USB > SATA > NVME, this is not a norm as some other firmware could do something else (it can also depend on the boot order setting). + * Check if your linux kernel is there (in case of systemdboot) + * `cd FSX:` + * `ls` + * Use your eyes and a brain cell + * Just make sure you're properly reading the partition location before doing any actions + * FS0/BLK2/BLK9 all live in a SATA drive (which is my main boot drive for this example device) + * This matches linux reading the device as `sdX` and not `nvmeXnX` + * In the case of a NVMe drive, you would be seeing `Nvme` instead of `Sata` + * BLK9's PARTUUID matches my root filesystem `a1073e53-c768-4ce5-89ad-b558669bdb89` + * But remember that it's in capital letters! + * BLK1 and BLK2 have their explorable `FSX`, which means the UEFI firmware can explore and read files from them, however BLK9 which is an ext4 partition isn't, this means the UEFI requires a suitable driver to load its contents. + + * Identify your EFI partition (in this example it's FS0:) + + * run `map -r > FSX:\drives_map.txt` + * This will run `map` and save the output to FSX: in a file named `drives_map.txt` + * Note that UEFI Firmware use Windows-style path slash `\` not `/` + +* Reboot to macOS/Linux distribution with ProperTree in it ### 3. Adding the boot entry to OpenCore's configuration file -- In case: +* In case: - - Your kernel is in the system partition: - - Download a suitable UEFI driver for your filesystem in use: - - Download [rEFInd](https://sourceforge.net/projects/refind/) - - Extract the zip - - Explore the extracted zip > refind > drivers_x64 - - You'll find these drivers: - - ext4 - - ext2 - - btrfs - - Pick the UEFI driver that you want and copy it to OC > Drivers - - Add it to your config.plist (you can use ProperTree > File > OC Snapshot) - - Your kernel is in your EFI partition (systemdboot), you don't need to set up any fs drivers + * Your kernel is in the system partition: + * Download a suitable UEFI driver for your filesystem in use: + * Download [rEFInd](https://sourceforge.net/projects/refind/) + * Extract the zip + * Explore the extracted zip > refind > drivers_x64 + * You'll find these drivers: + * ext4 + * ext2 + * btrfs + * Pick the UEFI driver that you want and copy it to OC > Drivers + * Add it to your config.plist (you can use ProperTree > File > OC Snapshot) + * Your kernel is in your EFI partition (systemdboot), you don't need to set up any fs drivers -- (Optional) In case you're using GRUB2, make sure you get a copy of `grub.cfg` to get your kernel arguments +* (Optional) In case you're using GRUB2, make sure you get a copy of `grub.cfg` to get your kernel arguments -- Open config.plist in your plist editor (recommend ProperTree), under Misc > Entries, make a new child with type `Dictionary`: +* Open config.plist in your plist editor (recommend ProperTree), under Misc > Entries, make a new child with type `Dictionary`: | Key | Type | Value | Notes | | --------- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -256,22 +256,22 @@ In case you're using systemd-boot, make sure you install the kernel in your EFI | Arguments | String | **Template:**
initrd=\path\to\rd.img\if\used *other_kernel_arguments*
**Example:**
initrd=\boot\intel_ucode.img initrd=\boot\initramfs-linux.img root=PARTUUID=608da4f8-da9e-4792-829f-a4cf4e5b8b82 ro quiet intel_iommu=on iommu=pt | *check below* | | Auxiliary | Boolean | `False`/`NO`/`0` | - False: Always shown
- True: Hidden until you press space
- Requires Misc\Boot\HideAuxiliary=True if this is set to True | - - **Path Notes:** - - **your_ids**: from the map text file - - **Type**: NVMe/SATA - - **X**: partition number - - **SCH**: disk scheme (GPT/MBR) - - **PARTUUID** - - **stuff,from_map**: get them from the map - - *\path\to\kernel*: it's the path to the kernel binary - - **TL;DR: Copy the path of the partition from the map text file.** - - Note1: use backslash `\` for *kernel path*, that's how UEFI firmware handles file paths - - Note2: use regular slash `/` for the *PciRoot path*, like shown in the example and template - - **Arguments Notes:** - - You can add as much `initrd=` as you want (if you're using linux, you should know why and how) - - Your other arguments are the same as in any other bootloader, you can add/remove/modify in the config directly - -- Notes - - - You can use the same scheme as above to add other efi files or uefi-loadable files (like systemdboot efi, Windows bootmgfw.efi...) - - **You will NOT be able to set it as the default boot option with Ctrl+Enter**, so you'll have to select it each time you want to boot it + * **Path Notes:** + * **your_ids**: from the map text file + * **Type**: NVMe/SATA + * **X**: partition number + * **SCH**: disk scheme (GPT/MBR) + * **PARTUUID** + * **stuff,from_map**: get them from the map + * *\path\to\kernel*: it's the path to the kernel binary + * **TL;DR: Copy the path of the partition from the map text file.** + * Note1: use backslash `\` for *kernel path*, that's how UEFI firmware handles file paths + * Note2: use regular slash `/` for the *PciRoot path*, like shown in the example and template + * **Arguments Notes:** + * You can add as much `initrd=` as you want (if you're using linux, you should know why and how) + * Your other arguments are the same as in any other bootloader, you can add/remove/modify in the config directly + +* Notes + + * You can use the same scheme as above to add other efi files or uefi-loadable files (like systemdboot efi, Windows bootmgfw.efi...) + * **You will NOT be able to set it as the default boot option with Ctrl+Enter**, so you'll have to select it each time you want to boot it diff --git a/oc/win.md b/oc/win.md deleted file mode 100644 index b1270cd..0000000 --- a/oc/win.md +++ /dev/null @@ -1,54 +0,0 @@ -# Dualbooting with Windows - -* MBR based Windows installs **ARE NOT SUPPORTED** by OpenCore at this time, you will need to convert it to GPT. - -#### Solution 1: If Windows is not picked up automagically, add the following to your config.plist - -``` -Misc -> BlessOverride -> \EFI\Microsoft\Boot\bootmgfw.efi -``` - -* **Note**: As of OpenCore 0.5.9, this no longer needs to be specified. OpenCore should pick up on this entry automatically - -![](../images/win-md/blessoverride.png) - -#### Solution 2: To make Windows get picked up, boot to recovery mode from within Windows - -- **make sure you boot windows from OpenCore** - - after loading OpenCore, press space > OpenShell (make sure you have it in Tools and in the config) - - run `map -r -b` - - look for your EFI drive (usually it's in the first lines, watch out if you're a multidisk user, there might be many EFIs) - - run `FSX:\EFI\Microsoft\Boot\bootmgfw.efi` where X is the number of the EFI partition with windows bootloader -- **make sure that RequestBootVarRouting is set to True** -- open CMD/PS with admin rights -- run `shutdown /r /o /t 0` - - this will reboot your windows system immediately to Advanced Boot Menu menu -- select Troubleshoot > Command Prompt -- it will reboot to WinRE and you'll get to the Command Prompt -- once in there - - run `diskpart` - - once loaded, send `list vol` - - look for your Windows drive letter - - it may not have the `C` lettering, but make sure you check the size and other indicatives that points to it - - if you cannot, just write down the mounted letters with (NTFS) filesystem then explore them one by one to check if it's your windows install - - look for your EFI partition - - it should say `hidden` or `system` and is usually 100-200MB (some OEM installs make it bigger as much as 500MB) - - send `sel vol X` where X is the EFI partition number - - if you're in doubt - - send `list disk` - - identify your windows disk - - send `sel disk X` where X is the disk where Windows is installed on - - send `list part` - - check the partitions, usually the EFI should have 100-200MB (some OEM installs make it bigger as much as 500MB) - - send `sel part X` where X is the EFI partition number - - either way, send `assign letter=S` - - S can be anything other than A/B/Y/X and any letter already assigned in the listing before it - - send `exit` to close diskpart and return to the command prompt - - run `bcdboot X:\Windows /s S: /f UEFI` - - [bcdboot](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di) is a utility that installs Windows bootloader in either your EFI or root system partition (of choice) - - `X:\Windows` is a path to the Windows installation folder, where X is the mount letter of the Windows partition - - `/s S:` is the destination disk that will receive the bootloader, in our case, it's the EFI partition - - `/f UEFI` to specify the type the bootloader should be (UEFI Bootloader) - - This will copy a new bootmgfw.efi file as well as add a new NVRAM Boot entry which hopefully will now appear on OpenCore boot menu. -- if everything ran without any errors, type `exit` and it should return you back to the Advanced Boot Menu (or reboot) -- reboot and check if Windows boot entry has been added \ No newline at end of file diff --git a/package.json b/package.json index fc5481b..0eb5083 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "OpenCore-Multiboot", - "version": "0.6.3", + "version": "0.6.7", "description": "OpenCore Multiboot guide", "main": "", "author": { @@ -33,19 +33,19 @@ }, "license": "CC-BY-NC-SA-4.0", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.5.4", + "@vuepress/plugin-back-to-top": "^1.8.2", "markdown-it-multimd-table": "^4.0.3", - "markdown-link-check": "^3.8.1", - "markdownlint-cli": "^0.22.0", - "run-script-os": "^1.1.1", - "spellchecker-cli": "^4.2.0", - "vuepress": "^1.5.4", - "vuepress-plugin-medium-zoom": "^1.1.8", - "vuepress-plugin-zooming": "^1.1.7", - "vuepress-theme-book": "0.0.3", + "markdown-link-check": "^3.8.7", + "markdownlint-cli": "^0.27.0", + "run-script-os": "^1.1.6", + "spellchecker-cli": "^4.4.0", + "vuepress": "^1.8.2", + "vuepress-plugin-medium-zoom": "^1.1.9", + "vuepress-plugin-zooming": "^1.1.8", + "vuepress-theme-book": "0.0.5", "vuepress-theme-dark-new": "^0.1.2", - "vuepress-theme-succinct": "^1.5.3", - "vuepress-theme-yuu": "^2.3.0" + "vuepress-theme-succinct": "^1.7.2", + "vuepress-theme-yuu": "^3.0.1" }, "homepage": "https://dortania.github.io/OpenCore-Multiboot/" } diff --git a/troubleshooting.md b/troubleshooting.md new file mode 100644 index 0000000..c12e715 --- /dev/null +++ b/troubleshooting.md @@ -0,0 +1,116 @@ +# Troubleshooting + +Multiboot troubleshooting. **Work in Progess**, you can help contibute via [PRs](https://github.com/dortania/OpenCore-Multiboot/pulls) + +## Windows + +![Bsod](./images/troubleshooting/Bsod.png) + +Windows can be a bitch when it comes to multidisk setups (it freaks out when it sees a lot of EFI partitions on a lot of disks). + +If it happens, disable/disconnect all the other disks and install windows as you would normally do, selecting the correct disk. If it doesn't work you [can install windows manually](./Win.md#Manually). + +### Unsupported Disk Layout for UEFI Firmware + +![Msr error](./images/troubleshooting/msr.png) + +You should [add a msr partition](https://www.tomshardware.com/news/how-to-fix-windows-10-unsupported-disk-layout-uefi-error,35960.html) + +### WinRE doesn't work + +![WinRE doesn't work when appears this image](./images/troubleshooting/winre.png) +WinRE doesn't work when appears this image. + +I suppose you have created the recovery partition. If you don't, you can still create it. + +Copy install.esd/install.wim from your usb in your pc. + +Use [7zip](https://www.7-zip.org) or WinRar to open the WIM/ESD image. Open any of the numbered folder (it's the same). + +Then go to `\Windows\System32\Recovery`. Extract the two files and copy them to path `C:\Windows\System32\Recovery`. + +Then apply the two command below to active WinRE. + +`reagentc /setreimage /path C:\windows\system32\recovery` + +`reagentc /enable` + +To see the WinRE status then type `reagentc /info` + +To try WinRE, type `reagentc /boottore` + +Reboot + +### Opencore does not see my Windows 8/10 installation + +MBR based Windows installs **ARE NOT SUPPORTED** by OpenCore at this time, you will need to convert it to GPT. + +Otherwise, if you have been on GPT yet, I think you are using an old version of OpenCore. + +#### Solution 1: [Update Opencore](https://dortania.github.io/OpenCore-Post-Install/universal/update.html) + +#### Solution 2: BlessOverride solution (add the following lines to your config.plist) + +``` +Misc -> BlessOverride -> \EFI\Microsoft\Boot\bootmgfw.efi +``` + +* **Note**: As of OpenCore 0.5.9, this no longer needs to be specified. OpenCore should pick up on this entry automatically + +![](/images/troubleshooting/blessoverride.png) + +#### Solution 3: Boot to recovery mode from within Windows + +::: This is long, so i create a spoiler + +* **make sure you boot windows from OpenCore** + * after loading OpenCore, press space > OpenShell (make sure you have it in Tools and in the config) + * run `map -r -b` + * look for your EFI drive (usually it's in the first lines, watch out if you're a multidisk user, there might be many EFIs) + * run `FSX:\EFI\Microsoft\Boot\bootmgfw.efi` where X is the number of the EFI partition with windows bootloader +* **make sure that RequestBootVarRouting is set to True** +* open CMD/PS with admin rights +* run `shutdown /r /o /t 0` + * this will reboot your windows system immediately to Advanced Boot Menu menu +* select Troubleshoot > Command Prompt +* it will reboot to WinRE and you'll get to the Command Prompt +* once in there + * run `diskpart` + * once loaded, send `list vol` + * look for your Windows drive letter + * it may not have the `C` lettering, but make sure you check the size and other indicatives that points to it + * if you cannot, just write down the mounted letters with (NTFS) filesystem then explore them one by one to check if it's your windows install + * look for your EFI partition + * it should say `hidden` or `system` and is usually 100-200MB (some OEM installs make it bigger as much as 500MB) + * send `sel vol X` where X is the EFI partition number + * if you're in doubt + * send `list disk` + * identify your windows disk + * send `sel disk X` where X is the disk where Windows is installed on + * send `list part` + * check the partitions, usually the EFI should have 100-200MB (some OEM installs make it bigger as much as 500MB) + * send `sel part X` where X is the EFI partition number + * either way, send `assign letter=S` + * S can be anything other than A/B/Y/X and any letter already assigned in the listing before it + * send `exit` to close diskpart and return to the command prompt + * run `bcdboot X:\Windows /s S: /f UEFI` + * [bcdboot](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcdboot-command-line-options-techref-di) is a utility that installs Windows bootloader in either your EFI or root system partition (of choice) + * `X:\Windows` is a path to the Windows installation folder, where X is the mount letter of the Windows partition + * `/s S:` is the destination disk that will receive the bootloader, in our case, it's the EFI partition + * `/f UEFI` to specify the type the bootloader should be (UEFI Bootloader) + * This will copy a new bootmgfw.efi file as well as add a new NVRAM Boot entry which hopefully will now appear on OpenCore boot menu. +* if everything ran without any errors, type `exit` and it should return you back to the Advanced Boot Menu (or reboot) +* reboot and check if Windows boot entry has been added +::: + +## Troubleshooting + +### System BootOrder not found. Initialising defaults. Creating boot entry "Bootxxxx"... + +Linux has changed EFI on disk somehow. Hopefully you still have your installer USB with a clean copy of your EFI. + +- Boot into Mac with your USB +- Open the EFI folder in your ESP, and you should see another folder such as "Ubuntu" added to it. Copy this somewhere on your PC. +- Delete everything in EFI, and replace it with what was on your USB. +- Copy back the "Ubuntu" or other folder into the EFI folder. +- Restart and OC should boot up properly.