بسم الله الرحمن الرحيم

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
FILE/boot/loader/loader.conf
#timeout 3
#console-mode keep

Saya akan komentar saja baris default ...

Kemudian isikan seperti contoh yang ada di bawah.

FILE/boot/loader/loader.conf
#timeout 3
#console-mode keep
default arch
timeout 0
Perhatian

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.

FILE/boot/loader/entries/arch.conf
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.

Informasi

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.

FILE/etc/mkinitcpio.conf
...
...

HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
...
...

Pindahkan keyboard setelah block dan tambahkan encrypt dan lvm2, seperti contoh di bawah ini.

FILE/etc/mkinitcpio.conf
...
...

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
FILE/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

bandithijo

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

d98d8237fef8f1017d0be931b6e291341cbe6ca8