Dual Images windows 10 and Ubuntu 16 with UEFI
-
Hi @sebastian-roth,
sorry for my late answer, I have been out of the office these days.
No fool questions, no fool questions
I install my windows 10 LTSB 2016 version in the test computer with GPT partitions. If I capture this OS, I don’t have problmes to deploy it in other computer.
Let’s go to do it dual!!!
I power on my W10 computer and I install Ubuntu 16.06 in the computer. The process end successfully … great!! The computer reboot and … W10 desktop appears, where is my Ubuntu? Well, don’t problem, I need to rebuilt the grub. To do it, I use the boot-repair tool (I searched in google how repair the grub and appeared this solution, maybe, you can do it in several ways … But, be water my friend). When I run the boot-repair tool, the grub is rebuilt and we have our dual boot running fine.
Now I capture the image from FOG, the proccess finishes well, but If I try to deploy the image in other computer, only boots from windows boot manager and I need to repair, again, the grub to works fine.
-
@fernando-gietz said in Dual Images windows 10 and Ubuntu 16 with UEFI:
When I run the boot-repair tool, the grub is rebuilt and we have our dual boot running fine.
So we need FOS to detect when there is a dual boot system, and to just rebuild Grub every time it detects that.
@Fernando-Gietz do you mind giving us the output of the below commands from that system please so we can start thinking about this:
gdisk -l /dev/sda lsblk blkid pvdisplay lgdisplay lvdisplay
Please post the results into the following link, this is where we are collecting this stuff: https://forums.fogproject.org/topic/11070/disk-drive-geometry-and-partition-layouts-for-well-know-os
-
root@U032668:~# gdisk -l /dev/sda GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 500118192 sectors, 238.5 GiB Logical sector size: 512 bytes Disk identifier (GUID): 611A1A7F-D5E7-4EB5-87EF-D447B71A8595 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 500118158 Partitions will be aligned on 2048-sector boundaries Total free space is 924269 sectors (451.3 MiB) Number Start (sector) End (sector) Size Code Name 1 923648 1128447 100.0 MiB EF00 EFI system partition 2 1128448 1161215 16.0 MiB 0C01 Microsoft reserved ... 3 1161216 205961215 97.7 GiB 0700 Basic data partition 4 205961216 483586047 132.4 GiB 8300 5 483586048 500117503 7.9 GiB 8200 root@U032668:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238,5G 0 disk ├─sda1 8:1 0 100M 0 part /boot/efi ├─sda2 8:2 0 16M 0 part ├─sda3 8:3 0 97,7G 0 part ├─sda4 8:4 0 132,4G 0 part / └─sda5 8:5 0 7,9G 0 part [SWAP] sr0 11:0 1 1024M 0 rom root@U032668:~# blkid /dev/sda1: UUID="A47A-9C4F" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="90659379-55aa-43cc-a916-7909278e69d2" /dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="ff774eb9-c85f-4dae-aac5-9a8efd46e7b4" /dev/sda3: UUID="385A3AFA5A3AB48A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="54366076-6bce-46ae-9046-8528edf1876f" /dev/sda4: UUID="e3fa93df-c9a8-4b1c-bcaf-7886256709cb" TYPE="ext4" PARTUUID="c1db2263-cf34-4d82-9954-2484e2c8bdde" /dev/sda5: UUID="c2fec154-bb2c-454c-ad54-8ca7ab1af203" TYPE="swap" PARTUUID="530e6d65-e5d7-4f4c-bb3b-44ccc6305467" root@U032668:~# pvdisplay El programa «pvdisplay» no está instalado. Puede instalarlo escribiendo: apt install lvm2 root@U032668:~# lgdisplay No se ha encontrado la orden «lgdisplay», quizás quiso decir: La orden «lvdisplay» del paquete «lvm2» (main) La orden «vgdisplay» del paquete «lvm2» (main) lgdisplay: no se encontró la orden root@U032668:~# lvdisplay El programa «lvdisplay» no está instalado. Puede instalarlo escribiendo: apt install lvm2
-
First let me say I don’t have a clue what is going on here, but I think I see a pattern.
Master image creation.
- Install Windows
- Install Ubuntu
System will only boot windows. - Use ubuntu repair tool and now you have dual boot.
Capture and deploy with FOG.
- Windows is installed
- Ubuntu is installed.
System will only boot windows. - Use ubuntu repair tool and now you have dual boot.
Do I understand the logic flow here?
-
@george1421 Yes. You have understand all well
-
@fernando-gietz Ok I find this article interesting.
https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/
The most interesting part is at the very bottom section Note.
Note: If after installing Ubuntu, you boot directly in Windows, check in UEFI settings for changing the boot order. If you see no option to set the boot to Ubuntu, you need to fix it from within Windows. When you are in Windows desktop, hover the mouse in left corner, right click and select administrator’s command prompt. Then run the following command:
bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
If you deploy an images that is broken as you say. If you run this command in windows does it fix the problem. This isn’t the solution just yet, but it may be the clue to why.
-
@fernando-gietz said in Dual Images windows 10 and Ubuntu 16 with UEFI:
W10 desktop appears, where is my Ubuntu? Well, don’t problem, I need to rebuilt the grub. To do it, I use the boot-repair tool
Again this is the point where you loose me. How are you able to boot up Ubuntu and run boot-repair if Ubuntu is not in the boot selection as you say. I am just guessing here but possibly you use the Ubuntu DVD to boot a live system for repair?
I will look into the tool when I get home…
-
@Fernando-Gietz Ahhhh, I see now what’s going on. Will explain when I get home…
-
@sebastian-roth I forget say it I rebuild the grub from Ubuntu live CD
-
I test the changes that @george1421 says and works fine.
The first boot goes direct to W10 but in the next one appears grub menu . -
@fernando-gietz Ok if that commands works (sounds like you agree). Then you have a few options.
- Sebastian can do his magic and see if fog can detect this condition.
- (assuming your windows image is sysprep’d before image capture) Have fog copy in a setupcomplete.cmd file (or patch your current one) during post install script execution to have Windows run that command via the setupcomplete.cmd execution.
- If your windows system is not sysprep’d then have the post install script copy a batch file with the command in it, and a shortcut that points to where the batch file will be copied (i.e. c:\windows\setup). Place the short cut in the admin user’s startup directory. Have the batch file that is called delete the short cut in the startup directory once the batch file has run. This method is a bit more messy but does work.
Strictly speaking I don’t see this as a fog issue since it existed before fog imaging. FOG imaging is only putting back what “should be” in place when it detects a windows setup. With that said, you do have a few ways to go about making this work, and without much pain.
-
@Fernando-Gietz The “issue” from my point of view is that your UEFI firmware is going real EFI which is actually a nice thing. But it is causing a problem.
There is a really good resource on EFI here: https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/
On your bog-standard old-skool BIOS PC, […], the very start of the disk describes the partitions on the disk in a particular format, and contains a ‘boot loader’ […]
Ok we do capture the MBR stuff in FOG! But now read on to the new stuff:
UEFI booting: […] it is completely different. […] many UEFI firmwares implement some kind of BIOS compatibility mode, sometimes referred to as a CSM.
Now you see why I think your system goes real EFI. Probably it doesn’t to the CSM stuff. So let’s talk about this:
[…] native UEFI booting […] UEFI boot manager […] can be configured by modifying architecturally defined global NVRAM variables.
So here we go. The boot order/list in real native UEFI systems is not on disk. So far we don’t capture the NVRAM state of a machine as far as I know. This is definitely something we need to add to the todo list. On Windows only systems it’s probably working out fine most times so we don’t see an issue. But for UEFI dual booting systems we need to find a solution.
-
@sebastian-roth I don’t know very much about UEFI, until now the hardware had legacy support and we worked in this mode. But, the new hardware which is coming only support UEFI, then we need to learn to work under this new mode Thanks for the link, I will read it … what a pain!!!
I am not using the new hardware, I don’t know which will be, and to test the UEFI I am using HP 800 G2 eliteDesk. This hardware have compatibility with BIOS legacy.
@sebastian-roth said in Dual Images windows 10 and Ubuntu 16 with UEFI:
So here we go. The boot order/list in real native UEFI systems is not on disk. So far we don’t capture the NVRAM state of a machine as far as I know. This is definitely something we need to add to the todo list. On Windows only systems it’s probably working out fine most times so we don’t see an issue. But for UEFI dual booting systems we need to find a solution.
We will follow with this … waiting…
-
@fernando-gietz Does it consistently work after using George’s command? (even if you shutdown and do a ‘cold boot’?)
My theory is that if you have Windows 10 Fast Boot enabled it will skip that bootloader and boot straight to Windows, however that only happens if you shutdown -> boot as opposed to reboot. Windows 10 Fast Boot does a lot of annoying stuff like make it very hard (or impossible on certain devices) to get into BIOS during boot.
-
@quazz Great point!. I have another thread where I’m collecting drive geometry to help the devs understand what typical drive configurations look like. I ran into an issue where I wasn’t able to mount partitions of 2 of my home computers that are win10 EFI systems. I thought something changed in the Fall 2017 creators update to where FOS couldn’t mount the disk. Long story short is was the fast boot that was leaving the partitions marked as mounted and now allowing FOS to remount the partitions.
After I was clued in by Sebastian I turned off fast boot and was able to mount and map the partitions. Very annoying that feature is. Thank you, M$.
-
@Sebastian-Roth I am reading the info about UEFI. Very interesting!!! Now I know more about what is UEFI and how does it work.
I post the info of the different commands in my test computer:
gdisk -l /dev/sda GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 500118192 sectors, 238.5 GiB Logical sector size: 512 bytes Disk identifier (GUID): 611A1A7F-D5E7-4EB5-87EF-D447B71A8595 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 500118158 Partitions will be aligned on 2048-sector boundaries Total free space is 33851501 sectors (16.1 GiB) Number Start (sector) End (sector) Size Code Name 1 923648 1128447 100.0 MiB EF00 EFI system partition 2 1128448 1161215 16.0 MiB 0C01 Microsoft reserved ... 3 1161216 295318015 140.3 GiB 0700 Basic data partition 4 295319552 451567615 74.5 GiB 8300 5 451567616 467191807 7.5 GiB 8200 root@U032668:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238,5G 0 disk ├─sda1 8:1 0 100M 0 part /boot/efi ├─sda2 8:2 0 16M 0 part ├─sda3 8:3 0 140,3G 0 part ├─sda4 8:4 0 74,5G 0 part / └─sda5 8:5 0 7,5G 0 part [SWAP] sr0 11:0 1 1024M 0 rom root@U032668:~# blkid /dev/sda1: UUID="A47A-9C4F" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="90659379-55aa-43cc-a916-7909278e69d2" /dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="ff774eb9-c85f-4dae-aac5-9a8efd46e7b4" /dev/sda3: UUID="385A3AFA5A3AB48A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="54366076-6bce-46ae-9046-8528edf1876f" /dev/sda4: UUID="5fdf13da-9c89-476b-b994-3e05c3c36e2a" TYPE="ext4" PARTUUID="a30c61be-de90-45e9-a52b-c78c64ea4b19" /dev/sda5: UUID="b29da30a-4262-49c2-a7f3-7b3ee9e8a4ea" TYPE="swap" PARTUUID="0953ce8f-1d8d-464a-95af-ad4d724fbbae"
The commands that appears in the blog:
root@U032668:~# efibootmgr -v BootCurrent: 0014 Timeout: 0 seconds BootOrder: 0014,0017,000C,000A,000F,0013,0010,000D,000E,0012,000B,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,0011,0015 Boot0000 Startup Menu FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)....ISPH Boot0001 System Information FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0002 Bios Setup FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0003 3rd Party Option ROM Management FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0004 System Diagnostics FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0005 System Diagnostics FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0006 System Diagnostics FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0007 System Diagnostics FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0008 Boot Menu FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0009 HP Recovery FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot000A USB: PciRoot(0x0)/Pci(0x14,0x0)N.....YM....R,Y.....ISPH Boot000B MTFDDAK256TBN-1AR1ZABHA FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot000C* IPV4 Network - Intel(R) Ethernet Connection (H) I219-LM PciRoot(0x0)/Pci(0x1f,0x6)/MAC(c8d3ffbd6a14,0)/IPv4(0.0.0.0:0<->0.0.0.0:0,0,0)N.....YM....R,Y.....ISPH Boot000D* MTFDDAK256TBN-1AR1ZABHA : BBS(HD,MTFDDAK256TBN-1AR1ZABHA : ,0x400)/PciRoot(0x0)/Pci(0x17,0x0)/Sata(0,0,0)......ISPH Boot000E USB: BBS(65535,,0x0)/PciRoot(0x0)/Pci(0x14,0x0)......ISPH Boot000F* hp HLDS DVDRW GUD1N PciRoot(0x0)/Pci(0x17,0x0)/Sata(1,0,0)N.....YM....R,Y..0..ISPH Boot0010* Intel Corporation: IBA CL Slot 00FE v0106 BBS(Network,Intel Corporation: IBA CL Slot 00FE v0106,0x0)/PciRoot(0x0)/Pci(0x1f,0x6)......ISPH Boot0011 Network Boot FvVol(a881d567-6cb0-4eee-8435-2e72d33e45b5)/FvFile(9d8243e8-8381-453d-aceb-c350ee7757ca)......ISPH Boot0012* hp HLDS DVDRW GUD1N : BBS(CDROM,hp HLDS DVDRW GUD1N : ,0x400)/PciRoot(0x0)/Pci(0x17,0x0)/Sata(1,0,0)...0..ISPH root@U032668:~# parted /dev/sda GNU Parted 3.2 Usando /dev/sda ¡Bienvenido/a a GNU Parted! Teclee «help» para ver la lista de órdenes. (parted) p Modelo: ATA MTFDDAK256TBN-1A (scsi) Disco /dev/sda: 256GB Tamaño de sector (lógico/físico): 512B/4096B Tabla de particiones: gpt Disk Flags: Numero Inicio Fin Tamaño Sistema de archivos Nombre Banderas 1 473MB 578MB 105MB fat32 EFI system partition arranque, esp 2 578MB 595MB 16,8MB Microsoft reserved partition msftres 3 595MB 151GB 151GB ntfs Basic data partition msftdata 4 151GB 231GB 80,0GB ext4 5 231GB 239GB 8000MB linux-swap(v1)```
-
I have deployed twice the computer with the dual image and now the grub appears at the first time O_o
-
@fernando-gietz OK what did you change? Magic only happens on Television.
-
No, any change. The only change was the bcdedit command (following the tutorial that you attached)
-
@fernando-gietz Just for clarity and those who will be doing the same as you: Did you run that command before you recaptured the reference image, or did you add that bcdedit command to the setupcomplete.cmd file?