Buenas,
He estado probando varias cosas, incluso siguiendo la wiki de arch linux (tengo esa distribución), y no consigo arreglarlo.
Mi fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 139681791 69839872 7 HPFS/NTFS/exFAT
/dev/sda2 139681792 180641791 20480000 7 HPFS/NTFS/exFAT
/dev/sda3 180641792 242081791 30720000 5 Extended
/dev/sda4 242081792 976773119 367345664 7 HPFS/NTFS/exFAT
/dev/sda5 180643840 239982591 29669376 83 Linux
/dev/sda6 239984640 242081791 1048576 82 Linux swap / Solaris
sda1 tiene Windows 7
sda2 tiene Windows xp (el último en ser formateado e instalado)
sda4 es solo ntfs para datos
sda5 es arch linux
sda6 swap
Hasta ahora solo he conseguido hacer dos cosas: o tener funcionando los windows pero no linux, o tener linux funcionando pero no los windows.
Para recuperar el mbr de windows (pues desde linux no me accede, simplemente con WIndows loader me dan errores de acceso), inserto el de xp, recuperacion, y hago:
fixboot (sobre C)
fixmbr
copy F:\I386\NTDLR D:\
copy F:\I386\NTDETECT.COM D:\
F es el cdrom y D es la particion de windows xp (esto lo he hecho porque sino luego daba error al entrar en win xp).
reinicio, y voila, tengo recuperados los windows, pero he perdido el GRUB2 Loader.
Si quiero recuperar el grub, meto archlinux live, y hago:
mkdir /mnt/
mkdir /mnt/arch
mount /dev/sda5 /mnt/arch
cd /mnt/arch
mount -o bind /dev dev/
mount -t proc proc proc/
mount -t sysfs sys sys/
chroot . /bin/bash
grub-install /dev/sda
Y voilà, recupero grub y los linux, pero de nuevo el mismo problema para acceder a windows loader....
¿Como puedo solventarlo? SE conoce que cuando hago grub-install se carga lo que había en el MBR, y me gustaría conservarlo o ponerlo en otro sitio para que desde Grub Loader pueda acceder al NTLDR que estaba en el MBR con anterioridad...
También he intentado una alternativa que viene en la web:
https://wiki.archlinux.org/index.php/GR ... ot_in_BIOSQue es obviar el Windows Loader e intentar poner directamente los accesos.
Haciendo ese proceso y añadiendo al /etc/grub.d/40_custom
#Windows 7
menuentry "Microsoft Windows 7 BIOS-MBR" {
insmod part_msdos
insmod ntfs
insmod search_fs_uuid
insmod ntldr
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5950F0AB218845D1
ntldr /bootmgr
}
menuentry "Microsoft Windows XP" {
insmod part_msdos
insmod ntfs
insmod search_fs_uuid
insmod ntldr
#search --fs-uuid --no-floppy --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 F0FC4E7EFC4E3EDA
#Esto venía por defecto,lo de abajo lo he añadido con la linea:
#sudo grub-probe --target=hints_string /media/Sistema/NTLDR
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 F0FC4E7EFC4E3EDA
ntldr /ntldr
}
Luego hago sudo grub-mkconfig
Pero al reiniciar sigo sin ver estas dos nuevas entradas que he metido.
Otra prueba que he hecho, es variar el chainloader, de:
#Windows 7 Loader
menuentry "Windows Loader" {
set root=(hd0,0)
chainloader (hd0,0)+1
}
Cambiarlo a:
#Windows 7 Loader
menuentry "Windows Loader" {
set root=(hd0,1)
chainloader (hd0,1)+1
}
Pero tampoco. No sé si hay alguna manera de alojar el NTLDR (Windows Loader para xp y 7) por ejemplo en /dev/sda2, y que en /dev/sda1 esté el MBR que apunta a GRUB2, para despues desde GRUB2, en la entrada WIndows Loader, cargue el NTLDR de /dev/sda2.
Soluciones??