UEFI bios'un Windows değil GRUB'u nasıl başlatacağı?


23

TL; DR, düzenlemeye eklendi:

Soru:

Aynı UEFI önyükleme bölümünde BIOS'un Windows Boot Manager yerine GRUB'u tercih etmesini nasıl sağlayabilirim?

Sorun Grub'la değil; Grub BIOS'u başlattığında doğru olanı yapar. Windows UEFI önyükleme ve Grub UEFI önyükleme önyüklenebilir olduğundan sorun "disk önyüklenebilir değil" ile değil. Sorun, BIOS'un önyüklemeyi seçtiği UEFI önyüklemesinin seçilmesidir.

Yeni bir bilgisayar kuruyorum ve varsayılan olarak Ubuntu'ya önyükleme yapmasını istiyorum, ancak önyükleme sırasında Windows'u seçme seçeneğine sahip. Bu, özellikle güç kesilip geri gelirse önemlidir; Evde bile olmayacağım.

Dahili NVMe diskime Ubuntu 17.04 yükleyerek, diskin yarısını kullanmak için GPT ile ayrılmış ve ayrı bir UEFI önyükleme bölümü ile başladım. GRUB iyi çalışıyor ve GRUB'un ne bildiğini seçebileceğim başlangıçta GRUB önyükleme menüsünü görüyorum.

Sonra Windows 10 Pro'yu yakın zamanda indirilen bir ISO'dan yükledim. Windows Boot Manager'ı aynı UEFI bölümüne yükledi ve Ubuntu'yu sağlam bıraktı (harika!) Ve bu da Windows 10'a iyi önyükleme yapıyor.

