GRUB – zmiana kolejności systemów

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Gdy zainstalowałeś po raz pierwszy Ubuntu na dysku, na którym również był Windows zauważyłeś, że po uruchomieniu komputera pojawia Ci się okno wyboru systemu. Na pierwszym miejscu jest Ubuntu, na drugim Windows. Wielu osobom takie rozwiązanie nie pasuje, ponieważ zainstalowały Ubuntu „dla zabawy” i nie zamierzają korzystać z niego często. Czasami chwila nieuwagi i zamiast zalogować się na Windows, uruchomi nam się automatycznie Ubuntu – pierwszy system z listy. Poniżej przedstawię sposób, dzięki któremu ustawisz system Windows na pierwszym miejscu w GRUBie.

Standardowe okno GRUBa wygląda tak:

Ubuntu 8.04
Ubuntu 8.04 (recovery mode)
Ubuntu 8.04 (memtest86+)
Inne systemy operacyjne:
Microsoft Windows XP

Naszym celem jest ustawienie Windows na pierwszym miejscu, czyli:

Microsoft Windows XP
Ubuntu 8.04
Ubuntu 8.04 (recovery mode)
Ubuntu 8.04 (memtest86+)

Do dzieła:
1. Edytuj plik konfiguracyjny GRUBa:

sudo gedit /boot/grub/menu.lst

2. Wyszukaj taki fragment (lub podobny):

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda2
title Microsoft Windows XP Home Edition
root (hd0,1)
savedefault
makeactive
chainloader +1

3. Wytnij w/w fragment (Ctrl + X) i przenieś go między:

# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

a

### BEGIN AUTOMAGIC KERNELS LIST

4. Dodatkowo możesz zmienić timeout. Znajdź poniższy fragment i zmień w nim liczbę po słowie timeout (czas w sekundach):

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

5. Pod koniec pliku znajduje się fragment, w którym musisz zahaszować. Zamień:

# This is a divider, added to separate the menu items below from the Debian
# ones.
title           Other operating systems:
root

na

# This is a divider, added to separate the menu items below from the Debian
# ones.
#title           Other operating systems:
#root

