Menurut Wikipedia , GRUB dirilis pada tahun 1995. Pada saat itu Linux dan xBSD ada selama beberapa tahun. Saya tahu versi awal Unix terkait dengan perangkat keras pada tahun 70an dan 80an, tetapi Linux dan xBSD bebas untuk mendistribusikan dan menginstalnya. Yang menimbulkan pertanyaan bagaimana Anda bisa mem-boot Linux saat itu? Apakah distribusi dikirimkan dengan implementasi bootloader sendiri?
boot-loader
history
Sergiy Kolodyazhnyy
sumber
sumber
biosboot(8)
.biosboot
dua arsitektur, i386 dan amd64. Apakah itu berarti OpenBSD secara khusus harus menargetkan arsitektur alih-alih memiliki satu, alat pemersatu?Jawaban:
Distribusi Linux pertama yang saya gunakan pada tahun 90an (
Slackware 3.0
IIRC) menggunakan LILO sebagai bootloader. Dan banyak distro yang digunakanLILO
selama bertahun-tahun bahkan ketikaGRUB
menjadi bootloader "default".Terlebih lagi, pada tahun-tahun awal Linux adalah hal biasa untuk mem-boot Linux dari OS lain (yaitu DOS atau Windows) daripada mengandalkan bootloader / dual boot. Misalnya ada loadlin .
Jangan lupa Syslinux , yang merupakan boot loader sederhana yang sering digunakan untuk instalasi / pemulihan distro USB boot sendiri. Atau Isolinux (dari proyek yang sama) yang digunakan oleh banyak distro "Live".
Perlu diingat bahwa hari ini
GRUB
dapat digunakan untuk memuat banyak sistem operasi, sementaraLILO
itu lebih terbatas, dan secara khusus ditargetkan untuk Linux (yaitu LInux LOader), dengan beberapa dukungan untuk boot ganda ke Windows.GRUB
sangat berguna untuk dual / multi-boot karena banyak opsi yang dapat dikonfigurasi, kemampuan scripting, dll ...Jika Anda hanya ingin satu OS pada mesin Anda "apa saja" (yaitu bootloader mana saja yang merupakan default untuk distribusi Linux / BSD Anda) harus cukup.
sumber
other=/dev/hda1
dengantable=/dev/hda
kelilo.conf
, dan lilo hanya akan mentransfer kontrol ke sektor boot di hda1, mengetahui tabel partisi akan di hda.LILO adalah standar de-facto untuk mem-boot Linux pada PC sebelum Grub, dari tahap yang sangat awal (MCC, salah satu distribusi Linux pertama, menggunakannya). Berbagai bootloader lain digunakan secara serentak. Loadlin sangat umum; itu mem-boot Linux dari DOS, dan bahkan digunakan dalam beberapa konfigurasi
umsdos
untuk meng-host lingkungan Linux dalam sistem file DOS ... Konfigurasi umum lainnya sama sekali tidak melibatkan bootloader: kernel bisa mem-boot sendiri dari floppy, dan kebanyakan Pengguna Linux menyimpan sepasang disket "boot dan root" yang dikenal baik, yang satu berisi kernel, yang lain merupakan sistem file root dasar untuk tujuan penyelamatan.Ada beberapa cara menggunakan bootloader sistem operasi lain untuk mem-boot Linux juga; misalnya, manajer boot OS / 2, atau NTLDR Windows NT.
Sistem lain memiliki bootloader sendiri:
Bahkan saat ini Grub bukan satu-satunya bootloader yang akan Anda lihat. Walaupun memiliki boot kernel langsung dari floppy tidak lagi sangat berguna (saya belum memeriksa apakah itu masih mungkin, dengan asumsi Anda dapat membangun kernel yang cukup kecil untuk muat pada floppy), ia dapat boot langsung dari EFI (yang secara efektif merupakan sistem operasi kecil sendiri yang dirancang untuk memuat sistem operasi lain, seperti Grub). Pada banyak sistem yang lebih kecil (sistem tertanam, komputer papan tunggal ...) Anda akan menemukan U-Boot . (Dan ada juga lapisan EFI untuk U-Boot .)
sumber
Hingga pertengahan 2.6 kernel, kernel x86 langsung dapat di-boot jika disalin ke floppy disk (seolah-olah itu adalah disk image).
Ini sebenarnya adalah cara asli untuk mem-boot Linux.
Jika Anda melihat header kernel x86 hari ini Anda melihat pesan kesalahan yang mengatakan boot dari disket seperti itu tidak berfungsi lagi.
sumber
Saya mulai dengan Linux di akhir 90-an dan seperti yang disebutkan
lilo
adalah default. Jika Anda ingin boot ganda dengan sistem DOS, Anda bisa melakukan boot telanjang tanpa memuat barang ke HIMEM atau memuat driver CD, dll. Dan menggunakannyaloadlin
. Untuk Win95 dual booting, Anda dapat membuat drive tersebut dapat di-boot terlebih dahulu dengan DOS, kemudian instal '95, dan 'boot loader 95 akan membuat Anda tetap mem-boot kernel DOS, dan kemudian Anda bisa menggunakannyaloadlin
.Untuk dual boot dengan NT4, triknya adalah menulis LILO ke
/
partisi, kemudian lepaskan 512 byte pertama menggunakandd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) dan letakkan file yang dihasilkan di manantldr
bisa melihatnya dan Anda bisa menggunakannya dari boot loader WinNT. Masalah dengan melakukan itu adalah ketika Anda memutakhirkan kernel Anda, Anda harus ingat untuk mengulangi semua langkah sebelum me-reboot, jika tidak, Anda akan mengalami masalah untuk kembali ke sistem Linux. Proses yang sama bekerja dengan Win2k.Dengan LILO, setiap kali kernel diperbarui, Anda harus ingat untuk memperbarui LILO.
Dengan
loadlin
setiap saat kernel diperbarui, Anda harus ingat untuk menyalin kernel ke partisi DOS.Satu opsi lain yang diisyaratkan dalam jawaban lain adalah menulis kernel langsung ke disket menggunakan
dd if=/path/to/vmlinuz of=/dev/fd0
TETAPI perangkat root harus diatur dengan benar di kernel, baik pada waktu kompilasi atau dengan menggunakanrdev
utilitas.Ketika
GRUB
muncul, ada banyak kegembiraan karena Anda tidak lagi harus ingat untuk memperbarui LILO, atau memperbarui LILO dan menghapus ulang info boot, dll. Tidak lagi tertinggal dari sistem Linux Anda karena Anda lupa memperbarui boot loader info ...sumber
make install
akan berjalan/sbin/lilo
, jadi Anda tidak benar-benar harus memperbarui apa pun dengan tangan (dan itu mungkin masih terjadi, jika Anda telahlilo
menginstal). Itu mungkin masalah pendapat, tapi saya tidak ingat banyak bersukacitagrub
, sebaliknya. Danlilo
(setidaknya versi 1999) bisa dual boot windows dengan baik, tidak perluloadlin
.Dan sebelum LILO dan GRUB, Anda harus meluncurkannya dari baris perintah dengan semacam utilitas bootloader khusus.
Sebagai contoh, Amiga menyediakan Linux. Anda harus menggunakan utilitas baris perintah yang disebut amiboot untuk memuat kernel ELF ke dalam memori dan melompat ke sana.
Ini adalah video seseorang menggunakan amiboot dari baris perintah untuk meluncurkan linux pada Amiga 600 . Skrip StartInstall miliknya memanggil amiboot yang dapat dieksekusi. Anda dapat menonton amiboot configure memory, mencari tahu alamat pemuatan yang diinginkan, dan meneruskan parameter ke kernel sekitar 0:55.
sumber