4 votes

Démarrage d'une partition Windows 7 non EFI MS-DOS avec grub2-gpt

J'ai la configuration suivante :

  • UEFI Carte mère Asus
  • GPT TABLE et Ubuntu sur /dev/sdb
  • TABLEAU MS-DOS, Windows 7 et Linux Mint sur /dev/sda

J'essaie de démarrer les partitions Windows 7 avec grub2 depuis Ubuntu 11.10.

Mon "Système réservé" de Windows est /dev/sda3 .

En Grub L'entrée de Windows est (standard) :

menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
        insmod part_msdos
        insmod ntfs
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 644C5AC04C5A8CA4
        chainloader +1
}

Séparé sortie :

Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      32.3kB  296MB   296MB   primary   ext2
 2      296MB   423GB   423GB   extended
 5      296MB   20.3GB  20.0GB  logical   ext4
 6      20.3GB  363GB   342GB   logical   ext4
 7      363GB   423GB   60.1GB  logical   ntfs
 3      423GB   423GB   105MB   primary   ntfs         boot
 4      423GB   500GB   77.2GB  primary   ntfs

Disk /dev/sdb: 1500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name  Flags
 1      17.4kB  20.0MB  20.0MB  fat16                 boot
 2      20.0MB  50.9GB  50.9GB  ext4
 4      50.9GB  1103GB  1052GB  btrfs
 5      1103GB  1156GB  52.7GB  ext4
 6      1156GB  1233GB  77.2GB  ntfs
 7      1233GB  1233GB  105MB   ntfs
 3      1496GB  1500GB  4271MB  linux-swap(v1)

Après avoir essayé de démarrer Windows à partir de grub2, j'obtiens le message suivant :

erreur : chemin de fichier EFI invalide

8voto

JdeBP Points 25711

Vous ne pouvez pas faire ça.

Il devrait être flagrant que toute application pré-boot, comme le programme boot loader pour un système d'exploitation, est étroitement couplée au firmware de la machine ; tout comme un programme d'applications ordinaire est lié au système d'exploitation dont il emploie les services. Un programme EFI boot loader ne peut pas être exécuté sur une machine à moins que cette machine ne fournisse des services de micrologiciel EFI. Un vieux programme de chargeur de démarrage de style PC/AT ne peut pas être exécuté sur une machine à moins que cette machine ne fournisse les services du vieux micrologiciel PC/AT.

En chainloader dans Grub incarne cela. Il n'est pas documenté, mais il fait différentes choses selon la façon dont Grub est hébergé - c'est-à-dire sur quel firmware de machine Grub s'exécute (s'attend à s'exécuter). Sur la version de Grub hébergée sur les vieux systèmes PC/AT, elle s'attend à recevoir un jeu de blocs de disque ou un fichier, et charge et exécute (le premier secteur de) ce qui lui est donné à la manière d'un vieux programme d'amorçage VBR de PC/AT. Sur la version hébergée par EFI de Grub, il s'attend à ce qu'on lui donne des noms de fichiers, et charge et exécute les fichiers comme des applications EFI ordinaires.

Vous avez la version hébergée par EFI de Grub. Vous avez passé +1 a chainloader comme nom de fichier, mais ce n'est tout simplement pas un chemin valide pour un fichier image d'application EFI pré-boot. Grub n'a pas été en mesure de construire le Chemin du périphérique EFI pour le fichier image, car vous lui avez donné un chemin syntaxiquement incorrect. D'où le message d'erreur.

Une utilisation correcte de chainloader dans le Grub hébergé par EFI nomme un fichier. Pour Microsoft Windows NT 6.1, il s'agira de la version EFI du gestionnaire de démarrage de Microsoft qui vit à côté du magasin BCD sur la partition système EFI :

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Bien sûr, cela ne fonctionnera pas pour vous, car soit vous n'avez pas installé Windows NT 6.1 sur cette machine - mais sur une autre machine dont vous avez transféré le disque dur sur celle-ci - soit vous n'avez pas installé la version amorçable par EFI, persuadant en quelque sorte Windows NT 6.1 d'exécuter la version non-EFI de son utilitaire d'installation sur votre machine EFI. Comment est-ce que je le sais ? Parce que Microsoft ne vous aurait pas laissé l'installer sur un disque dur non EFI sur une machine EFI. comme vous l'avez fait, et parce que vous avez à la fois un bon Partition système EFI (la partition FAT de votre deuxième disque dur) et son équivalent pour les pauvres alors que vous n'auriez eu besoin que de la première autrement.

Ainsi, Windows NT 6.1 n'a pas été installé avec la version hébergée par EFI du gestionnaire d'amorçage de Microsoft, la mémoire BCD n'est pas au bon endroit, et il y aura plusieurs autres problèmes - liés au fait que Windows NT s'attendait à une combinaison matériel/firmware et avait été configuré avec les pilotes et les paramètres appropriés pour cela, et que soudainement il est amorcé sur une autre combinaison matériel/firmware - qui vous attendent plus tard.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X