Dual boot Arch Linux and Win 7 ultimate

0

I have the followin setup: I installed win7 ultimate in a dos disklabel (not gpt). On some free space left at the end of the disk, I installed Arch Linux. I have installed grub on Arch Linux with these commands:

grub-install --target=i386-pc --disk-module=native /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

I had to add --disk-module=native because Linux is towards the end of /sda which is a big disk (250G) and would not be loaded otherwise.

Linux boots correctly, but windows does not boot and I get the following error.

Windows has encountered a problem communicating with a device connected to your computer.

This error can be caused by unplugging a removable storage device such as an external USB drive while the device is in use, or by faulty hardware such as a hard drive or CD-ROM drive that is failing. Make sure any removable is properly connected and then restart your computer

If you continue to receive this error message, contact the hardware manufacturer

File: \Boot\BCD
Status: 0xc00000e9
Info: An expected I/O error has occurred

In order to boot both I had to restore the standard Win7 MBR and install grub on a separate USB pendrive so that I can still boot Linux. Any suggestions on what the Windows boot error really means and how to avoid it? I had no USB device connected when I tried to boot Windows from grub and got this error. I would just like to boot both Windows and Linux with the same MBR.

Of course it is not a corrupted disk, because as soon as I run ms-sys --mbr7 /dev/sda to restore the Win MBR, Windows still boots. It is a brand-new solid state disk and I had no other trouble with it other than booting. BTW the boot repair option on the Windows installation disk was not able to restore the Win MBR! If it were not for linux ms-sys I would had to reinstall the whole Windows just to restore an MBR...

Is Windows a jealous OS so that if you change the little program in the MBR it does not boot anymore? Any workarounds?

PS: this is part of my grub.cfg which should load Windows. It was auto-generated by grub-mkconfig:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-1A30667530665831' {
    insmod part_msdos
    insmod ntfs
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  1A30667530665831
    else
      search --no-floppy --fs-uuid --set=root 1A30667530665831
    fi
    parttool ${root} hidden-
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###
windows-7
multi-boot
arch-linux
mbr
grub2
asked on Super User Feb 26, 2017 by Antonio Bonifati 'Farmboy' • edited Feb 28, 2017 by Antonio Bonifati 'Farmboy'

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0