Belajar Linux OS - #3 Bootloader
Tags: indonesia, linux, beginners
Published: 2021-10-02 14:41:41

Bootloader adalah "sesuatu" yang bikin komputer kita menyala (boot up).

Kita mungkin sering melihat pesan sekilas pada monitor kita seperti "Your computer is starting up".

Ketika pesan sekilas ini muncul, bagian `bootloader` dari OS sedang bekerja di belakang layar (background), memastikan komputer kita siap dipake.

Bootloader adalah bagian dari **Master Boot Record (MBR)** yang mana **MBR** adalah bagian dari OS.

Bootloader itu kerjanya ngapain sih? Dia itu kerjanya nge-load OS ke RAM komputer kita.

Umumnya Bootloader Linux itu berisi:
* GRUB (GRand Unified Bootloader)
* LILO (LInux LOader)
* Syslinux yang mana campuran dari banyak bootloader-bootloader ringan yang bikin komputer kita berhasil boot dari berbagai macam metode, seperti dari CD, DVD, USB bahkan dari LAN.

Untuk mengetahui apa itu bootloader yang kita pake sekarang, kita bisa ketikkan perintah `file -s`.

Tapi sebelum kita mencari bootloader tersebut, kita harus cari tahu dimana sih `bootdisk` itu.

Untuk mencari tahu dimana `bootdisk`, kita perlu perintah `fdisk -l`
```
$ fdisk -l
Disk /dev/vda: 245.1 GiB, 263217741824 bytes, 514097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x58ca730c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/vda1  *         2048 503758847 503756800 240.2G 83 Linux
/dev/vda2       503760894 511997951   8237058     4G  5 Extended
/dev/vda5       503760896 511997951   8237056     4G 82 Linux swap / Solaris
```
Jika kita perhatikan pada bagian `Boot`, ada salah satu baris yang ada tanda bintangnya (*)(asterisk). Nah device yang ada bintangnya itu adalah **bootdisk**, dalam hal ini `/dev/vda1`.

Sekarang, ketikkan perintah `file -s /dev/vda1`. `-s` pada perintah tersebut berarti _special files_ dan bootloader adalah _special file_ di Linux OS. Perintah tersebut akan ngasih kita informasi tentang "bootloader itu apa sih?". Berikut kira-kira output dari perintah tersebut.
```
$ file -s /dev/vda1
/dev/vda1: Linux rev 1.0 ext4 filesystem data, UUID=cef09b81-ccb0-45a2-b61a-622e3665d87e (needs journal recovery) (extents) (large files) (huge files)
```
Jika kalian perhatikan, output dari perintah tersebut tidak memuat secara _eksplisit_ nama bootloader.

Jadi, yang bisa kita lakukan sekarang adalah pake perintah `dmesg` dan `grep` dan cari kata **BOOT**.

Ketikkan perintah `dmesg | grep BOOT_IMAGE`. Perintah tersebut akan nyari kata BOOT di _kernel messages_ dan ngasih tau kita detail dari BOOT_IMAGE.

Ketika kita jalanin perintah tersebut, kira-kira akan muncul seperti ini:
```
$ dmesg | grep BOOT_IMAGE
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-193-generic root=UUID=cef09b81-ccb0-45a2-b61a-622e3665d87e ro quiet nosplash console=tty1 console=ttyS0 quiet nosplash console=tty1 console=ttyS0
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-193-generic root=UUID=cef09b81-ccb0-45a2-b61a-622e3665d87e ro quiet nosplash console=tty1 console=ttyS0 quiet nosplash console=tty1 console=ttyS0
```
Coba perhatikan di bagian `Kernel command line`, kita akan menemukan kata `BOOT_IMAGE=/boot/vmlinuz-4.4.0-193-generic`.

Linux Loader (LILO) selalu memasukkan kata `BOOT_IMAGE=[Kernelname]` ke dalam kernel, dimana `[KernelName]` adalah nama dari kernelnya.
Dari sini kita bisa tau kalau bootloader yang dipake sekarang adalah LILO.

Btw, kalau dari sudut pandang seorang hacker, sangat penting untuk tahu kalau virus Bootloader komputer merusak bagian bootloader dari OS yang membuat komputer tidak bisa menyala (booting), yang berakibat pada _denial of service_ atau _DoS attack_.