Jika Anda menggunakan Linux, Anda juga mungkin, hampir pasti, menggunakan bootloader GRUB2. Bootloader memungkinkan Anda mengontrol urutan startup sistem, terutama jika Anda memiliki beberapa sistem operasi yang diinstal, seperti Windows dan Linux secara berdampingan, beberapa distribusi Linux, dan sebagainya. Terkadang, Anda perlu membuat perubahan pada konfigurasi GRUB2, termasuk penggantian khusus seperti parameter baris perintah kernel.
Jika hal di atas tidak berarti apa-apa bagi Anda, Anda tidak memerlukan panduan ini. Tetapi jika ya, maka Anda dapat membaca tutorial GRUB2 saya yang cukup luas tentang cara menggunakan dan mengelola bootloader. Kecuali, itu tidak cukup. Jika Anda ingin menambahkan parameter boot ke kernel - secara permanen - maka mengedit file konfigurasi default seperti yang telah saya jelaskan di panduan tidak akan berfungsi. Itu bagian dari kesenangan fragmentasi yang ada di Linux. Jadi kami membutuhkan metode yang berbeda, dan inilah alasan kami ada di sini.
Bagaimana seharusnya (telah) dilakukan
Andai saja semua distribusi Linux mengikuti satu konvensi dan melakukan semuanya dengan satu cara. Tetapi karena kami memiliki beberapa format paket, beberapa manajer paket, beberapa lingkungan desktop, dan beberapa distro, maka tidak masuk akal untuk memiliki beberapa bootloader, atau lebih tepatnya hanya satu tetapi dibumbui dengan tweak khusus. Dengan demikian, Ubuntu dan Fedora menggunakan perintah dan notasi yang berbeda untuk mencapai hal yang sama.
Di Ubuntu et al, Anda dapat membuat penggantian baris perintah kernel dengan menambahkan string yang diperlukan ke direktif GRUB_CMDLINE_LINUX_DEFAULT di file konfigurasi /etc/default/grub. Sebagai contoh, saya telah menunjukkan kepada Anda bagaimana melakukannya di kecerahan layar dan panduan kontrol kipas untuk netbook Asus eeePC saya. Kami menambahkan beberapa entri ke file, sebagai berikut:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"
Saya memerlukan tweak serupa untuk Fedora 30 ketika saya mengujinya di mesin HP Pavilion lama saya, yang memiliki kartu Nvidia, dan di mana saya menemukan oops jelek yang disebabkan oleh konflik antara cabang lama driver Nvidia (340.xx) dan Patch momok di kernel. Anda dapat membaca cerita lengkapnya di ulasan distro terkait di atas. Intinya, saya perlu menambahkan string, jadi saya melakukannya, seperti yang saya harapkan dari perilaku GRUB2. Saya memperbarui file konfigurasi bootloader (cara Fedora, lihat bagian pembaruan tutorial GRUB2 saya), tetapi pada reboot berikutnya, opsi itu diabaikan. Tidak ada string yang diinginkan di bawah cat /proc/cmdline. Saya kemudian mengetahui bahwa Fedora melakukan sesuatu secara berbeda.
Kotor - alat untuk membuat perubahan GRUB2 terus-menerus di Fedora
Ya, Anda memerlukan alat yang disebut grubby, yang memungkinkan Anda menambahkan string ke kernel Anda. Grubby adalah alat baris perintah, dan bekerja dengan menentukan salah satu kernel yang diinginkan atau semua, dan kemudian menambahkan nilai yang Anda inginkan. Kelemahan dari alat ini adalah lebih rumit untuk digunakan daripada membuat perubahan file konfigurasi, Anda tidak tahu apakah dan bagaimana cadangan dibuat jika Anda merusak sesuatu, dan jika Anda menambahkan kernel baru, mereka tidak akan memiliki persisten tweak, dan Anda harus menjalankannya lagi. Tidak terlalu elegan. Jadi saya berlari kotor:
sudo grubby --update-kernel=ALL --args=KERNEL-OPTIONS-GO-HERE
Sebagai contoh spesifik, itu akan terlihat seperti (perhatikan dua tanda =, bukan salah ketik):
sudo grubby --update-kernel=ALL --args=slab_common.usercopy_fallback=Y
Saya memilih untuk memperbarui semua kernel, dan sebagai argumen, saya menambahkan tweak kernel yang seharusnya menghentikan konflik antara driver Nvidia dan kernel. Untuk melihat apakah grubby telah melakukan tugasnya, atau hanya memeriksa konfigurasi kernel untuk entri boot tertentu, Anda dapat menjalankan info grubby terhadap versi kernel yang diinginkan.
sudo kotor --info /boot/vmlinuz-5.0.16-300.fc30.x86_64
index=0
kernel="/boot/vmlinuz-5.0.16-300.fc30.x86_64"
args="ro resume=UUID=a43418bb-1d1b-4d1d-81c3-37e1e5bcd3a6 rhgb silent nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off slab_common.usercopy_fallback=Y"
root="UUID=cd1c9a6a-6fb5-44c2-8d68-b4a96ff7f0e9"
initrd="/boot/initramfs-5.0.16-300.fc30.x86_64.img"
title="Fedora (5.0.16- 300.fc30.x86_64) 30 (Tiga Puluh)"
id="63155c29865a492b8d8b8d53dab23782-5.0.16-300.fc30.x86_64"
Pada boot berikutnya, saya memeriksa konfigurasi sistem, dan ada perubahan di sana:
cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos8)/boot/vmlinuz-5.0.16-300.fc30.x86_64 root=UUID=cd1c9a6a-6fb5-44c2-8d68-b4a96ff7f0e9 untuk melanjutkan=UUID-=a43418bb- 1d1b-4d1d-81c3-37e1e5bcd3a6 rhgb silent nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off slab_common.usercopy_fallback=Y
Kesimpulan
Yang bisa saya katakan, saya sama sekali tidak senang dengan metode ini. Ini rumit, dan bertentangan dengan apa yang saya yakini sebagai konvensi GRUB. Jika ada konfigurasi default, maka itu harus digunakan, ditambah itu adalah satu tempat terpusat di mana Anda membuat perubahan yang memengaruhi sistem Anda. Benar-benar tidak ada alasan mengapa harus ada alat terpisah, ditambah alat yang membuat tweak dengan cara yang tidak jelas, dan tidak kompatibel ke depan - kernel baru atau pembaruan GRUB, lalu apa yang terjadi?
Filosofi samping, Anda memiliki apa yang Anda datang untuk. Jika Anda ingin membuat perubahan pada baris perintah kernel di Fedora, untuk alasan apa pun, grubby adalah cara paling nyaman untuk membuat perubahan di seluruh sistem secara terus-menerus. Tentu saja, Anda selalu dapat menguji opsi satu kali yang spesifik dengan mengedit entri individual saat boot, dan setelah Anda puas dengan opsi tersebut, buatlah menjadi permanen. Bagaimanapun, mari kita akhiri tutorial ini. Hati-hati.