Windows 8 dan Linux UEFI dual boot pada laptop

10

Saya mencoba mengatur Windows 8 dan Arch Linux pada Sony Vaio E14 baru dengan windows 8 yang sudah diinstal sebelumnya.

Sejauh ini:

  • menginstal W8 ke SSD baru saya (beralih untuk HDD asli) menggunakan Media Pemulihan
  • menyusut partisi W8, partisi pemulihan yang dihapus, swap dinonaktifkan
  • W8 dikonfirmasi booting baik-baik saja

Aktif ke Lengkungan:

  • menonaktifkan Boot Aman di bios
  • W8 dikonfirmasi booting baik-baik saja
  • Boot Arch dari CD dan instal semuanya ke partisi 4 dan 5
  • mengatur rEFInd untuk bootloader kernel EFIstub

Setelah itu bertambah buruk. Saya tidak dapat mem-boot selain Windows 8 (meskipun saya senang mereka setidaknya tetap bekerja dengan baik).

Mencoba:

  • membuat EFI \ refind \ dan meletakkan .efi di sana (sesuai manual Arch
  • menimpa EFI \ boot \ bootx64.efi
  • menimpa EFI \ Microsoft \ Boot \ bootmgr.efi
  • menimpa EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd ditampilkan!

Sejauh ini bagus. Saya telah menyimpan seluruh direktori Boot W8 di EFI \ windows8 dan mengatur menu boot boot untuk itu; dan itu boot dengan baik.

Tapi, setelah restart, semuanya salah - 'Sistem operasi tidak ditemukan' alih-alih bootloader apa pun (refind atau w8).

Boot kembali ke Arch menggunakan live CD untuk mengetahui bahwa partisi EFI memiliki tabel FAT yang salah. fsck.vfat memperbaikinya, dan saya telah menemukan bahwa EFI \ Microsoft \ Boot kembali ke keadaan semula (semua file refind dihapus dan diganti dengan bootloader W8). Saya telah menimpa mereka lagi dan kembali ke resi muncul dengan benar dan Arch menjadi bootable sempurna.

Setelah itu saya hanya mencoba mengubah nama EFI \ Microsoft \ Boot \ bootmgfw.efi menjadi bootmgfw.001.efi (lalu menyalin .efi refind ke bootmgfw.efi dan menjaga SETIAP file LAIN seperti itu), tetapi dengan hasil yang persis sama. Mencoba menandai partisi EPT GPT sebagai hanya-baca, hasil yang sama.

Sekarang saya agak kurang beruntung. Arch melakukan booting dengan baik, demikian juga W8 tetapi ia menghancurkan partisi EFI dalam prosesnya.

Terima kasih atas gagasannya, Googling membawa saya sejauh ini dan saya tidak dapat menemukan yang lebih baik.

PS - windows 8 MAYBE menghancurkan partisi setelah shutdown - ketika saya memesan shutdown di W8, dibutuhkan waktu yang sangat lama (sekitar setengah menit, bukannya ~ 5 detik). Jadi secara teori saya bisa menyelesaikan ini dengan menyetel ulang laptop daripada mematikan normal, tapi itu tidak baik.

gatal 355
sumber
Saya khawatir saya tidak dapat membantu di sini, saya tidak memiliki mesin UEFI untuk menguji hal-hal. Meskipun itu mungkin bukan cara yang paling diinginkan untuk melakukannya, Anda dapat mencoba menambahkan entri Linux ke bootloader Windows dan boot di sana, tetapi saya belum mencobanya di mesin UEFI. Lihat di sini untuk prosedurnya: superuser.com/a/499652/18050 Juga, saya selalu menggunakan Archboot untuk menginstal Arch, cobalah jika Anda menggunakan gambar resmi karena instalasi menggunakan sistem UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy
Ini terdengar seperti konflik antara Arch Linux dan sesuatu yang dilakukan Windows 8. Sudahkah Anda mencoba distro lain untuk mengatasinya bukan Arch Linux yang bermasalah?
Ramhound
Terima kasih atas saran easyBCD, saya pasti akan mencobanya. Saya tidak peduli boot manager apa yang digunakan, jadi jika Windows bisa melakukan itu, saya akan lebih dari senang. Akan memposting hasil besok ketika ada waktu luang dari kerja lagi untuk mengacaukan sesuatu :) @Ramhound itu akan menjadi semacam rasa sakit saat ini dan saya tidak berpikir itu terkait dengan Arch - rEFInd adalah proyek terpisah dan saya sudah dipasang semuanya dengan tangan (mengikuti pria itu).
itchy355

