Bagaimana cara boot ke Windows 7 ketika grub diinstal pada partisi Windows?

15

Judul asli: Bagaimana saya bisa memecahkan (tidak) mem-boot windows 7 pada partisi yang sama dengan grub?

Saya telah meneliti masalah ini selama dua sampai tiga hari tetapi saya sudah sampai kosong.

Pada dasarnya, partisi 1 adalah Windows 7 dan partisi 2 adalah Ubuntu 12.04. Saya menyuruh Ubuntu untuk menginstal ke partisi 2 dan untuk menginstal GRUB pada partisi 1 dan itu berfungsi dengan baik. Tapi masalahnya sekarang adalah saya tidak bisa boot Windows 7. Ini baru kembali ke menu GRUB setelah saya memilihnya.

Dari apa yang saya teliti, jika saya dapat mengedit GRUB untuk mem-boot Windows 7 "mbr" atau bootloader \windows\system32\winload.exe(tanpa menggunakan disk perbaikan Windows 7), masalah saya akan terpecahkan. Apakah ini mungkin?


URL Boot-Repair-Info adalah http://paste.ubuntu.com/981952/


Output dari perintah sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"
Sim
sumber

Jawaban:

14

Bisakah Anda membuat laporan Ringkasan Bootinfo menggunakan alat perbaikan boot seperti yang dijelaskan di bawah ini dan kemudian mengirim tautan ke laporan?

Saya tahu Anda telah memberikan beberapa detail tentang konfigurasi boot Anda. Namun, laporan yang saya minta berisi informasi yang lebih terperinci dan mungkin memberi kami pemahaman yang lebih baik tentang mengapa Anda tidak dapat mem-boot Windows menggunakan GRUB.

Cara menggunakan boot-repair untuk memberikan "Ringkasan Bootinfo"


Karena Anda masih dapat mem-boot Ubuntu, Anda dapat menginstal dan menjalankan alat Boot-Repair menggunakan apt-getperintah dan kemudian menggunakannya untuk Create a Bootinfo summary.

Jalankan perintah di bawah ini di jendela terminal untuk menginstal boot-repairalat.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Setelah itu selesai, masukkan perintah boot-repairuntuk memulai alat.
  2. Setelah sedikit tertunda, Anda boot-repairakan ditanya apakah ingin mengunduh versi terbarunya. Karena Anda baru saja menginstal versi terbaru, jawab No.
  3. Jika boot-repairdiminta untuk menginstal pastebinitpaket, balas dengan Yes.
  4. Alat sekarang akan memindai sistem Anda dan (akhirnya) menampilkan jendela yang ditunjukkan pada gambar di bawah ini. Klik pada Create a Bootinfo summarykotak / tombol. Ini akan mengumpulkan informasi tentang konfigurasi boot sistem Anda, tetapi tidak akan membuat perubahan.


    Jendela Boot-Perbaikan Awal

  5. Ketika ringkasan bootinfo telah dibuat, boot-repairakan menampilkan pesan yang berisi URL yang akan terlihat seperti ini: http://paste.ubuntu.com/123456/.

    Harap perbarui / edit pertanyaan Anda dan tambahkan URL ini. Informasi dalam pastebin yang ditunjukkan oleh tautan ini akan (saya harap) membantu kami mendiagnosis masalahnya.

Saya pikir penulisan VBR partisi Windows menyebabkan masalah ini.

Pemahaman saya adalah bahwa ada beberapa langkah untuk memulai sistem operasi. Dalam kasus Anda, saya pikir sesuatu seperti langkah-langkah di bawah ini terjadi.

  1. BIOS di komputer Anda mencoba menjalankan kode di sektor pertama hard drive. Sektor pertama ini biasanya disebut sebagai MBR (Master Boot Record) .
  2. Selain MBR, setiap partisi juga dapat memiliki catatan boot. Ini sering disebut sebagai Volume Boot Record atau VBR . MBR pada hard drive Anda mentransfer kontrol ke VBR partisi 1, partisi Windows Anda.
  3. Windows mengharapkan VBR partisi untuk mengambil langkah selanjutnya menuju mem-boot sistem operasi seperti Windows 7. Jadi Windows semula akan menginstal VBR yang akan mentransfer kontrol ke bootmgrprogram Windows di partisi Windows Anda.

    Namun, ketika Anda menginstruksikan Ubuntu menginstal program untuk menginstal GRUB ke partisi Windows, GRUB tampaknya telah menggantikan Windows VBR dengan miliknya. GRUB VBR ini menampilkan menu boot GRUB.
  4. Instruksi GRUB yang saat ini digunakan untuk mem-boot Windows pada dasarnya adalah untuk menemukan VBR di partisi Windows dan mentransfer kontrol ke sana. VBR di partisi Windows adalah GRUB's VBR. Mentransfer kontrol ke sana hanya (kembali) menampilkan menu boot GRUB.

