Poradnik ten przeznaczony jest dla użytkowników, którzy w razie niepowodzenia będą w stanie dokonać naprawy z poziomu chroot. Jeśli nie czujesz się na siłach, lepiej pozostań przy GRUB
Poradnik ten nie ma charakteru ogólnego. Przedstawia dość wąski zakres zastosowania przeze mnie bootloadera Syslinux. Przyjąłem w niej następujące założenia:
- korzystam z trybu Legacy zamiast UEFI
- posiadam tylko jeden system operacyjny
- posiadam tablicę partycji MBR
- korzystam z microcode Intela
Jeśli posiadasz inny model laptopa a spełniasz powyżej wymienione warunki, możesz skorzystać z poradnika. W przeciwnym razie odsyłam do stosownego wpisu na Wiki, który został napisany bardzo rzetelnie i szczegółowo. Nie ręczę jednak, że na innym laptopie metody opisane przeze mnie poskutkują. Jeśli nie poskutkują, użytkownik straci możliwość uruchomienia systemu i konieczne będzie przeinstalowanie bootloadera z poziomu chroot.
1. Na początku instalujemy Syslinux.
pacman -S syslinux
2. Wybieramy jedną z dwóch metod.
a) Metoda automatyczna:
Wykonujemy:
syslinux-install_update -i -a -m
b). Metoda manualna
Wykonujemy:
cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
Następnie:
extlinux --install /boot/syslinux
Musimy też wykonać:
dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sda
Kolejnym krokiem jest przygotowanie pliku konfiguracyjnego. Syslinux dostarcza szkielet tego pliku, który warto zapisać u siebie w formie kopii zapasowej.
cp /boot/syslinux/syslinux.cfg /boot/syslinux/syslinux.cfg.backup
Następnie edytujemy plik i dostosowujemy go do własnych potrzeb. W moim przypadku wygląda on tak:
# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
#
# Comboot modules:
# * menu.c32 - provides a text menu
# * vesamenu.c32 - provides a graphical menu
# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
# * hdt.c32 - hardware detection tool
# * reboot.c32 - reboots the system
#
# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
# If /usr and /boot are on the same file system, symlink the files instead
# of copying them.
#
# If you do not use a menu, a 'boot:' prompt will be shown and the system
# will boot automatically after 5 seconds.
#
# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
# The wiki provides further configuration examples
DEFAULT arch_linux_lucjan
PROMPT 0 # Set to 1 if you always want to display the boot: prompt
# TIMEOUT 100
TIMEOUT 50
# You can create syslinux keymaps with the keytab-lilo tool
#KBDMAP de.ktl
# Menu Configuration
# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
#UI menu.c32
UI vesamenu.c32
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Arch Linux Menu
MENU BACKGROUND splash.png
#MENU BACKGROUND
MENU RESOLUTION 1366 768
MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU ROWS 10
MENU VSHIFT 17
MENU HSHIFT 25
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
# boot sections follow
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*
LABEL arch_linux
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
INITRD ../intel-ucode.img,../initramfs-linux.img
APPEND root=/dev/sda5 rw quiet acpi_backlight=vendor acpi_osi=Linux zswap.enabled=1 zswap.compressor=lz4
LABEL arch_linux_fallback
MENU LABEL Arch Linux Fallback
LINUX ../vmlinuz-linux
INITRD ../intel-ucode.img,../initramfs-linux-fallback.img
APPEND root=/dev/sda5 rw quiet acpi_backlight=vendor acpi_osi=Linux zswap.enabled=1 zswap.compressor=lz4
LABEL arch_linux_lucjan
MENU LABEL Arch Linux Lucjan
LINUX ../vmlinuz-linux-lucjan
INITRD ../intel-ucode.img,../initramfs-linux-lucjan.img
APPEND root=/dev/sda5 rw quiet acpi_backlight=vendor acpi_osi=Linux zswap.enabled=1 zswap.compressor=lz4
LABEL arch_linux_lucjan_fallback
MENU LABEL Arch Linux Lucjan Fallback
LINUX ../vmlinuz-linux-lucjan
INITRD ../intel-ucode.img,../initramfs-linux-lucjan-fallback.img
APPEND root=/dev/sda5 rw quiet acpi_backlight=vendor acpi_osi=Linux zswap.enabled=1 zswap.compressor=lz4
LABEL hdt
MENU LABEL HDT (Hardware Detection Tool)
COM32 hdt.c32
LABEL reboot
MENU LABEL Reboot
COM32 reboot.c32
LABEL poweroff
MENU LABEL Power Off
COM32 poweroff.c32
Jeśli chcemy by syslinux wyświetlał się w trybie tekstowym, wybieramy opcję menu.c32, jeśli bardziej odpowiada nam tryb graficzny - ustawiamy pozycję vesamenu.c32 jako domyślną. Wszystkie pliki zostały skopiowane następującą komendą
cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
więc nie musimy wykonywać komend przedstawionych w ArchWiki dla menu tekstowego oraz graficznego. Jeśli chcemy, by Syslinux posiadało wybrane przez nas tło, kopiujemy do katalogu /boot/syslinux odpowiednią tapetę i nazywamy ją splash.png.
Po restarcie komputera naszym oczom powinien ukazać się Syslinux. Pełni dokładanie taką samą funkcję jak GRUB. Dlaczego zatem wybrałem Syslinux? Konfiguracja GRUB rozrzucona jest w różnych miejscach - /boot/grub/grub.cfg, /etc/default/grub, pliki zawarte w /etc/grub.d. Konfiguracja Syslinux sprowadza się do ustawień zawartych w jednym pliku. Cenię prostotę, dlatego wybrałem Syslinux.
.