Grub tidak menampilkan opsi Windows 8 setelah boot ganda

25

Jadi, saya telah berhasil mem-boot dua kali mesin Windows 8 saya dengan Ubuntu 12.04. Namun, saya masih belum memiliki metode yang mudah untuk memilih OS apa yang akan dimuat saat boot.

Setelah menginstal Ubuntu, komputer saya masih memuat Windows 8 secara langsung. Saya kemudian menambahkan grubx64.efike daftar putih boot loader saya. Tetapi setelah itu, mesin saya memuat Ubuntu secara langsung bahkan tanpa bayangan GRUB muncul!

Saya menggunakan perbaikan-boot dan saya mendapatkan URL paste.ubuntu ini: paste.ubuntu.com/1326074 . Setelah menjalankan boot-repair (dan memutarkan ulang putih grubx64.efifile tersebut), GRUB sekarang muncul tetapi tanpa opsi Windows 8!

Terakhir, saya berlari sudo fdisk -ldan memberi saya ini:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Saya menduga masalah saya ada hubungannya dengan peringatan dari fdiskatas tetapi saya tidak tahu apa yang harus dilakukan dengan itu. Bagaimana saya melanjutkan sekarang?

Edit

Saya etc/default/grubadalah sebagai berikut:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Juga, hanya sebagai catatan, ini adalah apa yang saya ikuti dalam menginstal dual-boot saya. Tutorial (yang menggunakan, 11.10, saya harus perhatikan), tidak menyebutkan apa pun tentang masalah ini. Apakah ada sesuatu yang seharusnya tidak saya lakukan?

skytreader
sumber
Baca jawaban ini, dapat membantu Anda: askubuntu.com/questions/84501/…
NickTux

Jawaban:

17

Pertama, fdisk -loutput Anda bukan masalah; yang hanya mengidentifikasi disk Anda menggunakan sistem partisi GUID Partition Table (GPT) . Untuk melihat partisi Anda, Anda harus menggunakan alat yang mendukung GPT, seperti gdiskatau parted, bukannya fdisk, yang tidak mengerti GPT.

Kedua, Anda mungkin bisa membuat GRUB melakukan chainload Windows dengan menambahkan entri yang sesuai /etc/grub.d/40_customdan kemudian melakukan a sudo update-grub. Entri mungkin terlihat seperti ini:

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Detailnya mungkin tergantung pada instalasi Anda.

Ketiga, jika Anda menganggap rEFInd jelek, Anda selalu dapat mencoba tema rEFInd lain atau membuat tema Anda sendiri, seperti yang dijelaskan dalam dokumentasi rEFInd. Atau, jika Anda lebih suka boot loader mode teks, Anda dapat mengatur textonlyopsi di refind.conf. Anda dapat mencapai tujuan yang serupa dengan beralih ke gummiboot.

Keempat, jika penerima melaporkan kesalahan secara berkala, silakan tulis atau ambil gambar layar dengan kamera digital dan laporkan kepada saya. (Saya pengelola rEFInd.) Bug tidak dapat diperbaiki jika tidak ada yang melaporkannya; atau jika mereka bukan bug di rEFInd, pesan dapat memberikan petunjuk tentang cara menyelesaikan masalah.

Akhirnya, dimungkinkan untuk mem-boot Linux melalui rEFInd (atau gummiboot) tanpa menggunakan GRUB; Anda hanya perlu boot loader EFI yang berbeda. Preferensi pribadi saya adalah pemuat rintisan EFI kernel Linux . Ini hanya tersedia di kernel 3.3.0 dan yang lebih baru. Sejak Ubuntu 12.04 dikirimkan dengan kernel 3.2.0, Anda harus mencari 3.3.0 untuk Ubuntu 12.04 yang sudah dibangun sebelumnya (saya pernah mendengar hal-hal seperti itu, tetapi saya tidak memiliki tautan), atau membangun sendiri dari kode sumber. (Anda juga dapat menginstal Ubuntu 12.10, yang dikirimkan dengan kernel yang sesuai, tetapi mungkin Anda menginginkan rilis LTS, jadi ini mungkin tidak optimal.) Lihat halaman dokumentasi rEFInd tentang mem-boot Linux.untuk detail tambahan tentang cara mengaturnya. Anda juga bisa menggunakan ELILO atau GRUB Legacy. Jika Anda hanya keberatan dengan penundaan itu, Anda bisa mengurangi nilai batas waktu GRUB 2 dan mengaturnya untuk tidak menampilkan menu secara default.

