Dalam sistem dual boot, bagaimana BIOS memilih bootloader mana yang akan dijalankan?

24

Saya memiliki dual boot Windows dan Ubuntu. Ketika saya menghidupkan mesin, BIOS melakukan POST dan setelah itu bootloader dimulai.

Saya ingin mengerti bagaimana BIOS memilih bootloader mana yang akan dijalankan. Saya ingin tahu proses yang terjadi antara BIOS dan bootloader di komputer dual boot.

Prashant Singh
sumber

Jawaban:

40

Firmware BIOS tidak benar-benar memilih bootloader. Ini memuat kode dari sektor 0 drive dan menjalankannya. Apa pun yang ada, itu akan dijalankan. Semoga itu adalah bootloader (atau sesuatu yang memuat bootloader) tetapi tidak harus seperti itu. Pada hari-hari awal PC Anda memiliki permainan pada floppy disk yang hanya akan boot dan berjalan tanpa OS - ini sekarang disebut "booters."

Firmware UEFI sebenarnya memahami partisi dan sistem file, dan memindai drive untuk jenis partisi Sistem UEFI. Karena ini adalah sistem file, banyak bootloader dapat ditempatkan di sini. Firmware UEFI seharusnya menyediakan menu atau cara lain bagi Anda untuk memilih bootloader mana yang digunakan.

Banyak sistem UEFI mem-boot dalam "mode Legacy" - di mana UEFI memuat "Modul Layanan Kompatibilitas" - sesuatu yang membuatnya tampak seperti BIOS - dan sebenarnya berfungsi seperti BIOS.

GRUB adalah bootloader open-source umum yang dapat mem-boot Linux atau "chainload" (memberi kendali pada) bootloader Windows (biasanya winload.exe di folder Boot partisi Windows). GRUB adalah apa yang memberi Anda kemampuan untuk membuat keputusan. GRUB dapat membaca file konfigurasi dan mengambil pilihan defaultnya.

Baca ini jika Anda ingin detail berlebihan dan mengerikan.

LawrenceC
sumber
Ini adalah salah satu alasan mengapa, di Ubuntu, Anda perlu sudoatau root untuk menulis apa saja ke disk yang tidak di-mount; jika program atau pengguna jahat menulis malware ke partisi boot ...
wizzwizz4
Terima kasih LawrenceC, penjelasan Anda membuat pemahaman saya menjadi lebih jelas. Terima kasih sekali lagi
Prashant Singh
13

Diagram ini menunjukkan bagaimana kontrol berpindah dari firmware (BIOS atau UEFI) ke bootloader dan dari bootloader ke sistem operasi di Ubuntu.

masukkan deskripsi gambar di sini
          BIOS vs. UEFI

Jika OS diinstal dalam mode yang berbeda (BIOS dan UEFI), dual boot Windows dan Ubuntu tidak dapat berfungsi.


Mengubah Ubuntu menjadi mode UEFI

  1. Mulai Boot-Repair, dan pilih opsi Advanced -> tab lokasi GRUB .
  2. Jika Anda tidak melihat opsi partisi Terpisah / boot / efi , ini berarti PC Anda tidak memiliki partisi UEFI.
  3. Jika Anda melihat opsi partisi Terpisah / boot / efi , beri tanda centang di kotak centang di sebelah kiri, lalu klik tombol Terapkan di sudut kanan bawah.

    Mengubah Ubuntu menjadi mode UEFI

  4. Atur BIOS Anda agar boot hard drive dalam mode UEFI. Cara menyesuaikan pengaturan ini tergantung pada model komputer tertentu, tetapi umumnya pengaturan ini terletak di pengaturan prioritas boot di bawah tab Boot pada utilitas pengaturan BIOS / UEFI.

karel
sumber
7

Dalam mode lama (BIOS booting dan bukan UEFI) BIOS mengontrol urutan drive. Sekali waktu ini digunakan untuk dikendalikan oleh kabel; tetapi mengubah pengaturan BIOS mengalahkan membuka kotak & mengganti kabel.

BIOS memuat (ke memori) sektor pertama (512 byte disk yang disebut MBR atau master boot record) dari disk pertama (atau urutan drive yang dikendalikan oleh BIOS) dan kemudian meneruskan (CPU) kontrol ke 'bootloader' ini. BIOS telah menyelesaikan tugasnya dan kode di sektor pertama berjalan.

guiverc
sumber
Maaf tuan tetapi saya agak bingung karena bios memberikan kontrol ke boot loader dan jendela dan linux memiliki boot loader yang berbeda sehingga yang boot loader itu memberikan kontrol. Apa proses bios untuk memilih boot loader
Prashant Singh
2
Sistem Anda hanya dapat memiliki satu boot loader per disk (dan hanya satu yang pernah aktif). Secara umum, jika Anda memiliki dua sistem operasi pada sistem Anda, yang kedua diinstal memiliki boot-loader saat ia menulis kode sendiri ke dalam MBR. Inilah sebabnya mengapa GNU / Linux (Ubuntu) menggunakan GRUB; ini adalah sistem multi-langkah (langkah 1 adalah MBR, langkah 1.5 & 2 ditemukan di / boot) yang menampilkan menu yang menanyakan OS yang ingin Anda muat / jalankan (yang grub tahu tentangnya, plus ISO apa pun yang Anda miliki ditambahkan ke dalamnya). Jika Anda memiliki dua disk drive; Anda dapat memiliki boot loader di setiap drive, tetapi BIOS akan menentukan mana yang akan berjalan.
guiverc
Jadi jika saya memiliki 2 sistem operasi di komputer saya maka apakah perlu bahwa GRUB akan memasang menu menanyakan os mana yang ingin saya muatkan mengapa tidak bootloader windows meletakkan menu itu karena saya memiliki kedua os di komputer saya.
Prashant Singh
windows juga memiliki boot loader (to vista); tapi itu tidak sepintar grub. versi windoze tidak mencari produk non-msft (dan tidak dapat membaca ext / reiserfs / xfs / zfs / btrfs / ...) sehingga Anda harus menambahkan * nix sendiri; dan pembaruan selanjutnya ..... versi windoze tidak layak digunakan karena grub jauh lebih baik. Jika windoze berada di satu drive, Ubuntu di drive lain Anda dapat mengubah boot dengan BIOS; tetapi grub lebih cepat / lebih mudah. (jika senang dengan jawaban saya; terima untuk menutup pertanyaan)
guiverc
3
@ Prashant Singh: Alasan paling mendasar mengapa bootloader Windows tidak melakukan ini (atau tidak, ketika saya tahu sedikit tentang Windows) adalah bahwa MicroSoft tidak menghasilkan uang dengan membiarkan Anda menjalankan sistem operasi lain.
jamesqf