W systemie Ubuntu standardowym programem rozruchowym jest GRUB2. Jego konfiguracja ma charakter "modułowy": użytkownik nie układa ręcznie całego menu w jednym pliku, tylko wpływa na to, jak menu jest generowane.
Katalog /etc/grub.d zawiera numerowane skrypty (np. 00_header, 10_linux, 30_os-prober), które są wykonywane w ustalonej kolejności. To właśnie ta kolejność (wynikająca z numeracji i logiki skryptów) przekłada się na kolejność wykrywanych i wypisywanych wpisów w menu. Następnie narzędzie typu update-grub uruchamia mechanizm generowania i tworzy końcowy plik konfiguracyjny w /boot/grub/grub.cfg.
Jeśli administrator chce zmienić kolejność pozycji systemów w menu (np. aby Windows pojawiał się wyżej albo niżej), praktycznie robi się to przez modyfikację zawartości /etc/grub.d: zmianę numeracji skryptów, wyłączenie/zmianę działania os-prober lub dodanie własnych wpisów (np. w plikach przewidzianych do rozszerzeń). Dzięki temu po ponownym wygenerowaniu konfiguracji menu zostanie ułożone inaczej.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- /etc/inittab dotyczy historycznego mechanizmu init i nie służy do konfiguracji menu GRUB2 w nowoczesnych Ubuntu.
- boot.ini jest plikiem rozruchowym spotykanym w starszych systemach Windows (NT/XP) i nie steruje menu GRUB2 w Ubuntu.
- bcdedit to narzędzie do zarządzania bazą BCD w Windows; nie jest "zawartością" konfiguracji GRUB2 i nie ustawia kolejności wpisów generowanych przez skrypty Ubuntu.
Wskazówka egzaminacyjna: zapamiętaj podział ról: /etc/grub.d = skrypty generujące menu, a /boot/grub/grub.cfg = plik wynikowy po generowaniu.