Rod Smith
sumber
1
Pertama, wow, saya tidak menyadari bahwa Anda adalah pengelola resi. Selanjutnya, mengenai menuentry GRUB ... Saya sudah mencobanya tetapi tidak berhasil. Di antara foto-foto lain dalam kegelapan, saya telah mencoba mengatur partisi ESP saya tetapi tidak berhasil. Bahkan mencoba menggunakan salah satu dari editor GRUB grafis (lupa nama). Terakhir, mengenai rEFInd, kesalahan yang dilaporkan tidak penting (akan mengedit posting saya untuk mencatat itu) --- pada saat start-up itu hanya memberitahu saya bahwa itu tidak dapat menemukan .efi tertentu. Saya tidak tahu dari mana mereka berasal.
skytreader
Periksa keberadaan file yang ditentukan pada ESP. Juga pastikan bahwa kasus nama file sudah benar. (Seharusnya tidak masalah, tapi saya tahu satu EFI bermasalah di mana itu!) Jika itu tidak membantu, pesan kesalahan apa (jika ada) yang dikembalikan GRUB ketika Anda mencoba meluncurkan Windows melalui entri ini?
Rod Smith
8

Boot ke Ubuntu menggunakan CD,
Pilih "Coba Ubuntu",
Hubungkan ke internet,
Buka jendela terminal menggunakan Ctrl- Alt- tdan kemudian jalankan:boot-repair

Jika perbaikan boot tidak ditemukan, maka instal:

sudo add-apt-repository ppa:yannubuntu/boot-repair &&
sudo apt-get update &&
sudo apt-get install -y boot-repair &&
boot-repair

Klik Perbaikan yang Disarankan. Tulis di atas kertas URL baru yang akan muncul. Reboot pc, Anda harus mendapatkan menu GRUB dengan akses ke Ubuntu dan Windows. Jika ada masalah, tunjukkan URL baru.

Scott Stensland
sumber
7

Kedua jawaban dengan /EFI/Microsoft/Boot/bootmgfw.efiakan dilakukan. Namun saya meretasnya untuk mendapatkan pengaturan yang tepat set root='(hd0,gpt1)'. Jika Anda tahu itu sangat sederhana

Saat GRUB mulai: tekan c berikan perintah lspada prompt.
Anda mendapatkan daftar partisi pada harddisk seperti (hd0, gpt1) dll.
Ketik ls(hd0, gpt1) dan coba yang lain.
Lihatlah label dan jika menyatakan EFI Anda tahu Anda punya hit.

Peringatan: mungkin ada lebih banyak partisi yang berlabel EFI, tergantung bagaimana Anda menginstal Ubuntu. Coba semuanya.

Jørgen
sumber
6

Coba jalankan sudo update-grub. Mudah-mudahan ini akan mengenali Windows 8 secara otomatis dan menambahkannya ke GRUB dan mengkonfigurasi ulang menu.

Jika itu gagal, silakan bagikan /etc/default/grubfile Anda di sini, kami akan memeriksanya.

Tom Klino
sumber
1
Hai. sudo update-grubtidak melakukan trik. Saya mengedit pertanyaan saya untuk memasukkan pertanyaan saya /etc/default/grub. Sementara itu, saya sedang mempelajari jawaban yang dikaitkan NikTh.
skytreader
3

Coba buat file bernama /etc/grub.d/30_windowsyang berisi ini:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
Kemudian jalankan sudo update-grubdan reboot.

Tutorial lengkap

tradeJmark
sumber
1
  1. Silakan unduh super Grub dan ikuti arahannya. Aku tidak pernah meninggalkan rumah tanpa itu. Sangat membantu ketika menu grub tidak muncul.

  2. Anda harus memuat ke cd dan mem-boot-nya. Cukup ikuti instruksi yang menyertainya.

  3. Itu juga dapat digunakan untuk memperbaiki windows. Karena Anda hanya dapat boot ke windows 8 Anda ingin memilih perbaikan linux.

Main-main dengan ini tetapi membaca instruksi. Anda akan merasa seperti ahli setelah beberapa saat. RS

Rubah
sumber
0

Solusi Utama Saya

(* Karena Tom tidak berfungsi dan tautan NikTh terlalu rumit. Tapi hei, terima kasih sudah repot-repot!)

Instal rEFInd .


