GNU/Linux >> Belajar Linux >  >> Linux

Apakah Grub Solusi Bootloading Terbaik? Apakah Ada Alternatif yang Lebih Mudah?

Saya memiliki beberapa pengalaman yang agak buruk dengan GRUB2 . Saya bisa mengatakan (dan telah mengatakan) beberapa hal buruk tentang desain dan proses pengembangannya. Saya terutama tidak menyukai cara pembaruannya:untuk alasan apa pun ia harus memperbarui beberapa skrip secara semi-otomatis – satu secara tidak langsung melalui yang lain dalam sebuah rantai – untuk setiap pembaruan kernel – atau banyak minor lainnya (dan tampaknya tidak terkait) perubahan konfigurasi.

Hal ini berbanding terbalik dengan pengalaman saya sebelumnya dengan LILO – yang dengan serius saya pertimbangkan untuk dikembalikan – karena saya tidak pernah memiliki masalah dengannya, dan konfigurasinya cukup sederhana. Untuk satu hal, seingat saya, saya hanya perlu memperbarui (atau, lebih tepatnya, hanya memperbarui) satu file teks konfigurasi yang dikelola secara sederhana per pembaruan kernel.

Jadi bagaimana LILO bekerja pada perangkat keras modern dengan kernel saat ini? Bagaimana GRUBnya? Bagaimana bootloader lain? Apakah saya harus memenuhi prasyarat apa pun, atau hanya tentang menulis file konfigurasi dan menjalankan lilo perintah seperti yang saya ingat di masa lalu? Apakah pembaruan paket kernel (Debian/Ubuntu) memperbarui LILO seperti halnya dengan GRUB2?

Jawaban yang Diterima:

ELILO

Mengelola Boot Loader EFI untuk Linux:Menggunakan ELILO

Sangat sulit bagi saya untuk memutuskan bagian mana yang akan saya salin+tempel karena semuanya sangat bagus, jadi saya akan meminta Anda untuk membacanya.

Rod Smith

Menulis dan memelihara keduanya gdisk dan rEFInd .

Tetapi sebelum Anda melakukannya, saya ingin berkomentar sedikit tentangnya. Tautan ELILO di atas adalah salah satu dari banyak halaman tentang booting UEFI yang akan Anda temukan di rodsbooks.com yang ditulis oleh Rod Smith. Dia adalah seorang penulis teknis yang ulung, dan jika Anda pernah mencari topik tentang booting UEFI di Google dan akhirnya tidak membaca tulisannya, kemungkinan besar Anda melewatkan beberapa hasil teratas.

Linux UEFI boot

Pada dasarnya, kernel Linux dapat langsung dieksekusi oleh firmware.

Dalam tautan di atas, ia menyebutkan pemuat rintisan EFI kernel Linux – menurut saya, inilah yang harus Anda gunakan, karena memungkinkan kernel linux dipanggil langsung oleh firmware itu sendiri. Terlepas dari apa yang Anda lakukan sesuatu sedang dieksekusi oleh firmware – dan sepertinya ada sesuatu yang grub . Jika firmware dapat langsung memuat kernel os Anda, apa gunanya bootloader? Firmware UEFI memasang partisi GPT berformat FAT yang ditandai esp oleh tabel partisi dan mengeksekusi jalur di sana yang telah disimpan sebagai variabel boot UEFI dalam modul memori flash onboard. Jadi satu hal yang mungkin Anda lakukan adalah meletakkan kernel linux di partisi FAT itu dan menyimpan jalurnya di variabel boot itu. Tiba-tiba kernel menjadi miliknya sendiri bootloader.

Bootloader

Pada sistem UEFI, bootloader berlebihan – termasuk ELILO.

Masalah yang dirancang untuk dipecahkan oleh bootloader adalah bahwa sistem BIOS hanya membaca di sektor pertama boot partisi yang ditandai dan jalankan. Agak sulit untuk melakukan sesuatu yang berarti dengan kernel 512 byte, jadi hal yang umum dilakukan adalah menulis utilitas kecil yang dapat memasang sistem file tempat Anda menyimpan aktual kernel dan memuatnya di rantai.

Terkait:tentukan shell dalam skrip selama runtime?

Faktanya, 512 byte seringkali tidak cukup bahkan untuk bootloader. grub , misalnya, sebenarnya melakukan chainload sendiri sebelum melakukan chainloading kernel Anda, karena ini menghambat tahap kedua di ruang kosong antara sektor boot dan sektor pertama sistem file Anda. Ini semacam peretasan kotor – tetapi berhasil.

