Untuk semua artikel yang memberikan tautan ke repositori dotfiles saya di GitHub, saat ini sedang dalam proses perbaikan sehingga tidak dapat diakses. Mohon maaf atas ketidaknyamanan ini. (bandithijo, 2019/03/14) ●

Step 4: Set up Bootloader

Ditulis: 2018/02/09 Diperbaharui: 2019/02/11

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

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.

# bootctl ––path=/boot install
Created “/boot/EFI”.
Created “/boot/EFI/systemd”.
Created “/boot/EFI/BOOT”.
Created “/boot/loader”.
Created “/boot/loader/entries”.
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”.
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.

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 vim

Sekarang, saatnya kita mengedit file /boot/loader/loader.conf

# vim /boot/loader/loader.conf
#timeout 3
#console-mode keep
default 2b7aac817eaf45d9b71a8f0e5ea8b942-*

Saya akan komentar saja baris default ...

Kemudian isikan seperti contoh yang ada di bawah.

#timeout 3
#console-mode keep
#default 2b7aac817eaf45d9b71a8f0e5ea8b942-*
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

# vim /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=56fdc3fa-8a1c-4d4e-a13f-4af99bf6ae6a: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.

[ i ] Informasi

Kalau menggunakan Vim, dapat menggunakan cara yang lebih mudah ini.

Buat baris baris baru di bawah options, Shift+O.

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.

# vim /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.

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.

# vim /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=56fdc3fa-8a1c-4d4e-a13f-4af99bf6ae6a: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

logo_author

BanditHijo adalah nama pena saya – meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai GNU/Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Bukan karena hobi tapi karena saya perlu untuk menggunakannya. Hehe.

- Rizqi Nur Assyaufi