Domyślne uruchamianie Windowsa za pomocą GRUB boot loadera

Podziel się z innymi!

    Jakiś czas temu kupiłem nowego kompa i stary w schedzie przypadł mojej żonie. Mimo moich usilnych działań uświadamiających nadal przedkłada ona Windowsa ponad Linuxa więc jak tylko dostała laptopa w swoje władanie wierciła mi dziurę w brzuchu aby usunąć z dysku Ubuntu, a przynajmniej sprawić aby domyślnie uruchamiał się Windows 7.

    Zmiana kolejności uruchamiania w GRUB boot loaderze jest dość prostą czynnością wielokrotnie opisywaną w necie. Należy jednak zwrócić uwagę na wersję GRUB-a, gdyż w przypadku np. najnowszego Ubuntu używany jest GRUB2, w którym zmianę kolejności bootowania robi się nieco inaczej.

    Przede wszystkim należy wyedytować odpowiedni plik

    sudo /etc/default/grub

    i odnaleźć w nim opcję GRUB_DEFAULT domyślnie ustawioną na 0

    GRUB_DEFAULT=0

    Liczba odnosi się do pozycji w menu bootowania. Taka lista wpisów może wyglądać następująco:

    Ubuntu, Linux 3.0.0-17-generic
    Ubuntu, Linux 3.0.0-17-generic (recovery mode)
    memory test (memtest86+)
    memory test (memtest86+, serial console 115200)
    Windows 7 (loader) (on /dev/sda1)

    Tak więc aby ustawić Windowsa jako domyślnie uruchamiany system należało by opcji GRUB_DEFAULT przypisać 4

    GRUB_DEFAULT=4

    Na koniec niezbędnym jest jeszcze aktualizacja ustawień GRUBA2 poprzez wykonanie polecenia

    sudo update-grub

    To wystarcza by zmienić kolejność bootowania. Jednak jest mały problem. Polega na tym, że przy aktualizacji kernela do nowej wersji do menu dodawane są nowe linie i wpis dotyczący Windowsa przesuwa się na dalszą pozycję. Można oczywiście każdorazowo aktualizować ustawienia GRUB2-a jednak jest lepsze rozwiązanie.

    W pliku /boot/grub/grub.cfg odszukujemy sekcję odpowiedzialną za uruchamianie Windowsa

    menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    	insmod part_msdos
    	insmod ntfs
    	set root='(hd0,msdos1)'
    	search --no-floppy --fs-uuid --set=root 24B2367EB2365510
    	chainloader +1
    }

    i do opcji GRUB_DEFAULT przypisujemy tytuł wpisu zamiast jego numeru

    GRUB_DEFAULT="Windows 7 (loader) (on /dev/sda1)"

    W ten sposób co prawda pozycja wpisu w menu się nie zmieni, ale za to przy inicjalizacji domyślnie zaznaczona będzie pozycja w menu dotycząca Windowsa i jeżeli nie zareagujemy to po czasie określonym w opcji GRUB_TIMEOUT uruchomi się Windows.

    Jak już pisałem aktualizację ustawień GRUB2 kończy polecenie sudo update-grub. Bez jego wykonania zmiany w ustawieniach nie zostaną uwzględnione.

    Podziel się z innymi!

      13 Comments

      1. Accura

        I o to właśnie chodzi !
        Prosto, konkretnie i działająco !
        Ci wszyscy mądrzy którzy na ten temat bzdurne porady wypisują powinni uczyć się od Ciebie.
        Serdecznie dziękuje i pozdrawiam 🙂

      2. Luk

        Fajnie prosto i przejrzyście, choć w większości distro już jest grub2 i procedura jest trochę inna. Co do zasady można też większość distro odpalać z starego gruba.

      3. Czarny

        A jak podmienić bootloader z Grub2 na Windows Loader żeby w Windows loader uruchamiał się także linux ?

      4. Luk

        @Czarny
        Da się, ale raczej windows loader będzie odpalał gruba.
        W boot.ini powinno wyglądać jakoś tak
        [code]

        [boot loader]
        timeout=30
        default=multi(0)disk(0)rdisk(0)partition(5)\WINDOWS
        [operating systems]
        multi(0)disk(0)rdisk(0)partition(5)\WINDOWS=”Microsoft Windows XP Professional” /NOEXECUTE=OPTIN /FASTDETECT
        multi(0)disk(0)rdisk(1)partition(1)\WINDOWS=”Microsoft Windows XP Professional (Safe mode)” /BASEVIDEO /SOS
        c:\CMDCONS\BOOTSECT.DAT=”Microsoft Windows XP recovery console” /CMDCONS
        c:\linux.bin=”Grub (loader)”

        [/code]

        Co do zasady takie myki robiłem na XP, nie wiem jak to wygląda na NT6 ale pewnie jakoś tak podobnie.

      5. Tomek

        „Przede wszystkim należy wyedytować odpowiedni plik

        sudo /etc/default/grub”

        Pomiędzy sudo a /etc/default/grub należy wpisać nazwę jakiegoś edytora. Przykładowo
        sudo nano /etc/default/grub
        albo
        sudo gedit /etc/default/grub

      Dodaj komentarz

      Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *