Saya akan membeli motherboard Asus dengan firmware EFI dan ingin mempersiapkan diri untuk menginstal Windows dan Debian setelah perangkat keras tiba. Saya berharap seseorang yang telah menempuh jalan ini dapat memberi saya beberapa petunjuk.
Persiapan apa yang harus saya lakukan sebelum mencoba menginstal Windows 7 dan Debian pada sistem baru berbasis UEFI?
Jawaban yang Diterima:
EDIT: Ketika saya menulis jawaban ini, sangat sedikit distribusi yang dikirimkan dengan kernel yang dikonfigurasi EFI_STUB sehingga seseorang harus membuat yang khusus. Saat ini sebagian besar distribusi mengirimkan kernel yang dikonfigurasi dengan benar dan build kustom tidak diperlukan lagi. Dalam hal ini bagian “Siapkan partisi Anda” dan “Menyiapkan sesuatu” yang menarik, "Persyaratan" dan "Mengkompilasi kernel" dapat dilewati.
Saya tidak tahu bagaimana Windows menangani UEFI, tetapi dari sisi Debian ini cukup
mudah.
Siapkan partisi Anda
Gunakan skema partisi GPT, bukan MBR.
Untuk mem-boot dari partisi GPT dengan UEFI, diperlukan partisi boot khusus,
disebut PARTISI SISTEM EFI (ESP). Ini tidak wajib, tetapi cara yang paling
kompatibel adalah dengan menggunakan partisi FAT32. Ukuran 200 MiB seharusnya cukup
untuk sebagian besar kasus.
Untuk mendaftarkan partisi sebagai ESP, itu harus ditandai dengan boot
flag.
Berbeda dengan skema MBR, flag boot hanya digunakan untuk menunjukkan ESP,
bukan partisi tempat booting.
UEFI menggunakan struktur direktori EFI<vendor><application>.efi
untuk menyimpan
aplikasi UEFI. Pemisah direktori dilambangkan dengan garis miring terbalik , bahkan di
Linux. bisa jadi nama distribusi, nilai sebenarnya tidak relevan
dengan UEFI.
Aplikasi dapat berupa utilitas sistem seperti pemeriksa memori atau shell UEFI. Ini
juga bisa menjadi pemuat OS atau sistem operasi itu sendiri. Aplikasi ini
harus terdaftar di UEFI agar dapat diluncurkan saat boot.
Persyaratan
Versi kernel Linux>=3.3 dapat dimuat langsung oleh UEFI. Kernel dapat bertindak sebagai pemuatnya sendiri. Ini disebut EFISTUB . Konfigurasi kernel berikut diperlukan.
CONFIG_EFI=y CONFIG_EFI_PARTITION=y CONFIG_EFI_STUB=y CONFIG_RELOCATABLE=y CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_EFI_VARS=m
Kernel dengan konfigurasi ini saat ini belum berada di stabil Debian. Anda dapat
memanggang kernel Anda sendiri atau menggunakan kernel dari pohon eksperimental sehingga Anda dapat melewati paragraf berikutnya.
Mengkompilasi kernel
(mungkin tidak diperlukan lagi, lihat edit)
Jika Anda memutuskan untuk mengkompilasi kernel, berikut adalah petunjuk singkat bagaimana melakukannya. Jika Anda mengalami masalah, ada banyak informasi yang tersedia tentang cara mengompilasi kernel.
Mendapatkan sumbernya
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Lihat satu versi tertentu
git checkout v3.6
Mengonfigurasi kernel
make menuconfig
Buat pengaturan yang diperlukan pada sistem Anda atau biarkan apa adanya
jika Anda tidak memiliki apa pun untuk disesuaikan. Ini menulis konfigurasi
kernel ke file .config
.
Pastikan pengaturan dari paragraf sebelumnya diatur. Juga
masuk akal untuk memilih CONFIG_INPUT_EVBUG=n
. Jika tidak, log Anda
akan diisi dengan GiB sampah.
Membangun kernel
INSTALL_MOD_STRIP=1 make-kpkg --uc --us binary-arch
Paket-paket dibuat di direktori induk.
Menginstal kernel
dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb
Membangun initramfs
mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0
3.6.0 adalah versi kernel. Ini default ke kernel yang sedang berjalan,
yang bukan merupakan pilihan yang baik, karena Anda masih menjalankan kernel
yang lama.
Menyiapkan semuanya
Untuk dapat mem-boot kernel Linux, kernel harus disalin ke ESP bersama
dengan initramfs. Mengingat ESP dipasang di /boot/efi
/boot/efi/EFI/debian/vmlinuz-3.6.0.efi /boot/efi/EFI/debian/initrd.img-3.6.0
CATATAN: Untuk memastikan kompatibilitas dengan sebagian besar sistem, ekstensi efi
harus
ditambahkan ke kernel.
Sekarang kernel dapat didaftarkan di UEFI. Kami menggunakan alat efibootmgr
untuk
itu.
echo "root=UUID=3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype=ext4 add_efi_memmap initrd=\EFI\debian\initrd.img-3.6.0" | iconv -f ascii -t ucs2 | efibootmgr --create --gpt --disk /dev/sda --part 4 --label "Debian Linux kernel 3.6.0" --loader "\EFI\debian\vmlinuz-3.6.0" --write-signature --append-binary-args -
Argumen --disk
adalah perangkat tempat kernel berada, bukan ESP. --part
adalah nomor partisi tempat kernel berada. --label
adalah entri
di menu boot UEFI.
Untuk melihat daftar entri yang tersedia, cukup luncurkan efibootmgr
tanpa
argumen. Sintaks untuk menghapus entri tertentu
efibootmgr -b entry (hex) -B
misalnya:
efibootmgr -b 001a -B
Instruksi ini tidak menangani kasus pembaruan kernel. Kernel dan initramfs tidak secara otomatis disalin ke ESP. Ini dapat dilakukan dengan menggunakan skrip pendek yang menyalin kernel dan initramfs ke ESP dan menjalankan efibootmgr
. Skrip ini dapat ditempatkan di /etc/kernel/postinst.d
untuk diluncurkan secara otomatis setelah kernel diperbarui.
Catatan: Manajer boot seperti GRUB tidak diperlukan, UEFI sendiri bertindak sebagai manajer boot.
Itu saja yang Anda butuhkan dari sisi Linux, saya tidak tahu apa yang diperlukan untuk menambahkan
Windows.