web-dev-qa-db-fra.com

Grub2 avec BURG: entrées Windows en double, comment en supprimer une?

J'ai un système à double démarrage avec Ubuntu 12.04 et Windows 7, utilisant GRUB2 (avec Burg) comme chargeur de démarrage.

Pour une raison quelconque, l'installation de Windows apparaît deux fois dans le menu de démarrage:

Ubuntu GNU/Linux, with Linux 3.2.0-24-generic
Ubuntu GNU/Linux, with Linux 3.2.0-24-generic (recovery mode)
Windows 7 (loader) (on /dev/sda1)
Windows 7 (loader) (on /dev/sda2)

Si je regarde dans ma table de partition, /dev/sda2 est C:\de l'installation de Windows et /dev/sda1 est la partition "Réservé au système" (qui, IIRC, est le propre chargeur de démarrage de Windows). De plus, gparted affiche /dev/sda2 - mais pas d'autres partitions - avec un indicateur boot:

enter image description here

Qu'est-ce qui se passe ici? Je voudrais avoir seulement les entrées pour Ubuntu et une entrée pour Windows dans mon menu de démarrage - comment puis-je en supprimer une?

5
Tomas Aschan

Vous avez raison de dire que Windows 7 place sa partition "de démarrage" sur /dev/sda1 par défaut, mais il est possible d’obtenir que Windows 7 mette tout le contenu sur sa partition "racine" - par ex. en installant sur une partition NTFS pré-formatée.

Peut-être avez-vous déjà modifié Windows de telle sorte que l'indicateur bootloader/bootable soit sur /dev/sda2? Pouvez-vous démarrer avec succès à partir de les deux entrées Windows? Si c'est le cas, vous pouvez supprimer l'un d'entre eux en toute sécurité.

Comment supprimer les entrées

Danger!

Cela peut rendre votre Windows impossible à démarrer; Pour suivre les étapes ci-dessous, vous devez insérer Sudo le cas échéant et vous assurer que la partition NTFS est montée en lecture-écriture au préalable.

] ] update-grub

Cela devrait le faire - de toute évidence, je n'ai pas essayé mon ou mes systèmes à double amorçage. Faites-moi savoir si cela ne fonctionne pas et je vous donnerai des méthodes plus dangereuses ou peut-être regarder dans la source grub pour voir comment il détecte les partitions Windows pour une réponse définitive.

3
ish

Je l'ai déjà résolu suffisamment avec persistance pour mes besoins. J'ai légèrement modifié le script /etc/grub.d/30_os-prober:

commencez à la ligne 150 (ajoutez simplement une variable et une condition pour vérifier si Windows 7 a déjà été trouvé):


wubi=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

changer à:


wubi=
windows7_found=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  # Mi-La patch to add Windows 7 only once
  if [ "${LONGNAME}" = "Windows 7 (loader)" ]; then
    if [ "${windows7_found}" = yes ]; then
      echo "Skipping duplicated entry for ${LONGNAME} on ${DEVICE}." >&2
      continue
    else
      windows7_found=yes
    fi
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

Devrait fonctionner au moins jusqu'à ce que grub ne soit plus mis à jour. Prendre plaisir.

EDIT: Ubuntu 12.1

30_os-prober a un peu changé, mais utilise le même si après les lignes suivantes:


  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

fonctionne bien.

3
Mi-La

Il suffit de modifier le fichier de configuration Burg via Terminal: 1.) Ouvrez Terminal 2.)

Sudo gedit /boot/burg/burg.cfg

3.) Trouvez le menuentry "Windows ..." et juste après --class os ajoutez:

--group group_secondary

Où "group_secondary" est un nom unique permettant de regrouper un groupe de systèmes d'exploitation. Si vous regardez le fichier, vous verrez que les noyaux Linux ont:

--group group_main

Vous devriez maintenant avoir Windows et Windows Recovery ressembler à ceci:

menuentry "Windows 8 (loader) (on /dev/sdc1)" --class windows --class os --group group_secondary {
    insmod ntfs
    set root='(hd2,1)'
    search --no-floppy --fs-uuid --set b896bf7f96bf3d26
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Windows 8 (loader) (on /dev/sdc2) (recovery mode)" --class windows --class os --group group_secondary {
    insmod ntfs
    set root='(hd2,2)'
    search --no-floppy --fs-uuid --set c46cc0a06cc08f1c
    drivemap -s (hd0) ${root}
    chainloader +1
}

4.) La partie la plus importante !!! Sauver!!! Vous pouvez maintenant redémarrer ou démarrer:

Sudo burg-emu

5.) Sur l'écran de sélection, appuyez sur "F" pour réduire les dossiers.

*** NOTE LATÉRALE: Une fois réduit, Burg utilisera le menu FIRST du fichier comme fichier par défaut en mode réduit.

0
Robert Cole