Jawaban:

5

Mungkin layak melakukan shutdown dingin (tekan tombol power) di Windows untuk melihat apakah Anda bisa boot setelahnya, sama seperti tes. Jelas Anda tidak ingin melakukan ini secara teratur, tetapi mungkin membantu untuk mengkonfirmasi bahwa Windows menimpa data ESP yang direvisi. Jika itu sebenarnya merusak sistem file pada Windows shutdown, maka ini terdengar seperti bug Windows yang harus dilaporkan ke Microsoft. Jika itu hanya mengganti bootmgfw.efifile, maka itu secara teknis dalam purvue Microsoft, jadi itu bukan bug.

Namun, secara lebih luas, efibootmgrsudahkah Anda mencoba menggunakan program linux untuk mendaftar rEFInd dengan EFI dengan namanya sendiri (katakanlah, EFI/refinddi ESP)? Ini dijelaskan dalam dokumentasi rEFInd, di bagian instalasi Linux manual. Atau, Anda dapat menginstal menggunakan install.shskrip. Salah satu metode akan memerlukan boot mode EFI untuk berhasil, tetapi Anda harus dapat melakukan ini menggunakan CD atau boot boot dari disk darurat dalam mode EFI.

Jika efibootmgrtidak berhasil, coba gunakan bcfgdalam program shell EFI, seperti yang dijelaskan di halaman Arch wiki ini.

Jika prosedur ini tidak berhasil, coba gunakan efibootmgratau bcfguntuk menghapus entri bootmgfw.efidari NVRAM dan kemudian instal rEFInd as EFI/BOOT/bootx64.efi. Secara teori, komputer kemudian dapat meluncurkan rEFInd, yang seharusnya bekerja secara normal dan mengaktifkan booting salah satu OS. Ada dua gotchas potensial, meskipun: Firmware mungkin mendukung EFI/Microsoft/boot/bootmgfw.efilebih EFI/BOOT/bootx64.efi; dan Windows mungkin memeriksa opsi bootnya dan menambahkan bootloadernya sendiri kembali ke NVRAM ketika boot. Namun, metode ini patut dicoba.

Spesifikasi EFI mengharuskan komputer untuk menghormati pengaturan NVRAM mereka (yang dikelola oleh efibootmgrdi Linux, bcfgdi shell EFI, atau program serupa), jadi jika utilitas ini tidak berfungsi, firmware Anda rusak, dan Anda mungkin ingin mempertimbangkan untuk mengembalikan komputer untuk model lain. (Pastikan untuk memberi tahu Sony mengapa Anda mengembalikan komputer jika Anda melakukannya!) Jenis masalah ini sebenarnya cukup umum; Saya punya papan Gigabyte dengan "Hybrid EFI" yang terus melupakan pengaturan NVRAM-nya, misalnya. Paling tidak dengan board ini, meskipun demikian, dimungkinkan untuk mem-bypass masalah dengan menamai boot manager / loader pilihan saya EFI/BOOT/bootx64.efi.