Manajer boot

Demi konfigurasi yang mudah, beberapa perantara dapat berguna.

Apa yang dilakukan rEFInd Rod Smith adalah meluncurkan sebagai aplikasi EFI – ini adalah konsep yang relatif baru. Ini adalah program yang dijalankan dari disk oleh – dan kembali ke – firmware. Apa yang dilakukan rEFInd adalah memungkinkan Anda untuk mengelola menu boot dan kemudian mengembalikan pilihan boot Anda ke firmware untuk mengeksekusi. Dilengkapi dengan driver sistem file UEFI – jadi, misalnya, Anda dapat menggunakan pemuat rintisan EFI kernel pada non-FAT partisi (seperti /boot Anda saat ini ). Sangat mudah untuk dikelola – jika hal seperti itu memang diperlukan – dan ini menambahkan kesederhanaan kernel sistem yang dapat dieksekusi ke kenyamanan bootmanager yang dapat dikonfigurasi.

Arah Atom

Kernel tidak memerlukan symlink – kernel dapat mount --bind .

Jika ada jalur di / Anda di mana Anda seharusnya larang symlinking, ini /boot . Symlink yatim piatu di /boot adalah tidak jenis masalah yang harus Anda pecahkan. Namun, itu adalah praktik yang cukup umum untuk menyiapkan tipuan yang rumit di /boot oleh beberapa distribusi – bahkan jika itu adalah ide yang buruk – untuk menangani pembaruan kernel di tempat dan/atau beberapa konfigurasi kernel.

Ini adalah masalah untuk sistem EFI tidak dikonfigurasi untuk memuat driver sistem file (seperti yang disediakan dengan paket rEFInd) karena FAT adalah sistem file yang cukup bodoh secara keseluruhan, dan tidak memahaminya.

Saya pribadi tidak menggunakan driver sistem file UEFI yang disediakan dengan rEFInd, meskipun sebagian besar distribusi menyertakan paket rEFInd yang dapat diinstal melalui manajer paket dan lupa hanya menggunakan /boot symlink mereka sendiri yang mengerikan. config dan driver sistem file UEFI paket rEFInd.

Konfigurasi Saya

Saya pernah menulis satu set instruksi dan mempostingnya di sini, tapi sepertinya:

% grep esp /etc/fstab && 
> ls /esp/EFI

LABEL=ESP          /esp  vfat defaults      0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0 

arch_root/  arch_sqsh/  arch_xbmc/  BOOT/  ipxe/

Jadi saya hanya meletakkan dua baris itu di /etc/fstab saya menunjuk ke folder yang saya maksudkan untuk memuat /boot instalasi linux baru dan saya hampir selesai mengkhawatirkan semuanya. Saya juga harus melakukan:

cat /boot/refind_linux.conf 

"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"

Selain menginstal refind-efi paket melalui pacman untuk yang pertama, hanya itu yang diperlukan untuk mengatur sebanyak mungkin instalasi/konfigurasi terpisah yang saya inginkan. Perhatikan bahwa sebagian besar string di atas terdiri dari opsi pemasangan khusus btrfs yang ditentukan sebagai parameter kernel. /boot/refind_linux.conf yang lebih umum mungkin akan terlihat seperti:

"Menu Entry" "root=/dev/sda2"

Dan hanya itu yang diperlukan.

rodsbooks.com

Jika Anda masih menginginkan ELILO maka Anda dapat menemukan petunjuk instalasi pada link di atas. Jika Anda ingin rEFInd, Anda akan menemukan tautannya di paragraf pertama di sana. Pada dasarnya jika Anda ingin melakukan konfigurasi boot UEFI, baca rodsbooks.com terlebih dahulu.

Terkait:N alternatif untuk sed yang mendukung unicode?
Linux
  1. Solusi Terbaik Untuk Pengarsipan Dokumen?

  2. Cara Terbaik Untuk Mengkompilasi Kernel Untuk Prosesor I7?

  3. Server Web Linux Terbaik

  1. Server Linux Nagios:Solusi Pemantauan Web Terbaik?

  2. Apa cara terbaik untuk melakukan tugas yang mendekati waktu nyata pada OS/kernel non waktu nyata?

  3. Cara terbaik untuk mencegah sistem root terisi ketika mount gagal?

  1. Analisis kernel Linux dengan ftrace

  2. Linux – Mengapa Tidak Ada Sistem File Rootfs Di Sistem?

  3. Mengapa cPanel Adalah Solusi Terbaik untuk Desainer Situs Web