grub problem
Posted: Tue Nov 14, 2017 3:09 am
I have encountered few problems in regards to dual boot and was thinking for quite a while at troubleshooting. It is a long story but will try to make it as short as possible. The Preboot execution server is setup with linux installation image with two
boot entries.
manual installation - install rhel manually from pxe server.
semi-auto installation - automated installation, the only thing that are manual are user's choice of target drive.
Now I normally do a dual boot with two distinct SATA drives: hdd0, hdd1. Simple and easy.
hdd0 - install windows server
hdd1 - install linux using preboot server.
Everything goes fine with hdd0 windows installation and if I install it manually redhat linux onto hd1. When I install it manually, the bootloader is created on second drive (BTW, is is uefi so winbootloader is fs0:\efi\boot\bootx.64.efi and lin bootloader is at fs1:\efi\redhat\grub.efi
Now trouble starts if I choose semi-automated installation method from pxe server, in which I only intervene to select the target drive as hdd1 as intended. For this installation, I obviously created kickstart ks.cfg. But no matter how I tell to ks.cfg, this automated kickstart installation will always place grub.efi onto hdd0 not hdd1.
In other words;
winbootloader is at fs0:\efi\boot\bootx64.efi as usual.
lin bootloader is now on fs0:\efi\redhat\grub.efi.
As a result, after installation, something goes wrong and it fails to boot. The grub error is flashed
with (“(hd1,0)/grub/splash.xpm.gz”) not found.
Now if I check the grub setting for both cases above, the root(x,x) lines are different, but it makes me more confused:
1. dual boot, manual installation (working case)
win loader: fs0:\efi\boot\bootx64.efi
linux loader: fs1:\efi\redhat\grub.efi
grub setting:
root(0,1)
2. dual boot, kickstart (semi-automated) installation (failing case)
win loader: fs0:\efi\boot\boox64.efi (no problema)
linux loader: fs0:\efi\redhat\grub.efi
grub setting:
root(1,0)
For the seconds case, I tried setting root(0,0), root(1,1) no avail.
The definition of root(x,x) statement is vague and murky at best when googling (probably done by amateurist), but the way I grasp is root(<driveNo>, <partition>)
but then, since for working case, linux bootloader is in fs1: so i though the appropriate statement would be root(1,1) but somehow root(0,1) works.
For failing case in which lin bootloader is in fs0:, then I imagine root(0,0) will work but obviously it does not.
boot entries.
manual installation - install rhel manually from pxe server.
semi-auto installation - automated installation, the only thing that are manual are user's choice of target drive.
Now I normally do a dual boot with two distinct SATA drives: hdd0, hdd1. Simple and easy.
hdd0 - install windows server
hdd1 - install linux using preboot server.
Everything goes fine with hdd0 windows installation and if I install it manually redhat linux onto hd1. When I install it manually, the bootloader is created on second drive (BTW, is is uefi so winbootloader is fs0:\efi\boot\bootx.64.efi and lin bootloader is at fs1:\efi\redhat\grub.efi
Now trouble starts if I choose semi-automated installation method from pxe server, in which I only intervene to select the target drive as hdd1 as intended. For this installation, I obviously created kickstart ks.cfg. But no matter how I tell to ks.cfg, this automated kickstart installation will always place grub.efi onto hdd0 not hdd1.
In other words;
winbootloader is at fs0:\efi\boot\bootx64.efi as usual.
lin bootloader is now on fs0:\efi\redhat\grub.efi.
As a result, after installation, something goes wrong and it fails to boot. The grub error is flashed
with (“(hd1,0)/grub/splash.xpm.gz”) not found.
Now if I check the grub setting for both cases above, the root(x,x) lines are different, but it makes me more confused:
1. dual boot, manual installation (working case)
win loader: fs0:\efi\boot\bootx64.efi
linux loader: fs1:\efi\redhat\grub.efi
grub setting:
root(0,1)
2. dual boot, kickstart (semi-automated) installation (failing case)
win loader: fs0:\efi\boot\boox64.efi (no problema)
linux loader: fs0:\efi\redhat\grub.efi
grub setting:
root(1,0)
For the seconds case, I tried setting root(0,0), root(1,1) no avail.
The definition of root(x,x) statement is vague and murky at best when googling (probably done by amateurist), but the way I grasp is root(<driveNo>, <partition>)
but then, since for working case, linux bootloader is in fs1: so i though the appropriate statement would be root(1,1) but somehow root(0,1) works.
For failing case in which lin bootloader is in fs0:, then I imagine root(0,0) will work but obviously it does not.