Ancak, UEFI ürün yazılımının açılışta GRUB yerine Windows Boot Manager'ı hemen seçmesini sağlayan bir şey yaptı. Linux'u şimdi önyüklemenin tek yolu BIOS önyükleme yöneticisini (BIOS'umdaki F11) kullanmak ve GRUB önyükleme yükleyicisini manuel olarak seçmektir. UEFI BIOS, UEFI bölümünde birden çok önyüklenebilir yükleme olduğunu bilir, çünkü önyükleme yöneticisinde aralarından seçim yapabilirim. Ancak, UEFI BIOS'un ayarlar menüsünde olduğumda, önyükleme önceliği seçiminde "UEFI dahili sürücümü önyükleme" yi seçmeme izin veriyor - bu bölümdeki hangi önyükleme yükleyicisini kullanmamı seçmeme izin vermiyor . Ve varsayılan olarak, GRUB'u değil Windows'u seçer.

Internet (ve bu site) bunu düzeltmenin eski yolunun update-grub(GRUB Windows'u tanır) ve sonra grub-install(GRUB'u cihaza geri koymak için) olduğunu söyledim, ancak ne yazık ki, hala şu şekilde davranıyor: BIOS'un varsayılan olarak Windows Boot Manager'ı seçtiği yukarıda açıklanmıştır. ( update-grubWindows Önyükleme Yöneticisi yüklemesini bulur ve bunu menüye ekler ve UEFI önyükleme yöneticisinde GRUB bölümünü manuel olarak seçtiğimde bu menü öğesi çalışır.)

GRUB'u UEFI önyükleme bölümümdeki "varsayılan" önyükleme yapmak için ne yapabilirim?

MSI X399 Karbon anakart kullanma.

İkinci düzenleme: Bir yanıtın yorumunda doğru cevaptan bahsedildiği için burada tekrarlayacağım:

"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.

Sadece önce Windows'u sonra Linux'u kurmalısınız. Tam tersi değil. Tam tersi bir sorunum var. Güç kesildikten sonra geri döndüğünde, bilgisayarım gruba giriyor ve Linux'a açılıyor, smh. Tho bir şey, her sistemi kendi sürücü var olmasıdır. Önyükleme sırasında, Linux ve Grub ile sürücüyü seçiyorum.
dmb

1
Başkalarının önerdiği şeyleri kaç kişinin önerdiği şaşırtıcı ve zaten orijinal yazımda veya aşağıdaki yorumlarda işe yaramadığını söylemiştim. Doğru çözüm, Windows yönetici kabuğunda "BCDEDIT" idi. Diğer önerilerin hiçbiri bunu çözmedi (ve çoğu, soruma göre zaten denemiştim.)
Jon Watte

Yanıtlar:


22

Bunu yapmanın birkaç farklı yolu vardır, bunlar arasında:

  • EFI kurulum yardımcı programı - Çoğu EFI , önyükleme sırasında özel bir tuşa basarak erişebileceğiniz kurulum yardımcı programları sağlar (Esc, Del veya tipik olarak bir işlev tuşuna; ancak hangi tuş bir sistemden diğerine değişir). Bunlar genellikle, ancak her zaman değil, önyükleme sırasını ayarlamak için bir yol sağlar. Ürün yazılımınız böyle bir seçenek sunuyorsa, GRUB'u en üst konuma taşımak için onu kullanabilmeniz gerekir. ( ubuntuBu dağıtımdan kurmuş olmanız koşuluyla GRUB'un çağrılması olasıdır .)
  • Bir EFI kabuğu - Arch Linux wiki'debcfg açıklandığı gibi komutu bir EFI sürüm 2 kabuğunda kullanabilirsiniz . Sisteminiz zaten erişimi kolay bir kabukla kurulmamışsa, bu yaklaşımın kullanılması diğerlerinden daha zor olacaktır, ancak OS-agnostiktir.
  • EasyUEFI - Üçüncü taraf Windows EasyUEFI programının, istediğinizi yapmanın en kolay yolu olması muhtemeldir. Sen tıklayabilirsiniz ubuntuEasyUEFI listesinde girişi ve üst tarafına taşınır.
  • bcdedit- Windows bcdeditkomutu NVRAM tabanlı önyükleme sırasını değiştirebilir. Özellikle, bir Yönetici Komut İstemi penceresi açmak ve bcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi( bcdedit /set "{bootmgr}" description "ubuntu"açıklamayı mantıklı tutmak için isteğe bağlı olarak bunu takip etmek) hile yapmalıdır.
  • efibootmgr- Bu Linux aracı önyükleme sırasını ayarlayabilir. sudo efibootmgrSeçenekleri görmek için tek başına yazarak başlayın . Girdiyle Boot####ilişkilendirilmiş sayıyı ( ) ubuntuve geçerli önyükleme sırasını ( BootOrderhatta) not edin. Ardından seçeneği ubuntukullanarak üstteki girişle yeni bir önyükleme sırası girebilirsiniz -o. Örneğin, geçerli önyükleme sırası 0000.0003.0007.0004 ve ubuntu0007 ise, sudo efibootmgr -o 0007,0000,0003,0004önyükleme sırasını ayarlamak için yazın .
  • refind-mkdefault- Bu komut dosyası rEFInd ile birlikte gelir ve önceki yordamı otomatikleştirmenin bir yoludur. REFInd kullanmıyorsanız, komut dosyasını buradan indirmeniz ve yürütülebilir ( chmod a+x refind-mkdefault) yapmanız gerekir . Daha sonra GRUB'u varsayılan önyükleme girdisi yapmak için sudo ./refind-mkdefault -L ubuntuveya olarak çalıştırın sudo ./refind-mkdefault -L shimx64.

Bu seçeneklerin herhangi birinde potansiyel sorunlar ve komplikasyonlar vardır. En olası karmaşık faktör, eski veya alternatif ubuntuönyükleme girişleri olup olmadığıdır . Doğru olanı önyükleme sırasında en üst konuma taşımanız önemlidir; yanlış olanı taşırsanız, davranışta değişiklik olmaz veya önyükleme yapmayı zorlaştıran işlevsel olmayan bir önyükleme ile sonuçlanırsınız. Kullanırsanız efibootmgr, BootCurrentçizgi hangi seçeneği varsayılan olarak ayarlamanız gerektiğini söylemenize yardımcı olabilir.

Bunu aşmanın başka yolları da var. Örneğin, GRUB'un ( Önyükleme Onarımı veya üzerinden grub-install) yeniden yüklenmesi hile yapmalıdır. Bu yaklaşımlar, bilinen bir GRUB yapılandırmasına zarar verme riski taşır.

Ayrıca bazı EFI'ların hatalı olduğunu ve GRUB'un güvenilir bir şekilde önyüklenmesini zorlaştırabilecek başka sorunların da olduğunu unutmayın. Bu tür sorunlarla karşılaşırsanız, AskUbuntu'daki bu soruları ve cevaplarını kontrol etmek isteyebilirsiniz:


Soruda açıkladığım gibi, EFI kurulum yardımcı programı ubuntu'yu varsayılan olarak seçmeme izin vermedi, ancak bunu manuel önyükleme menüsünde yapmama izin verdi. Sadece sürücüyü seçmeme izin verdi ve sonra Windows'u bundan başlattı. efibootmgr önyükleme sırasını değiştirmeye çalıştı, ancak BIOS yeniden başlatmaya dikkat etmedi. EasyBCD çalışmadı - daha fazla menü öğesi eklememe izin vermedi. Ancak, bir yönetici kabuğundaki "BCDEDIT" gerçekten işe yaradı, bu nedenle bu seçenek için teşekkürler!
Jon Watte

EasyBCD ve EasyUEFI'nin aynı satıcıdan iki farklı program olduğunu unutmayın. Ne yazık ki EasyUEFI'nin ücretsiz sürümü artık mevcut değil - sadece deneme sürümleri sunuluyor. Bununla birlikte, BOOTICE, UEFI önyükleme ayarlarını düzenleyebilen başka bir ücretsiz programdır: orijinal Çince site , açıklama ve ekran görüntüleri olan İngilizce site .
telcoM

Kullanmak sudo efibootmgr -n 0002mevcut SO sırasını değiştirmek çok daha iyidir. Geçerli GRUB girişlerinize dokunulmadan bir dahaki sefere değişir BootNext: 0001ve ayrılır BootCurrent: 0002. Sadece bir bash ekleyin chmod +xve yeniden başlatma komutu boyunca bu komutu kaydırın.
m3nda

3

Son birkaç haftadır bu problemi yaşıyorum. Bu seçenekleri kullanarak anladım. Bunlardan herhangi birini yapmadan önce BIOS / UEFI'nize girmenizi ve önyükleme sırasını kontrol etmenizi ve grubun ilk önce nereye kurulduğundan emin olmanızı öneririm.

Nasıl gördüğüm iki seçeneğiniz var.

seçenek 1

Size tavsiyem, önce Windows 10'u yüklemektir . Sonra ubuntu'yu yükleyin. Ama biliyorum ki "yazılımınızı yeniden yükleyin" demenin biraz tabu olduğunu, bu yüzden ben de bir alternatif sunacağım.

seçenek 2

Mevcut kurulumunuzla Live Ubuntu CD / flash sürücüsüne önyükleme yapmanızı ve kurmanızı ve çalıştırmanızı tavsiye ederim boot-repair. "Önerilen Onarım" seçeneğini tıklayın ve verilen talimatları izleyin. Dikkatlice gözden geçirin ve çalıştırmadan önce tüm komutları okuyun. Bu, mevcut grub kurulumunu, umarız düzeltmesi gereken yeni bir kurulumla geçersiz kılar.


Öneriler için Thansk, ama ben zaten bunları denemişti. Bir şeyleri ilk yüklediğimde, önce Windows 10'a, sonra Ubuntu 17.04'e, ardından Boot Repair'e gittim. Hala Windows varsayılanıydı ve sonra önce Ubuntu ile sildim ve yeniden kurdum, bu da beni şimdi bulunduğum yere getiriyor.
Jon Watte

UEFI'nizdeki önyükleme sırasını ayarlamaya çalıştığınızı varsayıyorum, değil mi?
taterbotz

Evet, dediğim gibi: "UEFI BIOS kurulum menüsünde olduğumda, önyükleme önceliği seçiminde" UEFI dahili sürücümü önyükleme "yi seçmeme izin veriyor - hangi önyükleme yükleyicisini seçmeme izin vermiyor kullanmak için bu bölümde "
Jon Watte

2

Birkaç çözüm görüyorum:

  1. Varsayılanı ayarlamak için UEFI'nizi düzenleyin. Linux'ta kullanabilirsiniz efibootmgr. Windows'da emin değilim ama sanırım UEFI'yi yapılandırmanıza izin veren bir kurtarma seçeneğine önyükleme yapabilirsiniz. Veya rEFInd gibi bir şey yüklemeyi tercih edebilirsiniz.
  2. EFI bölümündeki klasör adını değiştirin. Bence bir klasörü tercih ediyor ya da geri dönüyor boot.
  3. Sadece Windows önyükleme yükleyicisini kullanın, diğer işletim sistemlerini önyüklemek için yapılandırılabileceğini düşünüyorum.