Jika Anda tidak dapat membuatnya berfungsi dan tidak mau atau tidak dapat mengganti komputer, saya memiliki dua saran lain untuk penyelesaian masalah:

  • Anda dapat menyimpan CD atau USB flash drive yang dapat di-boot dengan rese, dan menggunakannya ketika Anda ingin mem-boot Linux. Ini mungkin memerlukan penggunaan tombol fungsi untuk memberi tahu komputer agar melakukan booting dari media yang bisa dilepas daripada dari hard disk setiap kali Anda booting.
  • Anda dapat menghapus partisi dari disk, partisi ulang menggunakan MBR, dan menginstal ulang kedua OS dalam mode BIOS daripada dalam mode EFI. Ini akan menghilangkan kerawanan EFI dari gambar dan memungkinkan Anda untuk menggunakan GRUB mode BIOS sebagai bootloader Anda. Ini mungkin akan memerlukan salinan eceran dari penginstal Windows 8; setidaknya untuk Windows 7, salinan OEM tidak fleksibel tentang mode instalasi (BIOS vs. EFI). Atau, dimungkinkan untuk mengkonversi dari boot mode EFI ke boot mode BIOS tanpa menginstal ulang. Beralih sebaliknya mungkin (saya akan memposting tautan ke situs yang dideskripsikan, tetapi situs ini tidak akan membiarkan saya memposting lebih dari dua tautan; maaf), dan saya sepertinya ingat menjalankan deskripsi yang berbeda-beda dalam melakukan EFI- konversi ke-BIOS di suatu tempat, tetapi saya tidak memiliki URL berguna. Pencarian Google dapat mengubah sesuatu.

Saya sengaja menemukan halaman ini setelah memposting jawaban pertama saya, dan ada kemungkinan penyebab lain untuk setidaknya sebagian dari masalah Anda: Rupanya Windows 8 menggunakan metode shutdown yang lebih mirip dengan operasi disk-ke-disk. Hasilnya adalah partisi yang dipasang dapat rusak jika Anda mematikan Windows dan kemudian mem-boot Linux. Meskipun ESP tidak biasanya dipasang di Windows 7, AFAIK, bisa jadi bahwa Windows 8 melakukan hal-hal yang berbeda, atau mungkin ESP adalah dipasang di Windows 7 dan hanya tampaknya tersembunyi. Dalam hal apa pun, Anda dapat menonaktifkan fitur Windows 8 ini dengan mengetik perintah berikut di jendela Prompt Perintah Administrator:

powercfg /h off
Rod Smith
sumber
Memang, windows 8 tidak merusak apa pun ketika shutdown dingin. Saya tidak ingin memposting kesalahan, karena bagaimanapun saya yang mengacaukan bootloader mereka :)
itchy355
Saya sudah mencoba main-main dengan efibootmgr; itu menunjukkan bahwa ada jumlah bootmanager yang luar biasa tinggi (lebih dari 3 yang saya harapkan), yang membuat saya mencari di disk saya lebih baik; dan saya telah menemukan bahwa sebenarnya saya memiliki dua partisi EFI: -x Hanya yang kedua (/ dev / sda2) ditampilkan sebagai EFI system partitiondi dalam GDisk, sehingga membuat saya berpikir itu adalah yang benar. Yang lainnya hanyalah partisi FAT (sda1) dengan ukuran dan struktur file EFI standar yang sama.
itchy355
Jika saya mengubah urutan boot untuk memuat rEFInd pertama, maka sesuatu yang disebut ,, sony original '' dan kemudian yang lain, itu menimpa dirinya sendiri kembali ke default (windows, sony original, others (refind)) PS; itu semua dikatakan mengingat itu ,, windows '' adalah ditimpa sayabootmgfw.efi
itchy355
1
Sementara itu, saya sudah mencoba powercfg /h offdi w8, dan ITU TETAP W8 MEMASUKI PARTISI EFI..itu cawan suci yang saya cari, sepertinya :) TERIMA KASIH TERIMA KASIH!
itchy355
Saya senang mendengar hal itu powercfg /h offmemperbaiki masalah utama Anda. Anda mungkin tertarik mendengar bahwa saya telah menemukan informasi bahwa beberapa implementasi UEFI tampaknya dikodekan untuk memindahkan bootloader yang disebut "Windows Boot Manager" ke bagian atas daftar mereka. Dengan demikian, mengganti nama boot loader Anda menggunakan efibootmgrmemungkinkan Anda untuk menginstal rEFInd (atau apa pun yang Anda suka) di bawah nama file yang lebih masuk akal.
Rod Smith