Grub Windows bölümüne yüklendiğinde Windows 7'ye nasıl önyükleme yapılır?


15

Orijinal başlık: Grub ile aynı bölümdeki önyükleme pencerelerini 7 nasıl çözebilirim?

Bu problemi iki ya da üç gündür araştırıyorum ama boş buldum.

Temel olarak, bölüm 1 Windows 7 ve bölüm 2 Ubuntu 12.04'tür. Ubuntu'ya 2. bölüme kurmasını ve 1. bölüme GRUB kurmasını söyledim ve bu iyi çalışıyor. Ama şimdi sorun, Windows 7'yi önyükleyemem. Bunu seçtikten sonra GRUB menüsüne geri dönüyor.

Araştırdıklarımdan, Windows 7 "mbr" veya önyükleyiciyi \windows\system32\winload.exe(Windows 7 onarım diski kullanmadan) önyüklemek için GRUB'u düzenleyebilirsem , sorunum çözülecek. Bu mümkün mü?


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


Komuttan çıktı 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"

Yanıtlar:


14

Aşağıda açıklanan önyükleme onarım aracını kullanarak bir Bootinfo Özet raporu oluşturabilir ve ardından rapora bağlantıyı gönderebilir misiniz?

Önyükleme yapılandırmanız hakkında bazı ayrıntılar verdiğinizi biliyorum. Ancak, istediğim rapor daha ayrıntılı bilgiler içeriyor ve bize GRUB'u kullanarak Windows'u önyükleyemediğinizin daha iyi anlaşılmasını sağlayabilir.

"Bootinfo Özeti" sağlamak için önyükleme onarımını kullanma


Hala Ubuntu'yu önyükleyebildiğiniz için, Komut'u kullanarak Boot-Repair aracını yükleyip çalıştırabilir apt-getve ardındanCreate a Bootinfo summary .

boot-repairAracı yüklemek için bir terminal penceresinde aşağıdaki komutları çalıştırın .

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Bu tamamlandıktan sonra, komutu girin boot-repair , aracı başlatmak için .
  2. Hafif bir gecikmeden sonra boot-repair, en yeni sürümünü indirmek isteyip istemediğinizi soracaktır. En yeni sürümü kurduğunuzdan, yanıtlayın No.
  3. Paketi boot-repairyüklemeniz istenirse pastebinit, ile yanıt verin Yes.
  4. Araç şimdi sisteminizi tarar ve (sonunda) aşağıdaki resimde gösterilen pencereyi görüntüler. Tıklayın Create a Bootinfo summarykutu / düğme. Bu, sisteminizin önyükleme yapılandırması hakkında bilgi toplar, ancak herhangi bir değişiklik yapmaz.


    İlk Önyükleme Onarım Penceresi

  5. Bootinfo özeti oluşturulduktan sonra, boot-repairbu gibi görünmelidir bir URL içeren bir mesaj görüntüler: http://paste.ubuntu.com/123456/.

    Lütfen sorunuzu güncelleyin / düzenleyin ve bu URL'yi ekleyin. Bu bağdaki işaretteki bilgiler, (umarım) sorunu teşhis etmemize yardımcı olacaktır.

Bence Windows bölümünün VBR üzerine yazmak bu soruna neden oldu.

Anladığım kadarıyla bir işletim sistemi başlatmanın birkaç adımı var. Sizin durumunuzda, aşağıdaki adımlar gibi bir şey olduğunu düşünüyorum.

  1. Bilgisayarınızdaki BIOS, sabit sürücünün ilk sektöründe kodu çalıştırmayı dener. Bu ilk sektör genellikle MBR (Ana Önyükleme Kaydı) olarak adlandırılır .
  2. MBR'ye ek olarak, her bölüm bir önyükleme kaydına da sahip olabilir. Genellikle Birim Önyükleme Kaydı veya VBR olarak adlandırılır . Sabit diskinizdeki MBR, denetimleri Windows bölümünüz olan bölüm 1'in VBR'sine aktarır.
  3. Windows, bir bölümün VBR'sinin Windows 7 gibi bir işletim sistemini önyüklemek için bir sonraki adımı atmasını bekler. Bu nedenle, Windows orijinal olarak, kontrolü bootmgrWindows bölümünüzdeki Windows programına aktaracak bir VBR yükleyecektir .

    Ancak, Ubuntu'ya GRUB'u Windows bölümüne yüklemek için bir program yüklemesi talimatı verdiğinizde, GRUB'un Windows VBR'yi kendi ile değiştirdiği görülüyor. Bu GRUB VBR, GRUB önyükleme menüsünü görüntüler.
  4. GRUB'un şu anda Windows'u önyüklemek için kullandığı talimatlar esas olarak VBR'yi Windows bölümünde bulmak ve kontrolü ona aktarmak içindir. Windows bölümündeki VBR, GRUB'un VBR'sidir. Kontrolü sadece (yeniden) aktarmak GRUB önyükleme menüsünü görüntüler.

