Grub Parameter



  • #!/bin/sh 
    
    # a simple script to reboot into windows once without user
    # intervention.  Assumes that the menu listing corresponding to
    # windows at least has "win" in the title.  If it doesn't, you can
    # change the WINSTRING variable below.
    
    WINSTRING=win
    GRUBMENU=/boot/grub/menu.lst
    
    let "WINNUM = `grep title $GRUBMENU | grep -in $WINSTRING | cut -d: -f1` - 1"
    #echo "num is $WINNUM"
    /sbin/grub --device-map=/boot/grub/device.map --batch <<FOO
    savedefault --default=$WINNUM --once
    quit
    FOO
    /usr/bin/reboot
    

    Ich habe im Internet dieses Shell Script gefunden und möchte es ein wenig für mich anpassen. Allerdings verstehe ich einige Stellen nicht so ganz:

    Was bewirkt das <<FOO und auch das FOO 2 Zeilen drunter? savedefault hat doch zumindest in der menu.lst den Zweck, dass das gebootete OS zum default wird. Wie spiel das dann mit --once zusammen (oder welche Bedeutung hat der Parameter ... habe nirgends etwas dazu gefunden)?

    Ziel ist es, den Rechner mit einem bestimmten OS zu rebooten.

    Zur Zeit sieht es so aus:

    #!/bin/sh
    
    MENUFILE=/mnt/gentoo-boot/grub/menu.lst
    
    OSNAM=$(grep title $MENUFILE | cut -d ' ' -f 2- | zenity --list --column "Betriebssysteme" --title "Neustart" --text "Betriebssystem auswählen:")
    OSNUM=$(($(grep title $MENUFILE | grep -n -m 1 "$OSNAM" | cut -f1 -d:) - 1))
    
    grub --device-map=/mnt/gentoo-boot/grub/device.map --batch <<FOO
    savedefault --default=$OSNUM --timeout=0 --once
    quit
    FOO
    /usr/lib/klibc/bin/reboot
    

    Funktioniert soweit, aber wie oben schon geschrieben ist das über den Dialog ausgewählte OS dann default. Hab noch nich probiert, savedefault wegzulassen da ich gerne erstmal wüsste, wie es mit --once zusammenhängt. --timeout hat scheinbar leider keine Wirkung.

    Vieleicht kann jemand ja kurz en bischen was erklären ... danke!



  • Ich bin mir nicht ganz sicher, aber anhand eines andere Beispiels auf http://jbakshi.50webs.com/Linux_tutorial/GRUB/GNU GRUB simplified.html sieht es so aus, als wenn das, was zwischen <<X und X (in deinem Fall halt das <<FOO und FOO) steht, das ist was automatisch in die normalerweise interaktiven grub shell eingegeben wird.

    Das heißt grub shell wird aufgerufen, "savedefault --default=$WINNUM --once" wird eingegeben und dann mit quit wieder beendet.



  • Ich bin mir nicht ganz sicher, aber anhand eines andere Beispiels auf http://jbakshi.50webs.com/Linux_tutorial/GRUB/GNU GRUB simplified.html sieht es so aus, als wenn das, was zwischen <<X und X (in deinem Fall halt das <<FOO und FOO) steht, das ist was automatisch in die normalerweise interaktiven grub shell eingegeben wird.

    Das macht Sinn und sowas in der Richtung hab ich auchschon vermutet, aber:
    Wenn ich in der Grub - Shell mit help alle gültigen Befehle abrufe, taucht --default und --once nicht auf.



  • Ähm ja ... ich war wohl etwas zu voreilig. Wie du oben schon geschrieben hast, sind es wohl Parameter von savedefault. Allerdings finde ich dazu rein garnichts im Inet. Aber irgendwie muss es ja gehen, zumindest KDE 3.5.x bringt standardmässig so ein Feature mit.


Anmelden zum Antworten