Sayangnya, saya belum yakin apa yang akan menjadi cara terbaik untuk memperbaikinya. Kami ingin berhati-hati agar kami tidak merusak GRUB dan membuatnya tidak mungkin untuk mem-boot apa pun di komputer Anda ketika kami berusaha untuk memperbaiki masalah mem-boot Windows.

Di bawah ini adalah salinan dari beberapa informasi dari Ringkasan Bootinfo Anda untuk referensi. Komentar saya di atas didasarkan pada informasi ini.

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

Solusi yang memungkinkan untuk mem-boot Windows 7

Di bawah ini adalah saran untuk mengedit perintah boot GRUB Anda yang memungkinkan Anda untuk mem-boot Windows 7. Saya tidak yakin ini akan berhasil, tetapi sepertinya patut dicoba.

Saat ini, Anda grub.cfgmenggunakan perintah boot GRUB di bawah ini untuk mem-boot Windows 7.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Saya menyarankan Anda mencoba mengubah ini dan menggunakan perintah ini sebagai gantinya.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Inilah langkah-langkah untuk melakukan ini.

  1. Boot sistem Anda ke menu GRUB.
  2. Pilih (sorot) entri menu boot GRUB Windows 7 (loader) (on /dev/sda1).
  3. Tekan euntuk mengedit perintah boot GRUB untuk Windows 7.
  4. Buat dua perubahan pada daftar perintah ini seperti yang diilustrasikan di menuentryatas.
    • Tambahkan perintah insmod ntldr
    • Ubah perintah
      chainloader +1
      menjadi
      ntldr ($root)/bootmgr
  5. Tekan Ctrl+ Xatau F10untuk boot menggunakan perintah yang diedit ini.

Catatan 1:

Jika solusi di atas berhasil memuat menu boot Windows 7, maka Anda bisa membuatnya semi-persisten dengan

  1. Menggunakan sudountuk mengedit file /etc/grub.d/40_customdan menambahkan yang kedua, dimodifikasi yang menuentryditunjukkan di atas. (Jika Anda melakukan ini, saya juga menyarankan Anda mengubah judul entri "khusus" ini.)
  2. Jalankan perintah sudo update-grubuntuk memperbarui /boot/grub/grub.cfguntuk memasukkan entri khusus Anda. (Ini akan berada di bagian bawah menu GRUB saat Anda boot.)

Saya akan melihat saran di atas hanya sebagai solusi yang sebagian dipanggang. Solusi yang lebih baik adalah mengembalikan VBR Windows ke partisi Windows tanpa juga menghancurkan kemampuan GRUB untuk mem-boot.

Saya pikir ... tetapi saya tidak 100% yakin ... bahwa perintah pemulihan Windows bootsectdapat digunakan untuk melakukan ini. Jika Anda ingin mengambil risiko, salah satu cara yang mungkin untuk melakukannya dijelaskan di bawah ini.

  • Saat mem-boot Windows, tekan F8untuk membuka Advanced Boot Optionsmenu.
  • Pilih Repair Your Computerentri.
  • Berjalan melalui jendela berikutnya sampai Anda mencapai System Recovery Options.
  • Pilih Command Prompt
  • Jalankan perintah bootsect /nt60 C:

Tetapi Anda mungkin juga ingin menunggu sedikit dan melihat jawaban lain apa yang Anda dapatkan untuk pertanyaan Anda sebelum mengambil risiko mencoba hal di atas.

Catatan 2:

Saat mencari hal-hal lain, saya menemukan dua pertanyaan lain di AskUbuntu yang terkait dengan masalah Anda.

  1. Windows 7 tidak akan bisa boot setelah menginstal Ubuntu 11
  2. Windows 7 tidak bisa boot setelah instalasi Ubuntu

Saya tidak yakin berapa banyak bantuan yang diberikan pertanyaan ini. Jawaban untuk pertanyaan kedua adalah menggunakan perintah bootrec /fixbootuntuk mengembalikan VBR untuk partisi Windows. Pemahaman saya dari pertanyaan itu adalah bahwa menggunakan bootrec /fixbootperintah memecahkan masalah.