Ne yazık ki, henüz bunu düzeltmek için en iyi yol ne olacağını emin değilim. Windows'u önyükleme sorununu çözmeye çalıştığımızda GRUB'u kırmamıza ve bilgisayarınızda herhangi bir şey önyükleme yapmamıza dikkat etmek istiyoruz.

Aşağıda referans için Bootinfo Özetinizdeki bazı bilgilerin bir kopyası bulunmaktadır. Yukarıdaki yorumlarım bu bilgilere dayanmaktadır.

============================= 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

Windows 7'yi önyüklemek için olası bir geçici çözüm

Aşağıda, Windows 7'yi başlatmanıza izin verebilecek GRUB önyükleme komutlarınızı düzenlemek için bir öneri var, bunun işe yarayacağından emin değilim, ama denemeye değer görünüyor.

Şu anda, grub.cfgWindows 7'yi başlatmak için aşağıdaki GRUB önyükleme komutlarını kullanıyorsunuz.

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
}

Bunu değiştirmeyi denemenizi ve bunun yerine bu komutları kullanmanızı öneririm.

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
}

İşte bunu yapmak için adımlar.

  1. Sisteminizi GRUB menüsüne önyükleyin.
  2. GRUB önyükleme menüsü girişini seçin (vurgulayın) Windows 7 (loader) (on /dev/sda1).
  3. eWindows 7 için GRUB önyükleme komutlarını düzenlemek için basın .
  4. menuentryYukarıda gösterildiği gibi bu komut listesinde iki değişiklik yapın .
    • Komut ekle insmod ntldr
    • Komutu olarak
      chainloader +1
      değiştirin
      ntldr ($root)/bootmgr
  5. Bu düzenlenmiş komutları kullanarak önyükleme yapmak için Ctrl+ Xveya tuşuna basın F10.

Not 1:

Yukarıdaki geçici çözüm Windows 7 önyükleme menüsünü yüklemeyi başarırsa, bunu yarı kalıcı hale getirebilirsiniz.

  1. Kullanımı sudodüzenlemek için dosyayı /etc/grub.d/40_customikinci ve ekleyin değiştirilmiş menuentryyukarıda gösterilen. (Bunu yaparsanız, bu "özel" girişin başlığını da değiştirmenizi öneririm.)
  2. Özelleştirilmiş girişinizi içerecek sudo update-grubşekilde güncelleme komutunu çalıştırın /boot/grub/grub.cfg. (Önyükleme yaptığınızda GRUB menüsünün altında olacaktır.)

Yukarıdaki öneriyi sadece kısmen pişmiş bir çözüm olarak görüyorum. Daha iyi bir çözüm, GRUB'un önyükleme yeteneğini de bozmadan Windows VBR'yi Windows bölümüne geri yüklemektir .

Sanırım ... ama% 100 emin değilim ... Windows kurtarma komutunun bootsectbunu yapmak için kullanılabileceğinden eminim . Risk almak istiyorsanız, bunu yapmanın olası bir yolu aşağıda özetlenmiştir.

  • Windows'u başlatırken F8, Advanced Boot Optionsmenüyü açmak için tuşuna basın .
  • Repair Your ComputerGirişi seçin .
  • Bir sonraki pencereye ulaşıncaya kadar yürüyün System Recovery Options.
  • seçmek Command Prompt
  • Komutu çalıştır bootsect /nt60 C:

Ancak, biraz daha beklemek ve yukarıdaki denemeyi riske atmadan önce sorunuza başka hangi cevapları aldığınızı görmek isteyebilirsiniz.

Not 2:

Başka şeyler ararken, AskUbuntu'da sorununuzla ilgili başka iki soruya rastladım.

  1. Ubuntu 11 yüklendikten sonra Windows 7 önyükleme yapmıyor
  2. Ubuntu yüklendikten sonra Windows 7 önyükleme yapmıyor

