Lên đời systemd-boot chỉ trong 5 phút
Nếu bạn đang dùng các bản phân phối Linux hiện đại như Arch Linux, Fedora hay Debian trên nền UEFI và thấy GRUB2 quá cồng kềnh, systemd-boot chính là lựa chọn thay thế hoàn hảo. Thay vì vật lộn với hàng tá cú pháp lằng nhằng, bạn chỉ cần làm việc với vài file văn bản thuần túy (plain text) cực kỳ dễ hiểu. Thực tế, systemd-boot có thể giúp máy bạn giảm được 2-3 giây thời gian chờ ở màn hình boot so với GRUB.
1. Kiểm tra điều kiện cần
Máy bạn bắt buộc phải đang chạy ở chế độ UEFI. Hãy mở terminal và kiểm tra bằng lệnh:
ls /sys/firmware/efi
Nếu thấy danh sách file hiện ra, bạn đã sẵn sàng. Ngược lại, nếu gặp lỗi “No such file or directory”, máy bạn đang dùng BIOS cũ (Legacy) và systemd-boot sẽ không hoạt động được ở đây.
2. Cài đặt bootloader
Đảm bảo phân vùng EFI của bạn đã được mount (thường là tại /boot hoặc /efi). Chỉ cần chạy một câu lệnh duy nhất:
bootctl install
Lệnh này sẽ tự động copy các file thực thi cần thiết vào phân vùng EFI và thiết lập cấu trúc thư mục tiêu chuẩn cho bạn.
3. Thiết lập cấu hình loader
Hãy mở file /boot/loader/loader.conf và dán nội dung đơn giản này vào:
default arch.conf
timeout 3
console-mode max
4. Tạo file khởi động (Entry) cho hệ điều hành
Tạo mới file /boot/loader/entries/arch.conf với nội dung sau:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=550e8400-e29b-41d4-a716-446655440000 rw
Mẹo: Để lấy đúng UUID của ổ cứng, hãy dùng lệnh blkid. Chỉ cần lưu lại và khởi động lại máy, bạn sẽ thấy sự khác biệt ngay lập tức.
Tại sao mình lại ‘chia tay’ GRUB2?
GRUB2 giống như một chiếc xe tải hạng nặng: nó thồ được mọi thứ, từ BIOS cổ đại đến UEFI mới nhất, cân cả LVM, RAID hay LUKS. Nhưng sự đa năng đó đi kèm với một cái giá: cực kỳ phức tạp. Mỗi lần cập nhật kernel, bạn lại phải chạy grub-mkconfig và hy vọng file grub.cfg dài dằng dặc kia không phát sinh lỗi lạ.
Systemd-boot chọn lối đi khác: Tối giản tuyệt đối. Nó chỉ là một menu điều hướng đơn giản cho UEFI. Mỗi kernel hoặc hệ điều hành được quản lý bởi một file .conf riêng lẻ. Nếu một file hỏng, nó không làm sập cả menu boot của bạn như cách GRUB thường gặp.
Mình từng mất trắng một buổi chiều làm sysadmin chỉ để debug lỗi kernel panic. Hóa ra, sau khi thay đổi tham số kernel trong GRUB, mình quên chạy lệnh update config. Kết quả là máy vẫn cố boot vào cấu hình cũ. Với systemd-boot, chuyện đó không bao giờ xảy ra: sửa file text, lưu, xong. Không cần thêm bất kỳ lệnh trung gian nào.
Cấu hình chi tiết để làm chủ hệ thống
Để quản lý systemd-boot hiệu quả, bạn chỉ cần nắm rõ hai phần: cấu hình chung và cấu hình từng dòng khởi động.
File cấu hình chung (loader.conf)
Nằm tại /boot/loader/loader.conf, file này kiểm soát cách menu hiển thị:
- default: Tên file entry (không kèm đuôi .conf) sẽ tự động chạy.
- timeout: Số giây chờ. Đặt bằng 0 nếu bạn muốn boot thẳng, chỉ hiện menu khi giữ phím Space.
- editor: Cho phép sửa tham số kernel lúc boot. Nên đặt là
nođể tăng cường bảo mật.
Cấu hình Entries (entries/*.conf)
Lưu ý quan trọng: systemd-boot chỉ đọc được các file nằm trong phân vùng EFI. Do đó, file kernel (vmlinuz) và initramfs phải nằm trong phân vùng này.
title Linux LTS (Dự phòng)
linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.img
options root=PARTUUID=yyyy-yyyy rw quiet
Nếu bạn dùng CPU Intel hoặc AMD, đừng quên nạp microcode để vá các lỗ hổng bảo mật phần cứng như Spectre hay Meltdown ngay từ lúc khởi động:
initrd /intel-ucode.img
initrd /initramfs-linux.img
Lưu ý: Microcode luôn phải đứng trước file initramfs chính.
Tự động hóa: Để máy tính làm việc thay bạn
Nhiều người ngại systemd-boot vì phải copy kernel vào phân vùng EFI thủ công. Đừng lo, chúng ta có công cụ xử lý việc này.
Trên Arch Linux, bạn có thể dùng các hook của pacman hoặc cấu hình mkinitcpio để tự động đẩy kernel vào đúng vị trí sau mỗi lần cập nhật. Cách sạch nhất là mount thẳng phân vùng EFI vào thư mục /boot. Khi đó, mọi bản cập nhật kernel từ trình quản lý gói sẽ tự động nằm ngay nơi systemd-boot cần tìm.
Kinh nghiệm thực tế: Khi nào nên chuyển đổi?
Hãy cân nhắc dùng systemd-boot nếu:
- Ưu tiên tốc độ: Bạn muốn rút ngắn thời gian từ lúc bấm nút nguồn đến màn hình đăng nhập.
- Hệ thống thuần UEFI: Bạn không quan tâm đến các chuẩn cũ hay máy ảo đời tống.
- Dùng song song Windows: Systemd-boot cực thông minh, nó tự nhận diện
bootmgfw.eficủa Windows mà không cần bạn động tay vào cấu hình.
Tuy nhiên, hãy ở lại với GRUB nếu bạn thích menu có hình nền rồng phượng, màu sắc sặc sỡ hoặc cần boot từ các định dạng file system phức tạp như Btrfs mà không muốn tách riêng phân vùng cho kernel.
Mẹo nhỏ tránh “ăn hành”
1. Dùng PARTUUID: Trong cấu hình, root=PARTUUID=... ổn định hơn UUID vì nó định danh chính xác phân vùng trên ổ cứng GPT, tránh nhầm lẫn khi bạn cắm thêm ổ cứng mới.
2. Phím tắt hữu dụng:
- Nhấn
Space: Hiện menu ngay lập tức. - Phím
e: Chỉnh sửa nhanh tham số kernel để cứu hộ hệ thống. - Phím
d: Chọn nhanh hệ điều hành mặc định cho lần khởi động sau.
3. Kiểm tra sức khỏe: Lệnh bootctl status sẽ cho bạn biết mọi thứ từ phiên bản đang chạy đến các entry mà hệ thống đang nhận diện được.
Thay đổi bootloader nghe có vẻ mạo hiểm nhưng với systemd-boot, mọi thứ trở nên minh bạch và dễ kiểm soát hơn nhiều. Thử một lần, bạn sẽ thấy GRUB thực sự là một mớ hỗn độn không cần thiết.