Tetapi pertanyaan kedua menegaskan bahwa bootrec /fixbootitu tidak menyelesaikan masalah.

(Mengalahkan aku apa yang mungkin terjadi di sana.)

irasional John
sumber
Terimakasih atas balasan anda. Saya baik-baik saja memilikinya, beruntung, tetapi jika orang lain tidak mengetahuinya, mereka melakukannya sekarang. Url dari Boot-Repair-Info adalah http://paste.ubuntu.com/981952/
Sim
1
Saya pikir masalah Anda disebabkan oleh menginstal GRUB ke partisi Windows Anda. Lihat pembaruan untuk jawaban saya.
John
Jadi menurutmu apa yang bisa kulakukan? Haruskah saya menggunakan bootrec dan menginstal ulang grub? Atau ada cara lain?
Sim
Anda dapat memperbaiki boot Windows seperti biasa, ketika itu dilakukan Windows akan secara otomatis boot tanpa meminta Anda (Windows tidak mengenali Linux). Ketika itu diperbaiki, Anda dapat mem-boot Linux dari USB dan menjalankan GRUB lagi, kali ini jangan menyentuh partisi Windows;)
pzkpfw
Menambahkan saran untuk solusi sementara yang mungkin untuk jawaban saya.
rasional John
7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Jika Anda menginstal Windows pada partisi selain (hd0,1), Anda perlu menggunakan perintah drivemap untuk boot ke Windows. Chainloader +1 atau ntldr / bootmgr keduanya dapat digunakan untuk mem-boot Windows 7.

Apa yang Anda lakukan adalah Anda memodifikasi VBR partisi 1; Anda dapat memulihkannya dengan menjalankan perintah ini dalam mode pemulihan Windows dalam cmd ketika Anda boot dari CD instalasi:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd
Kross
sumber
Ini adalah satu-satunya jawaban yang benar-benar berfungsi. +1
daisy
1

Saya tidak benar-benar tahu tentang "(UN) booting)" Anda harus mencoba untuk memperbaiki Windows Anda dengan menggunakan disk Windows Repair (pilih Command Promptuntuk menjalankan bootsect.exeutilitas. Bootsect terletak di dalam folder boot jadi ubah direktori Anda boot. Sekarang jalankan bootsect /nt60 C:\(tanpa tanda kutip) jika Anda memiliki Windows 7 pada awalnya diinstal di C:partisi. Atau, Anda dapat menjalankan "bootsect / nt60 SYS" atau "bootsect / nt60 ALL")

Kemudian instal ulang GRUB.

hardianto
sumber
Terima kasih atas balasannya. Yang saya maksud adalah grub boot tetapi bukan windows setelah saya memilihnya. Meneliti, orang mengatakan bahwa untuk memperbaiki boot untuk mbr, kita harus menggunakan "bootrec.exe / fixboot" lalu "bootrec.exe / fixmbr". Apakah metode Anda sama dengan bootrec atau berbeda?
Sim
Dalam pengalaman saya, setelah instalasi Ubuntu sebagai dual boot, akan lebih baik untuk menjalankan Windows pada reboot dan melakukan perbaikan dengan sendirinya, kemudian kembali ke Ubuntu. Saya mengikuti metode ini setiap kali dan ternyata berhasil.
beeju
Benar. Untuk windows saya menggunakan EasyBCD
Sim
0

GRUB diinstal di sektor boot partisi Windows (PBR) Anda, seperti yang ditunjukkan oleh BootInfo Anda:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

Ini mencegah Windows dari booting.

Solusi dijelaskan dengan baik di sini: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1

LovinBuntu
sumber
0

Saya memiliki masalah yang sama dan ingin mengkonfirmasi solusi yang berhasil untuk saya dengan harapan dapat membantu orang lain ...

Saya mengedit grub.cfg untuk mencerminkan perubahan di sini:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Artinya, saya menambahkan ...

insmod ntldr

dan mengubah baris terakhir ke ...

ntldr ($ root) / bootmgr

Saya akan mencoba mengembalikan VBR segera dan akan melaporkan kembali bagaimana hasilnya.

Philip
sumber
0

Mengatasi masalah boot windows 10 saya ....

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code mungkin berbeda

nkp
sumber
2
Saya tidak yakin ini benar-benar termasuk dalam pertanyaan ini ...
Zanna