6. Gotowe. Zapisz plik (Ctrl + S) i uruchom ponownie komputer. Teraz na domyślnym systemem będzie Microsoft Windows i będziesz miał X sekund (w zależności od tego, ile ustawiłeś) na jego zmianę.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • reksio

    nie mam tego pliku ‚menu.lst’ w katalogu gruba to jaki plik otworzyć żeby zmienic
    zawartosc

  • http://www.ubuntu-pomoc.org Szmitas

    Pewnie używasz wersji 9.10. W tym przypadku musisz edytować plik /etc/default/grub. Prawdopodobnie jutro rano dodam o tym artykuł.

  • inext

    Mam taki problem: Podczas próby zapisania zmienionego już pliku w górnej części edytora pojawia się komunikat, że nie mam uprawnień do zapisania pliku lub ścieżka jest niepoprawna. Czy jest na to jakieś rozwiązanie?

  • http://www.ubuntu-pomoc.org Szmitas

    Na pewno używasz poprawnego polecenia? Tj. z „sudo” na początku?

    Jeśli tak to podaj wersję systemu (jeśli 9.10 – aktualizowany czy instalowany na czysto?)

  • Raol3k

    Do Ubuntu 10.10

    sudo gedit /boot/grub/menu.lst (czas)

    sudo gedit /boot/grub/menu.lst (kolejność systemów)

  • Michal

    jak zmienić kolejność systemów na: Windows Xp potem UBUNTU 10.10
    jeśli można to na pocztę: budczem@gmail.com
    Za pomoc serdecznie dziękuję,

  • Michal

    chciałbym dodać, że w terminalu otwieram menu.list, które jest puste i powyższe sposoby nic mi nie dadzą.

  • jedrekd

    Witam, wskazówka co do zmiany nazwy plików – kolejności systemów w Grubie – działa, aczkolwiek w moim przypadku pojawił się kolejny problem. Jak mówiłem, kolejność systemów w Grubie zmieniła się, ale (prawdopodobnie) w pliku op_prob znajduje się loader Windows 7 jak i loader Windows 7 Recovery, który jak na złość znalazł się na pierwszym miejscu i nie mam pojęcia, jak to zmienić. Czy ktoś wie, jak to zmienić? Próbowałem googlować, ale nie udało mi się nic znaleźć. Z góry dziękuję za pomoc.

  • juriiw

    Ja też nie mam pliku o nazwie menu.lst. Ze zmianą kolejności systemów do wyboru (w liście) poradziłem sobie edytując plik /boot/grub/grub.cfg

  • mysza

    wszystko ok… ale ja w ogóle nie mam w menu opcji windows….
    w którym miejscu to

    # This entry automatically added by the Debian installer for a non-linux OS
    # on /dev/hda2
    title Microsoft Windows XP Home Edition
    root (hd0,1)
    savedefault
    makeactive
    chainloader +1

    dopisać

    #
    # DO NOT EDIT THIS FILE
    #
    # It is automatically generated by grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    #

    ### BEGIN /etc/grub.d/00_header ###
    if [ -s $prefix/grubenv ]; then
    set have_grubenv=true
    load_env
    fi
    set default=”0″
    if [ „${prev_saved_entry}” ]; then
    set saved_entry=”${prev_saved_entry}”
    save_env saved_entry
    set prev_saved_entry=
    save_env prev_saved_entry
    set boot_once=true
    fi

    function savedefault {
    if [ -z „${boot_once}” ]; then
    saved_entry=”${chosen}”
    save_env saved_entry
    fi
    }

    function recordfail {
    set recordfail=1
    if [ -n „${have_grubenv}” ]; then if [ -z „${boot_once}” ]; then save_env recordfail; fi; fi
    }

    function load_video {
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
    }

    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    if loadfont /usr/share/grub/unicode.pf2 ; then
    set gfxmode=1280×1024
    load_video
    insmod gfxterm
    fi
    terminal_output gfxterm
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    set locale_dir=($root)/boot/grub/locale
    set lang=pl_PL
    insmod gettext
    if [ „${recordfail}” = 1 ]; then
    set timeout=-1
    else
    set timeout=10
    fi
    ### END /etc/grub.d/00_header ###

    ### BEGIN /etc/grub.d/05_debian_theme ###
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    insmod png
    if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
    set color_normal=light-gray/black
    set color_highlight=white/black
    else
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    if background_color 44,0,30; then
    clear
    fi
    fi
    ### END /etc/grub.d/05_debian_theme ###

    ### BEGIN /etc/grub.d/10_linux ###
    if [ ${recordfail} != 1 ]; then
    if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
    if [ ${match} = 0 ]; then
    set linux_gfx_mode=keep
    else
    set linux_gfx_mode=text
    fi
    else
    set linux_gfx_mode=text
    fi
    else
    set linux_gfx_mode=keep
    fi
    else
    set linux_gfx_mode=text
    fi
    export linux_gfx_mode
    if [ „$linux_gfx_mode” != „text” ]; then load_video; fi
    menuentry ‚Ubuntu, za pomocą systemu Linux 2.6.38-15-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    linux /boot/vmlinuz-2.6.38-15-generic root=UUID=65fdea44-82f9-4361-afc6-0aff17c6b05b ro vga=775 quiet splash vt.handoff=7
    initrd /boot/initrd.img-2.6.38-15-generic
    }
    menuentry ‚Ubuntu, za pomocą systemu Linux 2.6.38-15-generic (tryb ratunkowy)’ –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    echo ‚Loading Linux 2.6.38-15-generic …’
    linux /boot/vmlinuz-2.6.38-15-generic root=UUID=65fdea44-82f9-4361-afc6-0aff17c6b05b ro single vga=775
    echo ‚Loading initial ramdisk …’
    initrd /boot/initrd.img-2.6.38-15-generic
    }
    submenu „Previous Linux versions” {
    menuentry ‚Ubuntu, za pomocą systemu Linux 2.6.38-8-generic’ –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    linux /boot/vmlinuz-2.6.38-8-generic root=UUID=65fdea44-82f9-4361-afc6-0aff17c6b05b ro vga=775 quiet splash vt.handoff=7
    initrd /boot/initrd.img-2.6.38-8-generic
    }
    menuentry ‚Ubuntu, za pomocą systemu Linux 2.6.38-8-generic (tryb ratunkowy)’ –class ubuntu –class gnu-linux –class gnu –class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    echo ‚Loading Linux 2.6.38-8-generic …’
    linux /boot/vmlinuz-2.6.38-8-generic root=UUID=65fdea44-82f9-4361-afc6-0aff17c6b05b ro single vga=775
    echo ‚Loading initial ramdisk …’
    initrd /boot/initrd.img-2.6.38-8-generic
    }
    }
    ### END /etc/grub.d/10_linux ###

    ### BEGIN /etc/grub.d/20_linux_xen ###
    ### END /etc/grub.d/20_linux_xen ###

    ### BEGIN /etc/grub.d/20_memtest86+ ###
    menuentry „Memory test (memtest86+)” {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    linux16 /boot/memtest86+.bin
    }
    menuentry „Memory test (memtest86+, serial console 115200)” {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos6)’
    search –no-floppy –fs-uuid –set=root 65fdea44-82f9-4361-afc6-0aff17c6b05b
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
    }
    ### END /etc/grub.d/20_memtest86+ ###

    ### BEGIN /etc/grub.d/30_os-prober ###
    ### END /etc/grub.d/30_os-prober ###

    ### BEGIN /etc/grub.d/40_custom ###
    # This file provides an easy way to add custom menu entries. Simply type the
    # menu entries you want to add after this comment. Be careful not to change
    # the ‚exec tail’ line above.
    ### END /etc/grub.d/40_custom ###

    ### BEGIN /etc/grub.d/41_custom ###
    if [ -f $prefix/custom.cfg ]; then
    source $prefix/custom.cfg;
    fi
    ### END /etc/grub.d/41_custom ###