You are not logged in.

#1 2008-05-30 03:29:54

wmccann
Member
Registered: 2008-04-06
Posts: 8

GRUB doesn't boot after booting into Windows

I am dual booting arch and xp on a macbookpro 15". I have Windows chainloading off of GRUB. The symptoms of my problem are:
1. I boot into arch no problem through GRUB. I can reboot, poweroff etc. no problem. GRUB always boots the next time.
2. The next time I load Windows through GRUB instead of arch, I restart the computer, poweroff etc., the computer skips GRUB and boots directly into windows.
3. I check my partition scheme through cfdisk and notice the boot flag has been removed from /boot and placed on my windows partition. I can reflag my /boot partition as bootable and GRUB loads fine again indefinately, UNTIL...
4. The next time I load into windows, /boot is unflagged again and windows always loads.

Does anyone have any idea what's going on? Thanks in advance.

Offline

#2 2008-05-30 12:00:03

pheon
Member
From: Berlin, Germany
Registered: 2008-05-14
Posts: 91

Re: GRUB doesn't boot after booting into Windows

Hi,
as far as I know, Windows needs the bootableflag on it's systempartition - and sets this flag, in case it is not set - to boot up.

Actually, I don't know any way to prevent Windows from "touching" the MBR except a MBR-Lock (sometimes called "Boot-Virus-Protection") in BIOS - seems to be not possible on your configuration (Macbook -> EFI/GUID-MBR-Hybrid and not BIOS/MBR).

One way, to evade the drama of manually editing the MBR, would be letting the Windowsbootmanager load Grub.

1.) copy the grub-bootsector of your /boot partition to a file in your window-systempartition.

dd if=/dev/sdX of=arch.lin bs=512 count=1

mount the windows system-partition and copy arch.lin to the root of the partition (C:\ ?)

2.) adding a boot-entry to your windows-bootloader

boot windows, and add the line C:\arch.lin="arch" to the %SYSTEMROOT%\boot.ini
(this could probably also be done from linux while doing step 1)

3.) modify the windows-bootloader to fit your needs:

a) change timeout=0 to timeout=15 (or something like this)

b) let timeout=0 untouched and change the default to grub (so the boot-way should be: mbr -> windows-loader -> grub -> linux/win)

I am not 100% sure, if this works as intended. There are plenty of howtos on the internet dealing with the winbootloader -> grub stuff. maybe you should read one or two just to verify this.


Regards


watching someone else use your computer is like watching a drunk orangutan solve a rubix cube

Offline

Board footer

Powered by FluxBB