Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
STEP 4 : Set up Bootloader
4.1 Install Bootloader (systemd-boot)
Saya memilih menggunakan systemd-boot
ketimbang GRUB
karena lebih mudah buat saya pahami. Sebelumnya systemd-boot
ini bernama gummiboot
, saya gunakan juga pada mesin MacBook Pro 8.1 (late 2011). Menurut saya systemd-boot
ini lebih sederhana dan simpel, serta sudah termasuk dalam paket systemd
, yang mana sudah terpasang secara default bersama base system Arch.
Instalasi systemd-boot
ke /dev/sda1
yang telah di-_mount_ ke /mnt/boot
.
Karena kita telah melakukan mounting terhadap partisi ESP /dev/sda1
ke /mnt/boot
, kita langsng dapat menjalankan perintah di bawah.
# bootctl install
Created "/boot/EFI".
Created "/boot/EFI/systemd".
Created "/boot/EFI/BOOT".
Created "/boot/loader".
Created "/boot/loader/entries".
Created "/boot/EFI/Linux".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/systemd/systemd-bootx64.efi".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/BOOT/BOOTX64.EFI".
Random seed file /boot/loader/random-seed successfully written (512 bytes).
Not installing system token, since we are running in a virtualized environment.
Created EFI boot entry "Linux Boot Manager".
Pastikan tidak terjadi error seperti “File system “/boot” is not a FAT EFI System Partition (ESP) file system.”. Apabila terjadi error seperti ini, maka besar kemungkinan terjadi kesalahan pada saat mounting partition (Step 3.1). Kamu bisa kembali melakukan mounting ulang dengan terlebih dahulu keluar dari chroot
=> # exit
.
Referensi: Arch Wiki : systemd-boot.
4.2 Bootloader Configuration
Setelah systemd-boot
berhasil terpasang, langkah selanjutnya adalah mengkonfigurasi file loader.conf
dan membuat arch.conf
.
Langkah ini membutuhkan text editor. Saya terbiasa menggunakan vim
.
# pacman -S vi
Sekarang, saatnya kita mengedit file /boot/loader/loader.conf
# vi /boot/loader/loader.conf
#timeout 3
#console-mode keep
Saya akan komentar saja baris default ...
Kemudian isikan seperti contoh yang ada di bawah.
#timeout 3
#console-mode keep
default arch
timeout 0
Secara default, file loader.conf
sudah terdapat isi di dalamnya. Kita dapat menghapus isi sebelumnya dan mengganti atau isikan persis sama seperti contoh di atas. Untuk isi dari default
penamaan harus sama dengan file preferensi yang akan kita buat pada langkah selanjutnya (di bawah). Saya menggunakan nama yang simple, yaitu arch
, yang nantinya akan dibuatkan file bernama arch.conf
.
timeout 3
nilai ini dapat kalian sesuaikan dengan preferensi kalian masing-masing. Saya biasanya menggunakan nilai 1
atau bahkan 0
.
Karena saya tidak memerlukan untuk melihat boot selection.
Apabila sudah dipastikan tidak terdapat typo, kalian dapat keluar dari Vim.
Tahap selanjutnya terlebih dahulu siapkan smartphone atau kertas dan pulpen untuk mencatat nomor UUID.
# blkid -s UUID -o value /dev/sda2
Catat atau untuk menghindari kesalahan, foto saja nomor UUID yang tampak di layar agar lebih mudah.
Kemudian kita akan membuat file arch.conf
# vi /boot/loader/entries/arch.conf
Isikan persis sama seperti yang tertulis di bawah.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=4e6f743a-7db3-4f42-aea9-aed532ff2136:volume root=/dev/mapper/volume-root rw
Ganti UUID=56fdc3fa-8a1c-4d4e-a13f-4af99bf6ae6a
dengan UUID milikmu.
Jangan sampai ada yang typo. Harus benar-benar sama persis.
Apabila terjadi kesalahan dapat menyebabkan sistem operasi yang tersimpan pada /dev/sda2
tidak dapat di-load ke dalam RAM.
Kalau menggunakan Vi, dapat menggunakan cara yang lebih mudah ini.
Buat baris baris baru di bawah options
dengan cara tekan O, lalu ESC.
Lalu masukkan command di bawah.
:r! blkid -s UUID -o value /dev/sda2
Nanti akan menghasilkan output berupa UUID
dari /dev/sda2
.
Asik bukan.
Setelah dipastikan tidak terdapat typo, kita dapat menyimpannya dan keluar dari Vim.
Kemudian lakukan update systemd-boot
.
# bootctl update
Outputnya adalah,
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/systemd/systemd-bootx64.efi"
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/BOOT/BOOTX64.EFI"
Karena kita menggunakan partis LVM yang terenkripsi, untuk itu kita perlu mengedit file /etc/mkinitcpio.conf
agar kita dapat menggunakan keyboard untuk memasukkan password sebelum filesystems di-load lebih dahulu.
# vi /etc/mkinitcpio.conf
Cari baris yang bertuliskan HOOKS=(base udev dst... )
. Biasanya pada baris 52.
...
...
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
...
...
Pindahkan keyboard
setelah block
dan tambahkan encrypt
dan lvm2
, seperti contoh di bawah ini.
...
...
HOOKS=(base udev autodetect modconf block keyboard encrypt lvm2 filesystems fsck)
...
...
Setelah kalian memastikan tidak terdapat typo, kalian dapat simpan dan keluar dari Vim.
Berdasarkan Arch Wiki, paket lvm2
belum terpasang pada sistem yang kita masuki dengan menggunakan arch-chroot ini. Maka, kita perlu memasang paket tersebut.
# pacman -S lvm2
Langkah terakhir pada proses bootloader configuration ini adalah, update initramfs
dengan cara sebagai berikut.
# mkinitcpio -p linux
Untuk kalian yang menggunakan processor Intel. Sebaiknya kita menambahkan paket yang bernama intel-ucode
. Kegunaannya dapat dibaca di sini.
# pacman -S intel-ucode
Kemudian tambahkan initrd /intel-ucode.img
pada file /boot/loader/entries/arch.conf
seperti contoh di bawah.
# vi /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=4e6f743a-7db3-4f42-aea9-aed532ff2136:volume root=/dev/mapper/volume-root rw
Setelah kalian memastikan tidak terdapat typo, kalian dapat simpan dan keluar dari Vim.
Kemudian lakukan update systemd-boot
dan generate mkinitcpio
.
# bootctl update
# mkinitcpio -p linux
Langkah di atas kita lakukan karena kita menggunakan systemd-boot
. Untuk bootloader GRUB
, hanya tinggal melakukan regenrate grub-mkconfig
saja. Namun, saya kurang begitu memahaminya.
Sampai di sini, apabila kita reboot, sebenarnya kita sudah dapat masuk ke dalam Arch sistem.
Namun, sistem kita masih belum lengkap karena kita perlu melakukan beberapa konfigurasi dasar yang diperlukan oleh sebuah sistem operasi. Seperti, locale, hostname, username, password, zoneinfo time, dll.
Untuk itu, sementara kita lanjutkan saja pada session ini. Dan jangan reboot dahulu, nanti susah lagi konek internetnya (sebenarnya gampang aja, via usb tethering).
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi