So verstecken Sie die Wiederherstellungspartition vor Grub2

1

Ich habe eine Linux-Distribution auf dem PC eines Freundes installiert. Er kann nicht sehr gut mit Linux oder sogar Windows umgehen, und ich möchte, dass es so einfach wie möglich ist. Bei der Installation von GRUB wurde seine Wiederherstellungspartition erkannt, die HP für ihn installiert hat, und es ist das erste Windows in der Liste.

Nach einigem googeln und durchblättern der Grub-Handbuch- und Konfigurationsdateien kann ich immer noch nicht herausfinden, wie man eine Partition vor GRUB versteckt. Ich habe nachgesehen 30_osprober, aber keine eindeutige Möglichkeit gefunden, ein Betriebssystem auszuschließen.

Kann mir jemand die richtige Richtung weisen, um ein Betriebssystem / eine Partition aus dem GRUB-Menü auszuschließen?

Nostradamnit
quelle

Antworten:

1

// EDIT // Geändert aufgrund von Änderungen (Ich schwöre, dies hat sich geändert, während ich getippt habe)

Eine fehlerhafte Lösung besteht darin, die Datei grub.cfg zu bearbeiten. Dies muss jedoch jedes Mal geschehen, wenn ein Kernel-Upgrade durchgeführt wird.

In grub v2: (HINWEIS, DAS WIRD NICHT EMPFOHLEN)

vim /boot/grub/grub.cfg

Der richtige Weg, dies zu erreichen, besteht darin, /etc/grub.d/30_os-prober (wie bereits erwähnt) zu bearbeiten und darauf hinzuweisen, bestimmte Partitionen zu ignorieren. Eine gute Anleitung finden Sie hier

Schmutzige Lösung Nr. 2 könnte darin bestehen, ein Skript auszuführen, das diese Zeile aus der Datei grub.cfg für Ihren Freund auskommentiert.

Dan M.
quelle
5

Ich habe die Richtlinien dieses Beitrags befolgt (im Abschnitt 6)

GRUB 2 findet und erstellt einen Menüeintrag für die Windows (Vista) Recovery-Partition. Zumindest in Vista ist der Menüname derselbe wie in der normalen Vista-Betriebspartition, der einzige Unterschied ist die Bezeichnung der Partition. So entfernen Sie den Eintrag für die Wiederherstellungspartition aus dem Menü:

  • Sichern Sie die vorhandene /etc/grub.d/30_os-proberDatei, entfernen Sie das ausführbare Bit aus der Sicherung, damit es bei Aktualisierungen nicht ausgeführt wird, und öffnen Sie das Original zur Bearbeitung (der Abschnitt beginnt um Zeile 134):

    sudo cp /etc/grub.d/30_os-prober /etc/grub.d/30_os-prober.original  && sudo chmod -x
    

    /etc/grub.d/30_os-prober.original

    gksu gedit +83 /etc/grub.d/30_os-prober &
    
  • Bestimmen Sie den genauen Titel und die Windows-Wiederherstellungspartition. Diese können sich in der befinden /boot/grub/grub.cfg file. Fügen Sie den folgenden Eintrag hinzu. Im Beispiel wurde der Menüeintrag als "Windows Vista (Loader) (unter / dev / sda1)" angezeigt. Stellen Sie sicher, dass Sie die richtige Partition auswählen, da der Titel für den normalen Titel und den Wiederherstellungs-Titel identisch sein kann. Der Inhalt für $LONGNAMEund ${DEVICE} sollte der genaue Inhalt zwischen den Anführungszeichen im Menüeintrag für die Wiederherstellungspartition sein:

    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
    
    # Added to remove Windows Recovery
    if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
    continue
    fi
    # End Added
    

Speichern Sie die Datei und führen Sie dann Folgendes aus:

sudo update-grub

Anstelle von Vista musste ich an Windows 7 denken (die Methode ist die gleiche) und alles funktionierte.

Fabrizio C
quelle
2

In der Datei / etc / default / grub können Sie hinzufügen

GRUB_OS_PROBER_SKIP_LIST mit einer Liste von durch Leerzeichen getrennten UUIDs @ path_to_device

Zum Beispiel GRUB_OS_PROBER_SKIP_LIST = 12345 @ / dev / sda1

OS_PROBER soll diese Dateisysteme überspringen.

Sie können eine Liste der UUIDs von lsblk -fs abrufen

Hier erfahren Sie mehr über GRUB_OS_PROBER_SKIP_LIST .

user948930
quelle
Diese Lösung hat funktioniert, wobei eines zu beachten ist. Wenn Sie mehrere Partitionen zum Ignorieren hinzufügen, müssen diese in Anführungszeichen stehen. Das heißt, dies hat nicht funktioniert, GRUB_OS_PROBER_SKIP_LIST=27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2 aber es hat wie beabsichtigt GRUB_OS_PROBER_SKIP_LIST="27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2"
funktioniert