Bu soruların ne kadar yardım sağlayacağından emin değilim. İkinci sorunun cevabı bootrec /fixboot, Windows bölümü için VBR'yi geri yüklemek için komutu kullanmaktı . Bu sorudan anladığım kadarıyla, bootrec /fixbootkomutun kullanılması sorunu çözdü.

Ama ikinci soru ısrar bootrec /fixbootetmedi değil sorunu çözmek.

(Orada neler olabileceğine dair beni çırpın.)


Cevabın için teşekkürler. Tamam, şanslıyım, ama başkaları bunu bilmiyorsa, şimdi biliyorlar. Boot-Repair-Info'dan url http://paste.ubuntu.com/981952/
Sim

1
Sorunun GRUB'u Windows bölümünüze yüklemesinden kaynaklandığını düşünüyorum. Cevabımın güncellenmesine bakın.
irrasyonel John

Sence ne yapabilirim? Bootrec kullanmalı ve grub'u yeniden yüklemeli miyim? Ya da başka bir yol var mı?
Sim

Windows önyüklemesini her zamanki gibi onarabilirsiniz, bittiğinde Windows size sormadan otomatik olarak önyükleme yapar (Windows Linux'u tanımıyor). Bu sorun
çözüldüğünde

Cevabıma olası geçici bir geçici çözüm önerisi eklendi.
irrasyonel John

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Windows'u (hd0,1) dışındaki bir bölüme yüklediyseniz, Windows'a önyükleme yapmak için drivemap komutunu kullanmanız gerekir. Chainloader +1 veya ntldr / bootmgr her ikisi de Windows 7'yi önyüklemek için kullanılabilir.

Yaptığınız, 1. bölümün VBR'sini değiştirdiğiniz; yükleme CD'sinden önyükleme yaptığınızda cmd cinsinden windows kurtarma modunda bu komutları uygulayarak geri yükleyebilirsiniz:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Aslında işe yarayan tek cevap bu. +1
daisy

1

Gerçekten "(UN) önyükleme)" hakkında bilmiyorum Windows Onarım disk kullanarak Windows düzeltmeye çalışın shoud ( yardımcı programı Command Promptçalıştırmayı seçin bootsect.exe. Bootsect önyükleme klasörü içinde yer almaktadır, bu nedenle dizininizi değiştirin boot. Şimdi çalıştırın bootsect /nt60 C:\(olmadan tırnak işaretleri) C:bölümünde Windows 7 yüklüyse . Alternatif olarak, "bootsect / nt60 SYS" veya "bootsect / nt60 ALL" çalıştırabilirsiniz)

Ardından GRUB'u yeniden yükleyin.


Cevabınız için teşekkür ederim. Ne demek istedim sonra grub bot ama windows değil demekti. Araştırma, insanlar mbr için önyükleme onarmak için "bootrec.exe / fixboot" sonra "bootrec.exe / fixmbr" kullanmamız gerektiğini söylüyor. Metodunuz bootrec ile aynı mı yoksa farklı mı?
Sim

Benim tecrübeme göre, Ubuntu kurulumundan sonra çift önyükleme olarak, Windows'u yeniden başlatmada çalıştırmak ve kendi başına onarım yapmak, daha sonra Ubuntu'ya geri dönmek daha iyi olacaktır.
beeju

Doğru. Windows için EasyBCD kullanıyorum
Sim

0

GRUB, BootInfo'nuzun gösterdiği gibi Windows bölümü önyükleme kesiminize (PBR) yüklenir:

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

Bu, Windows'un önyükleme yapmasını önler.

Çözüm burada güzel açıklanmıştır: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

Aynı sorunu yaşadım ve başkalarına yardımcı olması umuduyla benim için çalışan çözümü onaylamak istiyorum ...

Buradaki değişiklikleri yansıtmak için grub.cfg'yi düzenledim:

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
}

Yani, ekledim ...

insmod ntldr

ve son satırı ... olarak değiştirdi

ntldr ($ root) / bootmgr

VBR'yi kısa süre içinde geri yüklemeye çalışacağım ve nasıl ortaya çıktığını rapor edeceğim.


0

Windows 10 önyükleme sorununu çözdüm ....

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 farklı olabilir


2
Bunun gerçekten bu soruya ait olduğundan emin değilim ...
Zanna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.