web-dev-qa-db-fra.com

Ajoutez le disque dur externe "Windows To Go" au menu de démarrage grub2

J'ai installé Windows 10 sur un disque dur USB 3.0 externe. Actuellement, le seul moyen de le démarrer consiste à accéder à mes options de démarrage du BIOS et à le choisir dans la liste.

J'ai installé Ubuntu 16.04 sur un SSD M.2 interne, mais le programme d'installation d'Ubuntu n'a pas ajouté automatiquement une option permettant à GRUB2 de démarrer le lecteur externe comme prévu.

Je ne sais pas comment ajouter une entrée de menu qui indique à grub de démarrer à partir du lecteur externe sur lequel Windows 10 est installé. Je sais que je peux utiliser la commande de recherche avec l'uuid du lecteur externe pour définir la variable racine, mais je ne sais pas comment utiliser la commande de démarrage après cela, ni le fichier à modifier pour ajouter des options de démarrage.

UPDATE: J'ai fini par faire quelque chose comme la réponse acceptée, mais beaucoup plus simple

menuentry "Windows 10" {
    set root=(hd0,msdos1)
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
1
Broseph

Typiquement, Grub exécute os-prober sur monté et ajoute des entrées automatiquement.

Pour les entrées de menu personnalisées, vous pouvez ajouter votre propre configuration à /etc/grub.d/40_custom. Je recommanderais cette option car, s’appuyant sur os-prober, la partition de l’autre système d'exploitation est toujours montée lorsque la configuration de Grub est mise à jour, ce qui est le cas lorsque le gestionnaire de mise à jour installe un nouveau noyau Linux ou met à jour le paquet grub lui-même (par exemple, sécurité). mises à jour).

Pour les prochaines étapes, je suppose que vos démarrages Ubuntu avec UEFI et Windows 10 font de même, si ce n’est pas le cas, regardez ici ou dans la section MBR du the article du arch wiki où j'ai emprunté le code suivant:

menuentry "Microsoft Windows Vista/7/8/8.1 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root $hints_string $fs_uuid
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Placez ceci dans votre 40_custom et remplacez les variables $hints_string et $fs_uuid par le résultat des commandes grub-probe. Pour ce faire, vous devez monter la partition système EFI (c'est ce que ESP) du lecteur Windows To Go. Le moyen le plus simple est de lancer gnome-disks, de sélectionner votre lecteur et la partition, puis de cliquer sur le bouton de lecture () et de noter où il a monté le lecteur (généralement/media/votre_nom_utilisateur) et de remplacer $esp par ceci. chaîne (ajoutez des guillemets si nécessaire) dans les commandes suivantes:

# fs_uuid
grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi

# hints_string
grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi
1
LiveWireBT

Essayez simplement de dire à GRUB d'essayer de détecter d'autres systèmes d'exploitation.

Lancez un terminal (CTRL+ALT+T) et exécutez la commande suivante:

Sudo update-grub

Si cela ne fonctionne pas, essayez de démarrer à partir d'un DVD/USB en direct et d'exécuter cette commande à partir du terminal:

Sudo grub-install /dev/sda #Replace block accordingly
1
Android Dev