Efibootmgr kullanarak önyükleme düzenini düzenleyebilirim, ancak BIOS bunu yok sayar ve yine de Windows'u başlatır. Önyükleme klasörü adının değiştirilmesi (hatta grubun "önyükleme" ye kopyalanması) Microsoft olanı kaldırana kadar çalışmaz. Windows önyükleme yükleyicisi, Windows olmayan işletim sistemlerini (en azından imzasız olanları değil) önyüklemez
Jon Watte

@JonWatte Belki uefi bootloader farklıdır, ubuntu'yu 32-bit bios makinesinde windows 7 bootloader'dan başlattığımı hatırlıyorum. Belki hala grub2 zincir yükleyebilir? Çünkü efibootmgrişe yaramıyor, MSI almayacağım biliyorum.
jiggunjer

Evet, bu MSI anakartın başka sorunları da var ve bir Gigabyte karşılığında Amazon'a geri dönüyor.
Jon Watte

1

Ben sadece annem kurulu benim laptop değiştirdi ve grub tamamen kayboldu.

Bunun sabit olarak işaretlendiğini biliyorum ama sizin için yararlı olabileceğini düşündüm.

Grub'un bir önyükleme seçeneği olarak görünmesini sağlamak için. Biyografilere EFI eklemem gerekiyordu.

BIOS'umdaki "önyükleme listesi seçeneğine" gittim. "Önyükleme Seçeneği Ekle" yi tıklayın (bunun bios'a özel olduğunu biliyorum). Bu bana dosya adı için bir seçenek verdi, bu da benim durumumdu \EFI\ubuntu\grubx64.efive bir isim verdigrub

Daha sonra grubgirişi önyükleme sırasının üstüne taşıdım ve şimdi varsayılan giriş olarak görünüyor.

Demek istediğim, sadece doğru EFI dosyasını bulmanız ve önyükleme sırasınızın / siparişinizin üstüne taşımanız gerekebilir.


1

Yukarıdaki seçeneklerin hiçbiri eski HP 655 dizüstü bilgisayarda çalışmıyordu. Çözüm, Windows önyükleme yöneticisini etkin olmayan olarak ayarlamaktır:

sudo -s
efibootmgr
efibootmgr -b 4 --inactive

4 yerine windows boot manager numaranızı yazın. Efibootmgr'u tekrar çalıştırın ve hareketsizliği işaretlemek için yıldızın kaybolduğunu görmelisiniz.

Bilgisayarımdan sonra grup önyükleme menüsüne önyükleme yapar ve pencereler yine de seçilebilir.


-2

Olası bir çözüm / etc / default / grub dosyasını el ile düzenlemek olabilir.

sudo vim /etc/default/grub

Varsayılan giriş GRUB_DEFAULT=/ etc / default / grub ayarıyla belirlenir . İlk "menü girişi" değeri "0" dır. Ubuntu önyükleme ekranındaki ikinci girdiyse GRUB_DEFAULT = 1 olarak ayarlayın.

Daha sonra grub config'i güncellemek için komutu çalıştırmanız gerekir: update-grub

Başka bir seçenek de kurulum grub-customizer ve önyükleme önceliğini yapılandırmak için GUI'sini kullanmak olacaktır.


Sorun Grub'da değil. Mesajda söylediğim gibi, BIOS'un Grub UEFI önyükleme seçeneğini seçmesini sağlayabilirsem, Windows veya Ubuntu'yu seçmeme izin veren Grub önyükleme menüsünü alıyorum. Bu, varsayılan olarak istediğim menüdür. Ne yazık ki, BIOS varsayılan olarak Windows Önyükleme Yöneticisini seçer.
Jon Watte

Söylediğim gibi, Ubuntu'yu başlatan ilk sistem olarak yapılandırarak grub önyükleme sırasında düzeltebilirsiniz. GUI kullanarak bunu yapmak için grub-customizer kullanın. linuxandubuntu.com/home/…
Bay Raspberry

Yine, Grub BIOS tarafından bile başlamıyor. Grub önyükleme sırası önemli değil. GRUB_DEFAULT önemli değil. Buradaki sorun bu değil.
Jon Watte
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.