Saya menerima jawaban saya sendiri sampai seseorang menunjukkan kemungkinan kesalahan dan perbaikan untuk itu atau mengatasi masalah saya (yang, sayangnya, hanya mengajukan pertanyaan "Bagaimana cara menempatkan Windows 8 di GRUB dengan mudah ?").

( Sunting 8/6/17: Saya akhirnya menggunakan rEFInd untuk menyelesaikan masalah ini (lihat jawaban yang diterima di atas).)

Jauh dari solusi sempurna, menggunakan rEFInd sepertinya pekerjaan yang sangat meretas. Untuk satu, itu terlihat jelek (maaf rEFInd) dan memberitahu saya akses ditolak pada .efi tertentu ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) saat start-up --- tidak ada yang kritis sekalipun, dan pergi dengan sebuah tombol tekan*. Dan, terakhir, memilih Ubuntu masih memuat GRUB yang merupakan langkah yang sama sekali tidak perlu, setidaknya karena saya tidak akan repot menjaga beberapa versi kernel.

Singkatnya...

Pro: sistem saya sekarang kurang lebih berfungsi seperti sepatu bot pra-UEFI saya. Cons: terlihat jelek ditambah waktu boot yang lebih lama.

* Saya harus mencatat bahwa rEFInd ini diinstal melalui install.shpartisi Ubuntu saya. Pengalaman sebelumnya dengan rEFInd (pengaturan melalui Windows) tidak memiliki masalah ini.

skytreader
sumber
Jika instalasi sebelumnya melalui Windows tidak menghasilkan kesalahan tentang file yang tidak dapat ditemukan tetapi instalasi Anda saat ini dari Linux, maka firasat saya adalah bahwa salah satu dari dua hal yang terjadi: 1) Anda punya motherboard dengan bug sensitivitas kasus, dalam hal ini pengelompokan dengan kasus file atau direktori dapat meningkatkan masalah; atau 2) Ada yang aneh dengan ESP Anda (FAT16 vs. FAT32 atau kerusakan sistem file kecil, misalnya). Beberapa EFI tampaknya sangat cerewet tentang sistem file pada ESP mereka. Nama file yang tepat mungkin membantu dalam mempersempit masalah.
Rod Smith
Baik. Salahku. Itu tidak mengatakan itu tidak dapat menemukan efis tertentu, hanya saja aksesnya ditolak pada efis tertentu (jadi saya mengambil kata efis yang ada, hanya tidak dapat diakses?). Saya telah mencatat file-file ini sekarang meskipun saya masih tidak tahu dari mana mereka berasal.
skytreader
"Akses ditolak" adalah kesalahan yang tidak biasa pada EFI, menurut pengalaman saya. AFAIK, EFI tidak mendukung kepemilikan atau izin seperti Linux, jadi itu tidak benar-benar masuk akal kecuali ada kesalahan pembacaan disk. Saya telah melihat kesalahan penulisan disk yang aneh di bawah EFI yang menguap pada reboot berikutnya. Jika masalah ini tetap ada, Anda mungkin mempertimbangkan untuk menjalankan tes SMART pada disk Anda jika ada kesalahan perangkat keras, dan cadangan dan tulis ulang ESP jika ada beberapa kerusakan sistem file aneh yang tidak bisa diperbaiki oleh dosfsck. Selain itu, melaporkan file mana yang bermasalah mungkin bermanfaat.
Rod Smith
1
Pesan "akses ditolak" hampir pasti berkaitan dengan Boot Aman. Pesan seperti itu terjadi jika rEFInd mencoba memuat biner EFI yang tidak ditandatangani saat dalam mode Boot Aman. Yang membingungkan tentang ini adalah Anda dapat meluncurkan resi sama sekali, karena itu tidak ditandatangani sendiri. Firasat saya adalah Anda punya semacam pengaturan Boot Aman setengah aktif buggy aneh di firmware Anda. Solusi termudah saat ini adalah sepenuhnya menonaktifkan Boot Aman, tetapi ada yang lain. Lihat halaman Web saya di rodsbooks.com/efi-bootloaders/secureboot.html untuk informasi lebih lanjut.
Rod Smith
Pada laptop hp saya, saya harus menekan f9 dan kemudian grub boot, kalau tidak windows memuat. Juga ada opsi untuk boot Windows dari grub juga walaupun saya tidak pernah menggunakannya. Jika saya bosan dengan Windows, saya tinggal menyalakannya dan menunggu Windows. Jika saya berencana untuk mem-boot ubuntu, saya cukup menekan f9 segera setelah saya hidupkan.
geoffmcc