GNU/Linux >> Belajar Linux >  >> Linux

6 Tahapan Proses Boot Linux (Urutan Startup)

Tekan tombol daya pada sistem Anda, dan setelah beberapa saat Anda melihat perintah login Linux.

Pernahkah Anda bertanya-tanya apa yang terjadi di balik layar sejak Anda menekan tombol daya hingga prompt login Linux muncul?

Berikut ini adalah 6 tahap tingkat tinggi dari proses boot Linux yang khas.

1. BIOS

  • BIOS adalah singkatan dari Basic Input/Output System
  • Melakukan beberapa pemeriksaan integritas sistem
  • Menelusuri, memuat, dan menjalankan program boot loader.
  • Ini mencari boot loader di floppy, cd-rom, atau hard drive. Anda dapat menekan tombol (biasanya F12 dari F2, tetapi tergantung pada sistem Anda) selama startup BIOS untuk mengubah urutan boot.
  • Setelah program boot loader terdeteksi dan dimuat ke dalam memori, BIOS memberikan kontrolnya.
  • Jadi, secara sederhana BIOS memuat dan menjalankan boot loader MBR.

2. MBR

  • MBR adalah singkatan dari Master Boot Record.
  • Itu terletak di sektor pertama dari disk yang dapat di-boot. Biasanya /dev/hda, atau /dev/sda
  • MBR berukuran kurang dari 512 byte. Ini memiliki tiga komponen 1) info pemuat boot utama dalam 446 byte pertama 2) info tabel partisi dalam 64 byte berikutnya 3) pemeriksaan validasi mbr dalam 2 byte terakhir.
  • Berisi informasi tentang GRUB (atau LILO di sistem lama).
  • Jadi, secara sederhana, MBR memuat dan menjalankan boot loader GRUB.

3. GRUB

  • GRUB adalah singkatan dari Grand Unified Bootloader.
  • Jika Anda memiliki beberapa imej kernel yang terinstal di sistem Anda, Anda dapat memilih yang mana yang akan dieksekusi.
  • GRUB menampilkan layar pembuka, menunggu beberapa detik, jika Anda tidak memasukkan apa pun, GRUB akan memuat gambar kernel default seperti yang ditentukan dalam file konfigurasi grub.
  • GRUB memiliki pengetahuan tentang sistem file (lilo loader Linux yang lebih lama tidak memahami sistem file).
  • File konfigurasi grub adalah /boot/grub/grub.conf (/etc/grub.conf adalah tautan ke ini). Berikut ini adalah contoh grub.conf dari CentOS.
  • #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/boot/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-194.el5PAE)
              root (hd0,0)
              kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
              initrd /boot/initrd-2.6.18-194.el5PAE.img
  • Seperti yang Anda perhatikan dari info di atas, ini berisi kernel dan image initrd.
  • Jadi, secara sederhana GRUB hanya memuat dan mengeksekusi gambar Kernel dan initrd.

4. Kernel

  • Pasang sistem file root seperti yang ditentukan dalam "root=" di grub.conf
  • Kernel mengeksekusi program /sbin/init
  • Karena init adalah program pertama yang dijalankan oleh Kernel Linux, program ini memiliki id proses (PID) 1. Lakukan 'ps -ef | grep init' dan periksa pidnya.
  • initrd adalah singkatan dari Initial RAM Disk.
  • initrd digunakan oleh kernel sebagai sistem file root sementara sampai kernel di-boot dan sistem file root yang sebenarnya di-mount. Ini juga berisi driver yang diperlukan yang dikompilasi di dalamnya, yang membantunya mengakses partisi hard drive, dan perangkat keras lainnya.

5. Init

  • Melihat file /etc/inittab untuk menentukan level run Linux.
  • Berikut adalah level run yang tersedia
    • 0 – berhenti
    • 1 – Mode pengguna tunggal
    • 2 – Multipengguna, tanpa NFS
    • 3 – Mode multipengguna penuh
    • 4 – tidak terpakai
    • 5 – X11
    • 6 – mulai ulang
  • Init mengidentifikasi initlevel default dari /etc/inittab dan menggunakannya untuk memuat semua program yang sesuai.
  • Jalankan 'grep initdefault /etc/inittab' di sistem Anda untuk mengidentifikasi run level default
  • Jika Anda ingin mendapat masalah, Anda dapat menyetel run level default ke 0 atau 6. Karena Anda tahu apa artinya 0 dan 6, mungkin Anda tidak boleh melakukannya.
  • Biasanya Anda akan menyetel run level default ke 3 atau 5.

6. Program tingkat run

  • Saat sistem Linux sedang boot, Anda mungkin melihat berbagai layanan dimulai. Misalnya, mungkin tertulis "mulai sendmail .... OKE". Itu adalah program runlevel, dijalankan dari direktori run level seperti yang didefinisikan oleh run level Anda.
  • Bergantung pada pengaturan level init default Anda, sistem akan menjalankan program dari salah satu direktori berikut.
    • Jalankan level 0 – /etc/rc.d/rc0.d/
    • Jalankan level 1 – /etc/rc.d/rc1.d/
    • Jalankan level 2 – /etc/rc.d/rc2.d/
    • Jalankan level 3 – /etc/rc.d/rc3.d/
    • Jalankan level 4 – /etc/rc.d/rc4.d/
    • Jalankan level 5 – /etc/rc.d/rc5.d/
    • Jalankan level 6 – /etc/rc.d/rc6.d/
  • Harap diperhatikan bahwa ada juga tautan simbolis yang tersedia untuk direktori ini di bawah /etc secara langsung. Jadi, /etc/rc0.d terhubung ke /etc/rc.d/rc0.d.
  • Di bawah direktori /etc/rc.d/rc*.d/, Anda akan melihat program yang dimulai dengan S dan K.
  • Program yang dimulai dengan S digunakan selama startup. S untuk memulai.
  • Program yang dimulai dengan K digunakan selama shutdown. K untuk membunuh.
  • Ada angka tepat di sebelah S dan K dalam nama program. Itu adalah nomor urut di mana program harus dimulai atau dimatikan.
  • Misalnya, S12syslog adalah untuk memulai syslog deamon, yang memiliki nomor urut 12. S80sendmail adalah untuk memulai daemon sendmail, yang memiliki nomor urut 80. Jadi, program syslog akan dimulai sebelum sendmail.

Di sana Anda memilikinya. Itulah yang terjadi selama proses boot Linux.


Linux
  1. skrip startup utorrent / jalankan utorrent saat boot – Ubuntu 14.04 / 14.10

  2. Proses Boot Linux:Panduan untuk Memulai

  3. Linux – Perintah Untuk Menjalankan Proses Anak “offline” (tanpa Jaringan Eksternal) Di Linux?

  1. Proses Boot Linux

  2. Status Proses Linux

  3. Bagaimana cara mengubah urutan startup/boot layanan Linux?

  1. Linux – Menjalankan Aplikasi Mac Os X Di Linux?

  2. Cara Mempercepat Proses Boot Linux menggunakan Contoh Perintah Startpar

  3. Mengapa menjalankan perintah shell Linux dengan '&'?