Overview Proses Booting pada Linux

Berhubung sudah lama tidak post di HeyTUX, pada post kali ini pembahasannya akan menjadi pembahasan pembuka setelah sekian lama hiatus. Setelah membuat guideline atau halaman navigasi “Linux Untuk Pemula”, post selanjutnya masih akan membahas beberapa tautan dari navigasi tersebut.
image source: Opensource.com
Seperti yang ada pada navigasi, awal mula mempelajari Linux tentu saja dimulai dari pemahaman environment. Pada post kali ini, kita akan mempelajari tentang proses booting pada sistem operasi Linux. Selain itu kita juga akan mempelajari sistem operasi melewati beberapa tahap booting sebelum benar-benar masuk ke dalam sistemnya. Artikel ini ditulis untuk para pembaca yang baru mulai mempelajari dan mendalami Linux. Mengapa artikel ini menjadi penting? Dalam Linux, tahapannya tentu saja awalnya tidak jauh berbeda dengan Windows, namun ada beberapa tahap yang membutuhkan pemahaman karena hal tersebut akan membantu troubleshooting saat ada kesalahan booting. Nah, kalau begitu, mari kita mulai untuk melihat apa saja tahap-tahap sistem Linux saat baru menyala sampai menuju tampilan desktop muncul.
Power On
  •     BIOS (Basic Input Output System) adalah program bawaan dari chipset pada motherboard.
  •     BIOS memuat dan memindai device seperti Hard Disk, CD-ROM, RAM, dan lainnya.
  •     BIOS akan mencari MBR (Master Boot Record) yaitu sektor pertama dari harddisk, dan  akan memindai loader sebelum masuk ke OS (pada linux, loader yang dipanggil adalah GRUB dan akan menyerahkan proses ke MBR.
  •     Boot PROM/FLASH/BIOS akan mengeksekusi MBR ke RAM.
MBR (Master Boot Record)
  •     Size 512 bytes –> MBR
  •     MBR berisi informasi loader dari sistem operasi, misal UNIX, Linux, Windows, bahkan jika aa dual boot.
  •     MBR menyimpan informasi biner dari tahap pertama loader seperti GRUB.
  •     MBR terdiri dari sektor fisik pada hard disk (contohnya: 512 bytes awal pada HDD), namun MBR tidak termasuk partisi pada HDD.
  •     Berada di HDD utama (primary), pada sektor utama dari silinder pertama track HDD, yaitu 0 dan head sama dengan 0 (format seperti ini sudah umum dan berada pada semua jenis boot program secara general).
  •     MBR memiliki program kecil yang bisa di-execute dan suatu tabel yang menyimpan juga menetapkan partisi primer (primary).
  • MBR juga memiliki catatan partisi primer yang ACTIVE
  • BIOS menyerahkan hak pada 1st stage loader untuk melakukan pemindaian dan mencari 2nd stage loader yang aktif juga telah diformat sebagai bootable (sistem yang bisa terbaca untuk booting awal sebelum masuk OS).

Boot Loader

  •     Boot loader akan terpanggil dari 1st stage loader dan akan memuat dirinya sendiri ke dalam RAM. Semua proses ini terjadi hanya dalam hitungan milisecond.
  •     Stage 2 default untuk boot loader Linux adalah GRUB (Grand Unified Boot Loader) atau LILO (Linux Loader).
  •     Saat GRUB termuat ke dalam RAM, proses selanjutnya adalah mencari lokasi Kernel Linux berada.
  •     GRUB akan scan map file sampai menemukan kernel image, biasanya kernel image ada pada ‘/boot’.
  •     GRUB akan memuat kernel (vmlinuz-version) dari partisi ‘/boot’.
Info (Penting Nggak Penting) 1:

GRUB merapikan RAMDISK untuk proses initrd. RAMDISK akan diambil dari reserved space RAM. Sebagai tambahan, proses initrd akan dibawa ke RAM untuk menyiapkan kernel agar memuat dirinya sendiri ke dalam memory dan modul pendukungnya, sehingga sistem dapat masuk ke “init” proses.

Pada Linux, sebagian besar driver dibangun ke dalam modul-modul. RAM drive (initrd.img) akan menyimpan semua informasi dari modul tambahan sehingga proses saat kernel booting adalah membentuk ramdrive, memuat initrd.img dan modul tambahannya.

GRUB membaca /boot/grub/grub.conf dan akan menampilkan menu pemilihan sistem operasi. Jika kita menginstall sistem operasi dual-boot pada mesin, akan muncul juga pada grub.

Setelah kernel memuat modul pendukung, proses akan masuk ke “init”. Dalam image kernel terdapat program kecil yang akan membuka dan mengekstrak kernel dan menjalankannya.

Info (Penting Nggak Penting) 2:

LILO dibutuhkan untuk menunjuk MBR saat akan mencari lokasi sistem operasi pada HDD. Semua perubahan yang terjadi di dalam /etc/lilo.conf harus di-update juga pada MBR, tapi di dalam GRUB tidak perlu di-update karena pada grub terbaca langsung dari /boot/grub/grub.conf.

Setelah membuat perubahan pada /etc/lilo.conf, jangan lupa untuk melakukan update MBR secara manual dengan command berikut:

 

Keterangan: 
-v adalah opsi verbose atau untuk mencetak perintah yang diketik secara lengkap saat /sbin/lilo tersebut. Untuk opsi lebih lengkap silakan kunjungi halaman man LILO.
Info (Penting Nggak Penting) 3:

Second stage loader GRUB berada di dalam MBR dan di dalam partisi /boot. Saat grub dimuat ke dalam memori atau RAM, grub akan menjadi second stage loader. Namun, saat masih ada di MBR, dia akan terbaca sebagai first stage loader.

Info (Penting Nggak Penting) 4:

Direktori /initrd tidak boleh dihapus karena direktori tersebut adalah tempat penyimpanan kernel secara sementara agar kernel memiliki akses cepat kepada modul yang dibutuhkan sistem maupun driver hardware yang ada.

Proses Inisiasi Kernel
  •     Inisialisasi komponen CPU, misalnya: MMU.
  •     Inisialisasi scheduler (PID 0)initialize the scheduler (PID 0).
  •     Mounting filesystem root dengan mode read-write (rw).
  •     Menyimpan proses init (PID 1).
Pada dasarnya, inisialisasi kernel akan melakukan dua hal berikut:
  •     Memulai sistem core dari shared resource seperti RAM, processor, dan media penyimpanan.
  •     Memulai single process, /sbin/init.
Init process (sbin/init) adalah proses pertama yang akan memuat semua daemon (system services) dan melakukan mounting semua partisi yang ada di dalam /etc/fstab.

Informasi /etc/inittab

  •     Proses /sbin/init akan membaca file /etc/inittab.
  •     Set runlevel yang default (bawaan). Perintah ‘telinit’ akan mengijinkan administrator untuk memberitahu init process agar mengubah runlevel.
  •     Memanggil /etc/rc.d/rc.sysinit dan /etc/rc/d/rc x di mana ‘x’ adalah runlevel.
  •     Dalam /etc/rc.d/rc5.d, direktori file dimulai dengan huruf K –> akan melakukan proses kill scripts dan files yang dimulai dengan huruf S –> Startup scripts.
  •     Memulai proses tty dan xdm (X display manager).
  •     Memulai tampilan login user.
Itulah sedikit overview mengenai proses booting Linux dan apa saja yang terjadi sejak komputer dinyalakan hingga tampilan login muncul. Untuk artikel lainnya yang terkait Linux untuk para pemula, dapat dilihat pada tautan “Linux Untuk Pemula”.
Selamat membaca!

Leave a Reply

Your email address will not be published. Required fields are marked *