Dual-boot Ubuntu 12.10 pada UEFI di sepanjang Windows 8 (GRUB - error: tidak dapat menemukan perintah drivemap)

8

Halo setelah instalasi Ubuntu 12.10 amd64 yang berhasil, saya sekarang tidak dapat mem-boot Windows 8.

Inilah tindakan saya:

  1. Ruang buatan (15 GB) untuk Ubuntu dari Windows 8 Computer Managment
  2. Boot Ubuntu 12.10 amd64 LiveUSB dengan EFI dan dengan Boot Aman diaktifkan
  3. Dibuat 2 partisi baru di akhir (13 GB Ext4 Root dan 2 GB Swap)
  4. Partisi Sistem Windows 8 EFI Terpilih untuk menginstal bootloader

Grub memberi saya saat boot:

  1. Ubuntu (bekerja tanpa masalah)
  2. Lingkungan Pemulihan Windows (banyak kesalahan)
  3. Windows 8 (2 pesan kesalahan menjelaskan tepat di bawah)

2 pesan kesalahan adalah:

  • error: can't find command drivemap.
  • error: invalid EFI file path
Kouros
sumber
Perbaikan Saya memilih "Partisi Sistem EFI yang baru dibuat" untuk menginstal bootloader, tetapi pada kenyataannya menginstal bootloader pada Windows 8 EFS ...
Kouros
Apakah Anda melakukan pencadangan sebelumnya? yaitu partisi windows 8 start / sistem adalah sesuatu yang kecil seperti 150-350 MB jadi mungkin Anda melakukannya dd if=/dev/sda1 of=/media/some_usb_pendrive/backupfile? Jika ada cadangan seperti itu, saya akan mengembalikan sistem windows / mulai partitio yang mungkin telah "rusak".
humanityANDpeace
Maaf tidak ada cadangan tetapi saya berhasil mendapatkan Windows 8 kembali menggunakan Lingkungan Pemulihan (dengan menekan tombol bantu alih-alih tombol daya hidup)
Kouros
apakah Anda serius membuat duplikat dari pertanyaan Anda sendiri? Instal Ubuntu 12.10 pada UEFI di sepanjang Windows 8
duxk.gh
CATATAN: meningkatkan ke 13,04 menghapus perubahan ini pada pemasangan saya.
gcb

Jawaban:

6

Saya menemukan solusi sementara.

Tambahkan entri khusus ke bootmenu GRUB

Tambahkan kode di bawah ini ke /etc/grub.d/40_custom.

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

Anda dapat menggunakan Ctrl+ Alt+ Tuntuk membuka terminal dan menjalankan sudo nano /etc/grub.d/40_custom, lalu menyalin dan menempelkan kode. Terakhir, tekan Ctrl+ Ountuk menyimpan dan Ctrl+ Xuntuk pergi.

Kepala: hd0,gpt1 ini adalah ID Partisi Sistem EFI saya (ESP). Jika ESP Anda bukan partisi pertama pada harddisk pertama Anda saat boot , maka milik Anda berbeda! Misalnya hd1,gpt2untuk partisi kedua pada drive kedua.

Ganti part_gptdengan part_msdosjika drive menggunakan MBR dan partisi lawas dan juga berubah hd0,gpt1menjadi hd0,msdos1masing - masing.

Terapkan perubahan ke GRUB

Cukup jalankan perintah berikut, yang akan menghasilkan konfigurasi GRUB baru, termasuk entri kustom baru:

sudo update-grub

Sekarang reboot, Anda seharusnya bisa boot Windows 8 sekarang. Jika tidak, dan Windows mengeluh tentang konfigurasi BCD yang rusak, kemudian lanjutkan ke superuser: Bagaimana saya bisa memperbaiki Windows 8 EFI Bootloader?


Peringatan: Pada beberapa kesempatan, jika Anda mem-boot Windows 8, GRUB akan digantikan oleh Windows Boot Manager sebagai default boot manager.

