Dari IgosCenter
Daftar isi |
Pendahuluan Boot
[1] Tindakan menyalakan sistem komputer dan menyebabkan sistem operasi yang akan diambil disebut boot. Nama berasal dari sebuah gambar dari komputer sendiri menarik dari bootstraps, tetapi tindakan itu sendiri sedikit lebih realistis.
Selama bootstrap, komputer beban pertama sepotong kecil kode yang disebut loader bootstrap, yang pada gilirannya beban dan memulai sistem operasi. Bootstrap loader biasanya disimpan di lokasi yang tetap pada hard disk atau disket. Alasan untuk ini langkah proses dua adalah bahwa sistem operasi besar dan rumit, tapi potongan kode yang pertama beban komputer harus sangat kecil (beberapa ratus byte), untuk menghindari membuat firmware tidak perlu rumit.
komputer yang berbeda-beda melakukan bootstrap yang berbeda. Untuk PC, komputer (BIOS-nya) berbunyi di sektor pertama (yang disebut sektor boot) dari disket atau keras. Bootstrap loader terkandung dalam sektor ini. Ini beban sistem operasi dari tempat lain pada disk (atau dari tempat lain).
Setelah Linux telah dimuat, itu menginisialisasi perangkat keras dan device driver, dan kemudian menjalankan init. init mulai proses lain untuk mengizinkan pengguna untuk log in, dan melakukan hal-hal. Rincian bagian ini akan dibahas di bawah ini.
Untuk menutup sebuah sistem Linux, pertama semua proses diberitahu untuk mengakhiri (ini membuat mereka menutup file dan melakukan hal-hal lain yang diperlukan untuk menjaga hal-hal rapi), kemudian filesystem dan daerah swap yang terpasang, dan akhirnya sebuah pesan akan dicetak ke konsol bahwa kekuasaan dapat dimatikan. Jika prosedur yang tepat tidak diikuti, hal-hal buruk dapat dan akan terjadi, yang terpenting, filesystem buffer cache mungkin tidak merah, yang berarti bahwa semua data di dalamnya hilang dan filesystem pada disk tidak konsisten, dan karena itu mungkin tidak dapat digunakan.
Pendalaman Boot
Bila PC adalah boot, BIOS akan melakukan berbagai tes untuk memeriksa bahwa semuanya terlihat baik-baik saja, dan kemudian akan memulai booting sebenarnya. Proses ini disebut daya pada uji diri, atau POST untuk pendek. Ini akan memilih disk drive (biasanya drive floppy pertama, jika ada dimasukkan floppy, dinyatakan hard disk pertama, jika ada yang dipasang di komputer; pesanan mungkin dikonfigurasi, tetapi) dan kemudian akan membaca sektor yang sangat pertama . Ini disebut sektor boot, karena hard disk, ia juga disebut master boot record, karena hard disk dapat berisi beberapa partisi, masing-masing dengan boot sektor mereka sendiri.
Sektor boot berisi program kecil (cukup kecil untuk masuk ke dalam satu sektor) yang bertugas untuk membaca sistem operasi aktual dari disk dan memulainya. Ketika boot Linux dari disket, sektor boot berisi kode yang hanya membaca beberapa ratus blok pertama (tergantung pada ukuran kernel sebenarnya, tentu saja) ke tempat yang telah ditentukan dalam memori. Pada disket boot Linux, filesystem tidak ada, kernel hanya disimpan di sektor-sektor berturut-turut, karena ini menyederhanakan proses boot. Hal ini dimungkinkan, namun, untuk boot dari floppy dengan sebuah filesystem, dengan menggunakan LILO, yang LOader Linux, atau GRUB, Grand Unifying Bootloader.
Ketika boot dari hard disk, kode di master boot record akan memeriksa tabel partisi (juga di master boot record), mengidentifikasi partisi aktif (partisi yang ditandai untuk bootable), membaca sektor boot dari partisi yang , dan kemudian mulai kode di bahwa sektor boot. Kode di sektor boot partisi itu melakukan apa boot sector floppy disk tidak: itu akan membaca dalam kernel dari partisi dan memulainya. Rincian bervariasi, namun, karena umumnya tidak berguna untuk memiliki partisi terpisah untuk hanya citra kernel, sehingga kode di sektor boot partisi tidak bisa hanya membaca disk di urutan, ia harus mencari sektor mana pun filesystem telah menempatkan mereka. Ada beberapa cara mengatasi masalah ini, tapi cara yang paling umum adalah dengan menggunakan boot loader seperti LILO atau GRUB. (Rincian tentang cara melakukan ini adalah tidak relevan untuk diskusi ini, namun; lihat dokumentasi LILO atau GRUB untuk informasi lebih lanjut, melainkan yang paling menyeluruh.)
Ketika boot, bootloader biasanya akan jalan lurus ke depan dan membaca dalam dan boot kernel default. Hal ini juga memungkinkan untuk mengkonfigurasi boot loader untuk dapat boot salah satu dari beberapa kernel, atau bahkan sistem operasi selain Linux, dan adalah mungkin bagi pengguna untuk memilih kernel atau sistem operasi yang akan boot pada saat boot. LILO, misalnya, dapat dikonfigurasi sehingga jika salah satu memegang menuruni alt, shift, atau tombol ctrl pada saat boot (saat LILO di-load), LILO akan menanyakan apa yang akan boot dan tidak boot default segera. Atau, bootloader dapat dikonfigurasi sehingga akan selalu bertanya, dengan timeout opsional yang akan menyebabkan kernel default yang akan boot.
Boot dari floppy dan dari hard disk memiliki kedua keuntungan mereka, tetapi umumnya booting dari hard disk adalah lebih baik, karena menghindari kerumitan bermain-main dengan disket. Hal ini juga lebih cepat. Kebanyakan distribusi Linux akan setup bootloader untuk Anda selama proses instalasi.
- Setelah kernel Linux telah dibaca ke dalam memori, dengan cara apapun, dan akan dijalankan untuk nyata, kira-kira hal-hal berikut terjadi:
- Kernel Linux diinstal dikompresi, sehingga pertama akan uncompress itu sendiri. Awal citra kernel berisi program kecil yang melakukan hal ini.
- Jika Anda memiliki kartu VGA yang super-Linux mengakui dan yang memiliki beberapa mode teks khusus (seperti 100 kolom dengan 40 baris), Linux modus meminta Anda yang ingin Anda gunakan. Selama kompilasi kernel, sangat mungkin untuk preset mode video, sehingga hal ini tidak pernah bertanya. Ini juga dapat dilakukan dengan LILO, GRUB atau rdev.
- Setelah ini, cek kernel apa ada perangkat keras lainnya (hard disk, disket, adapter jaringan, dll), dan mengkonfigurasi beberapa device driver yang tepat, sementara itu tidak ini, output pesan tentang temuan-temuan.
- Kemudian kernel akan mencoba untuk me-mount filesystem root. Tempat ini dapat dikonfigurasi pada saat kompilasi, atau setiap saat dengan rdev atau bootloader. Jenis filesystem yang terdeteksi secara otomatis. Jika pemasangan filesystem root gagal, misalnya karena Anda tidak ingat untuk menyertakan driver filesystem yang sesuai di kernel, kernel panik dan menghentikan sistem (tidak banyak yang dapat dilakukan, anyway).
- Sistem berkas root biasanya mount read-only (ini dapat diatur dengan cara yang sama sebagai tempat). Hal ini memungkinkan untuk memeriksa filesystem ketika sudah terpasang, ini bukan ide yang baik untuk memeriksa filesystem yang di-mount read-write.
- Setelah ini, kernel memulai program init (terletak di / sbin / init) di latar belakang (ini akan selalu menjadi proses nomor 1). init tidak berbagai pekerjaan startup. Persisnya hal itu tidak tergantung pada bagaimana dikonfigurasi; Bagian lihat 2.3.1 untuk informasi lebih lanjut (belum ditulis). Ini setidaknya akan mulai beberapa daemon latar belakang penting.
- Init kemudian beralih ke mode multi-user, dan memulai getty untuk virtual konsol dan baris serial. getty adalah program yang memungkinkan orang log in melalui virtual konsol dan terminal serial. init juga mungkin mulai beberapa program lain, tergantung pada bagaimana dikonfigurasi.
- Setelah itu, boot selesai, dan sistem dan berjalan normal.
BootLoader Tahap 4 Kernel
Boot Loader ini bekerja di Tahap 4 Kernel di urutan proses startup komputer, baca http://saung.igoscenter.org/Padepokan/Init_System Ada 2 macam boot loader yang dikenal di Linux:
GRand Unified Bootloader
GRand Unified Bootloader, versi 2 (Grub 2) adalah versi kedua dari GNU GRUB. Ini adalah perangkat lunak bertanggung jawab untuk loading dan transfer kontrol ke kernel sistem operasi pada boot awal. Grub 2 adalah kompatibel dengan standar POSIX (GNU / Linux, * BSD, Mac OS, dll) dan juga dapat terhubung ke sistem yang tidak kompatibel dengan standar POSIX (Portable Operating System Interface untuk Unix).
GRUB 2 adalah penulisan ulang lengkap dari antarmuka Grub. Berdasarkan proyek penelitian pupa, GRUB 2 adalah lebih modular dan portabel daripada pendahulunya. Beberapa GRUB 2 perbaikan terjadwal meliputi:
- Antarmuka grafis, termasuk theming;
- Modular loading;
- kompatibilitas Cross-platform ;
- Scripting dukungan;
- Pengguna entri boot-disesuaikan;
- Direvisi penamaan partisi.
Konfigurasi
/boot/grub/grub.cfg
- grub.cfg secara otomatis dihasilkan atau diperbarui setiap kali "update-grub" dijalankan. Perintah harus dijalankan sebagai root.
- Script yang digunakan untuk menghasilkan grub.cfg menyertakan file yang terdapat di /etc/grub.d dan informasi yang dikumpulkan dari /etc/default/grub
- File ini dibagi menjadi beberapa bagian. Setiap bagian dari file yang jelas digambarkan dan dikenali oleh bagian header # # # BEGIN. Informasi pada garis referensi file dalam folder /etc/grub.d yang digunakan untuk menggabungkan informasi ke dalam grub.cfg
- Secara default, dan setiap kali "update-grub" perintah dijalankan, file ini dibuat read-only. Hal ini sejalan dengan maksud bahwa file tidak harus diedit secara manual. Jika Anda harus mengedit file ini, instruksi yang diberikan kemudian pada halaman ini.
- Contoh grub.cfg termasuk dua kernel Ubuntu, memtest86 +, Windows dan entri kustom (41_srcd) diimpor dari /etc /script grub.d/ adalah:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a
if font /usr/share/grub/ascii.pff ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
terminal gfxterm
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###
### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea
menuentry "Ubuntu, linux 2.6.28-13-generic" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro quiet splash vga800
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro single
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro quiet splash vga800
initrd /boot/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro single
initrd /boot/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
linux /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
linux /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
set root=(hd0,1)
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_srcd ###
menuentry "SystemRescue CD on hard drive" {
set root=(hd0,10)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}
### END /etc/grub.d/41_srcd ###
/etc/default/grub
File ini berisi informasi yang sebelumnya ditemukan di bagian atas /boot/grub/menu.lst. Ini berisi pengaturan terutama mempengaruhi tampilan menu Grub. File ini dapat diedit oleh root untuk melakukan perubahan pada pengaturan ini, mereka akan diimpor ke grub.cfg ketika "update-grub" dijalankan.
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"
/etc/grub.d/ (folder)
File-file dalam folder ini dibaca selama proses eksekusi '"update-grub" "perintah. Script dalam file ekspor informasi yang mereka kumpulkan ke /boot/grub/grub.cfg
File-file yang dijalankan dalam urutan - file dengan nama dimulai dengan angka dijalankan pertama, diikuti dengan file yang namanya diawali dengan huruf. Urutan file dijalankan menentukan lokasi item dalam menu grub.
Custom entri dapat ditambahkan ke file 40_custom atau ditempatkan dalam sebuah file baru.
Setiap file yang dibuat harus dieksekusi untuk dimasukkan dalam file grub.cfg selama grub "update-" perintah. Ini bisa dicapai dari terminal dengan "sudo chmod u+x /etc/grub.d/ nama file. Berikut ini adalah tampilan yang sangat singkat apa file capai.
GRUB 2 Recovery
http://www.ugos.ugm.ac.id/main/2010/01/11/grub-2-recovery-pada-ubuntu-karmic-dan-diatasnya/
Tidak seperti grub sebelumnya, kita dapat bebas mengedit file /boot/grub/menu.lst. Kalau di grub 2, tidak perlu mengedit file grub.cfg tersebut, namun pengaturannya ada pada file /etc/default/grub dan file-file didalam folder /etc/grub.d/.
Berikut langkah-langkah mengembalikan/recovery grub 2;
1. Booting menggunakan live cd ubuntu;
2. Masuk keterminal, jalankan perintah;
$ sudo fdisk -l
3. Ingat posisi drive system instalasi ubuntu anda, misalnya system diinstall pada partisi /dev/sda1;
4. Mount partisi /dev/sda1 kedalam folder /mnt;
$ sudo mount /dev/sda1 /mnt
5. [kalo perlu, boleh skip] Apabila anda memilik partisi /boot yang terpisah, maka partisi tersebut juga harus dimount. Misalnya partisi /boot pada /dev/sda2;
$ sudo mount /dev/sda2 /mnt/boot
6. Selanjutnya mount seluruh partisi yang lain;
$ sudo mount --bind /dev /mnt/dev
7. Kemudian masuk ke system yang telah di mount menggunakan perintah chroot;
$ sudo chroot /mnt
8. [kalo perlu, boleh skip] Setelah anda masuk menggunakan chroot. Berarti anda telah mendapatkan akses root system utama, tanpa harus menggunakan perintah sudo lagi;
9. [kalo perlu, boleh skip] Apabila anda menginginkan perubahan parameter pada grub, edit file /etc/default/grub.Apabila tidak, abaikan langkah ini;
# nano /etc/default/grub
?
10. Kemudian jalankan perintah update-grub untuk menggenerate file konfigurasi secara otomatis;
# update-grub
11. [kalo perlu, boleh skip] Langkah terakhir anda harus menginstall grub2 pada MBR, jalankan perintah grub-install /dev/sda;
# grub-install /dev/sda
12. [kalo perlu, boleh skip] Apabila terjadi error, jalankan perintah grub-install –recheck /dev/sda untuk memeriksa errornya;
# grub-install –recheck /dev/sda
13. Apabila sudah selesai tekan tombol Ctrl+D untuk keluar dari lingkungan chroot; 14. Lakukan perintah umount, untuk melepas kaitan yang telah dilakukan sebelumnya;
$ sudo umount /mnt/dev
$ sudo umount /mnt
15. Terakhir, restart system ubuntu live cd anda. Selamat mencoba!
Gunakan Startup Manager untuk mengubah pengaturan Grub
[4]Grub adalah utilitas yang bootup yang mengendalikan OS untuk memuat secara default dan pengaturan bootup lainnya. Anda dapat mengubah pengaturan Grub dari Startup Manager:
System -> Administration -> Startup Manager
Startup Manager Jika tidak terinstal, install:
sudo apt-get install startupmanager
Kontributor: Estiyand