it-swarm.com.de

Grub2 mit BURG: Windows Einträge duplizieren, wie entferne ich einen?

Ich habe ein Dual-Boot-System mit Ubuntu 12.04 und Windows 7, das GRUB2 (mit Burg) als Bootloader verwendet.

Aus irgendeinem Grund wird die Windows-Installation im Startmenü zweimal angezeigt:

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)

Wenn ich in meiner Partitionstabelle nachschaue, ist /dev/sda2 C:\der Windows-Installation, und /dev/sda1 ist die Partition "System Reserved" (IIRC ist der Windows-eigene Bootloader). Außerdem zeigt gparted /dev/sda2 - aber keine anderen Partitionen - mit einem boot -Flag:

enter image description here

Was geht hier vor sich? Ich möchte nur die Einträge für Ubuntu und eins für Windows in meinem Boot-Menü haben - wie entferne ich einen davon?

5
Tomas Aschan

Sie haben Recht, dass Windows 7 seine "Boot" -Partition standardmäßig auf /dev/sda1 setzt, aber es ist auch möglich, dass Windows 7 alles auf seine "Root" -Partition legt - z. durch Installation auf einer vorformatierten NTFS-Partition.

Vielleicht haben Sie Windows in der Vergangenheit so angepasst, dass das Bootloader/Bootable-Flag auf /dev/sda2 gesetzt wurde? Können Sie erfolgreich von beiden Windows-Einträgen booten? Wenn ja, ist es sicher, einen von ihnen zu löschen.

So entfernen Sie die Einträge

Achtung!

Dies kann dazu führen, dass Ihr Windows nicht mehr bootfähig ist. Um die folgenden Schritte auszuführen, müssen Sie gegebenenfalls Sudo einfügen und sicherstellen, dass die NTFS-Partition zuvor mit Lese- und Schreibzugriff bereitgestellt wurde.

 cd /mnt/where-o-where-my-ntfs-be[.____.)rm -rf bootmgr Boot BOOTSECT.BAK Recovery 
 cd && umount /mnt/ntfs1
 update-grub

Das sollte sein - offensichtlich habe ich meine Dual-Boot-Systeme noch nicht ausprobiert. Bitte lassen Sie mich wissen, wenn es nicht funktioniert und ich gebe Ihnen entweder gefährlichere Methoden oder schaue in der Quelle grub nach, wie es Windows-Partitionen erkennt, um eine endgültige Antwort zu erhalten.

3
ish

Ich habe es schon beharrlich genug für meine Bedürfnisse gelöst. Ich habe das Skript /etc/grub.d/30_os-prober ein wenig geändert:

beginnen Sie in Zeile 150 (fügen Sie einfach eine Variable und eine Bedingung hinzu, um zu überprüfen, ob Windows 7 bereits gefunden wurde):


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

ändern:


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

Sollte zumindest so lange funktionieren, bis Grub nicht mehr aktualisiert wird. Genießen.

EDIT: Ubuntu 12.1

30_os-prober hat sich ein wenig geändert, verwendet aber dasselbe, wenn nach den folgenden Zeilen:


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

funktioniert gut.

3
Mi-La

Bearbeiten Sie einfach die Burg-Konfigurationsdatei über das Terminal: 1.) Öffnen Sie das Terminal. 2.) Geben Sie ein

Sudo gedit /boot/burg/burg.cfg

3.) Suchen Sie den Menüeintrag "Windows ..." und fügen Sie direkt nach --class os Folgendes hinzu:

--group group_secondary

Wobei "group_secondary" ein eindeutiger Name ist, um eine Gruppe von Betriebssystemen zusammenzufassen. Wenn Sie sich die Datei ansehen, werden Sie feststellen, dass die Linux-Kernel Folgendes haben:

--group group_main

Jetzt sollte Windows und Windows Recovery so aussehen:

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.) DAS WICHTIGSTE TEIL !!! Sparen!!! Jetzt können Sie entweder REBOOT oder Start:

Sudo burg-emu

5.) Drücken Sie auf dem Auswahlbildschirm "F", um die Ordner auszublenden.

*** SEITLICHER HINWEIS: Im reduzierten Modus verwendet Burg den ERSTEN Menüeintrag in der Datei als Standard im reduzierten Modus.

0
Robert Cole