Kouros
sumber
untuk apa saya 'bertujuan'? Saya pikir itu adalah partisi data windows (gpt4 di sini) tetapi ia bekerja dengan gpt1, yang merupakan satu-satunya partisi EFI yang saya miliki. saya pikir menginstal ubuntu akan menimpa konten windows dari partisi EFI, seperti halnya grub pada MBR ...
gcb
1
Solusi ini tidak berfungsi untuk saya. Apakah karakter `muncul di yang set root='(hd0,gpt1)'dimaksud. Ini memberikan kesalahan bagi saya (saya coba dengan gpt3) bahkan tanpa karakter itu juga. Kesalahannya seperti (hd0,gpt1)tidak ditemukan.
iammilind
3

Entri Windows yang salah di GRUB disebabkan oleh bug ini: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

Solusi: menjalankan Boot-Repair 's Recommended Repairdari liveCD (atau LiveUSB).

LovinBuntu
sumber
1
Saya harus menonaktifkan "boot aman" di bios sebelum ini akan berhasil.
Robin Winslow
@RobinWinslow Ya, Boot-Repair juga bekerja untuk saya (Lenovo Thinkpad S540) tetapi hanya jika saya menonaktifkan SecureBootbios, jika tidak Windows 8 masih mengeluh ... Akan lebih baik jika ini dapat dibuat bekerja sambil mempertahankan SecureBoot
fpghost
0

Saya menemukan cara untuk menutup Windows 8. Lihat /superuser/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581

Di bawah W8, di jendela perintah privilege tinggi, jalankan powercfg / h off. Pada saat Anda melakukan ini, W8 mungkin sudah menimpa partisi EFI. Butuh beberapa iterasi untuk mengubah bootmgfw.efi dan mengatur ulang hingga macet, tapi sekarang saya senang.

Saya tidak tahu apakah hanya mem-boot W8 sudah cukup, atau jika Anda harus masuk lalu reboot. Mungkin seseorang yang lebih sabar (saya sudah mengerjakan ini selama lebih dari setengah hari) bisa tahu.

Lupe
sumber
0

Saya memiliki masalah yang sama pada laptop Asus-x202 saya (menjalankan W8 & Ubuntu 13.04).

Pekerjaan yang sedikit mengganggu cukup baik bagi saya untuk saat ini: di menu boot masuk ke sistem (atau mulai bios dari awal menggunakan mungkin f2). Jika Anda menggunakan override untuk boot, Windows akan mulai seperti biasa.

pengguna184354
sumber
1
Apa sebenarnya yang Anda maksudkan dengan "override to boot"? Saya tidak mengerti bagian dari jawaban Anda.
gertvdijk
0

"Override to boot" adalah menu pada tab "boot" pada menu konfigurasi motherboard. Ini memungkinkan Anda memilih dan mulai secara instan boot loader apa pun yang terpasang di rig Anda.

vic
sumber
1
@edwin Jawaban ini dapat menggunakan perluasan, tetapi tampaknya merupakan upaya untuk menjawab pertanyaan yang diajukan. vic : Selamat Datang di Tanya Ubuntu! Saya sarankan untuk mengedit ini untuk menambahkan informasi lebih lanjut tentang cara menggunakan fitur itu, serta penjelasan yang lebih menyeluruh tentang mengapa ini memecahkan masalah ini. Terima kasih.
Eliah Kagan
0

Saya memiliki masalah serupa dengan HP Pavillion Sleekbook baru saya, Model 15-b142dx. Itu datang dengan W8 pre-loaded. Saya dapat mengubah ukuran partisi Windows dari dalam Windows, kemudian menginstal Ubuntu 13.04 64-bit dari thumb drive. Namun, saat reboot, W8 dimulai secara normal, tanpa menu boot. Jadi, saya menggunakan "boot-repair", yang membuat sistem tidak bisa di-boot. Saat start-up, itu akan mencetak:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

Kemudian akan ditutup.

Setelah beberapa percobaan dan kesalahan, saya menemukan bahwa menekan F10 selama boot akan membawa saya ke BIOS, di mana saya dapat menonaktifkan Boot Aman. Boot berikutnya, saya mendapat menu PANJANG dari grub, dengan banyak entri seperti:

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

Ini semua terkandung dalam file, "/etc/grub.d/25_custom". Saya membuat salinan cadangan dari file itu, lalu menghapus semua entri kecuali Windows Boot UEFI loader. (Ini adalah salah satu entri yang memungkinkan W8 untuk boot). Saya kemudian menjalankan "update-grub", dan berakhir dengan menu boot yang jauh lebih baik, dan dapat mem-boot OS.

pengguna200241
sumber