GRUB'u EFI bölümüne nasıl yeniden yükleyebilirim?


32

GRUB 2'yi yeniden kurmak istiyorum ve şu talimatları buldum: Grub 2'yi Ubuntu Live CD veya USB ile Onarma, Geri Yükleme veya Yeniden Yükleme . Benim durumumda, önyükleyici EFI bölümüne kurulur. Bu kılavuzda verilen komutları kullanırsam GRUB otomatik olarak EFI bölümüne yeniden mi yüklenecek, yoksa Ubuntu'nun kurulduğu kök bölüme mi yüklenecek? Açıkçası, bunun olmasını istemiyorum.


3
Sağlanan bağlantıdaki talimatlar GRUB'u sadece eski BIOS modunda tekrar yüklemek için geçerlidir, bu durumda kullanılamaz. GRUB'u EFI BIOS modunda bir Ubuntu kurulumuna yeniden yüklemek için lütfen cevabımı okuyun. :)
cl-netbox

Çok teşekkür ederim! :) Bazı sorularım var: UEFI sistemime Ubuntu kurduğumda, bios'ta iki giriş buldum. Unic ubuntu girişine sahip olmanın bir yolu var mı? MBR bölme tablosu durumunda (yani EFI veya başka bir önyükleme bölümü yok) aşağıdakiler dışında aynı komutları kullanabilir miyim: sudo mount / dev / sd ** / mnt / boot / efi?
Generoso

İkinci Ubuntu girdisini şu şekilde silmeyi deneyebilirsiniz: sudo efibootmgr (tüm girdileri listeler) | sudo efi bootmgr -b <entry-number> -B .... ve eski BIOS kipinde GRUB'u yeniden yüklemek için şu komutları uygulayın: sudo mount / dev / sd ** / mnt | sudo grub-install --boot-directory = / mnt / boot / dev / sd * (* = disk | ** = sistem bölümü)! :)
cl-netbox 30:16

Mükemmel :) Yine de, bir UEFI sistemine ve böylece bir EFI bölmesine sahip olmak, yeni bir Windows yüklemesi yaptığımda grubun üstesinden gelmekten kaçınmanın bir yolu var mı?
Generoso

Eh, Microsoft kendi ürünleri dışında başka hiçbir şeyle ilgilenmez, bu nedenle Linux sistemlerini Windows'a zarar vermeden yükleyebilirsiniz - ne yazık ki bu böyle olmaz - yani Windows'u yükledikten sonra yüklediğinizde Ubuntu, daha sonra GRUB açılış yükleyicisini geri yüklemelisin. :)
cl-netbox 30:16

Yanıtlar:


54

GRUB açılış yükleyicisini bu şekilde EFI modunda Ubuntu kurulumunuza yeniden yükleyin ...

Ubuntu kurulum ortamından önyükleme yapın ve 'Ubuntu'yu yüklemeden dene' seçeneğini seçin.
(Kurulum ortamınızı EFI modunda önyükleyin, UEFI'nın önünde Ubuntu girişini seçin.)

Live masaüstündeyken, bir terminal açın ve şu komutları yürütün:

sudo mount /dev/sdXXX /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub  

Not: sdX= disk | sdXX= efi bölümü | sdXXX= sistem bölümü

GParted kullanan bölümleri tanımlamak için, araç kurulum ortamına dahil edilmiştir.
Komutları çalıştırdıktan sonra GRUB ayrı bir EFI bölümüne kurulacak.


+1 ama neden Ubuntu'dan kendi yüklemiyorsunuz?

1
@MarkYisri: Çok teşekkür ederim! :) Çünkü GRUB açılış yükleyicisini herhangi bir şeyi bozmadan yeniden kurmanın en güvenli yolu ve sistemin uygun şekilde açılmaması durumunda ... bunu yapmanın tek yolu! :)
cl-netbox

1
Bu çözümde, 'grub-install', EFI modunda kurması gerektiğini nereden biliyor?
user334639

3
Önemli olan, yükleme medyasını doğru önyükleme modunda başlatmaktır, yeniden yüklemek istiyorsak grub-efiUEFI modunda önyüklememiz gerekir, yeniden yüklemek istiyorsak grub-pceski modda önyüklememiz gerekir.
mook765

1
Bu benim için tek bir değişiklik dışında işe yaradı: Yaptım grub-install /dev/sdXX, yani diski değil, EFI bölümü grub grubunu yüklemek için kullanıldı ve çalıştı.
Duck Dodgers

3

benim için çalışan tek yol bu: (Sistem: sdb8, önyükleme: sdb6, efi: sdb2)

sudo mount /dev/sdb8 /mnt 
sudo mount /dev/sdb6 /mnt/boot 
sudo mount /dev/sdb2 /mnt/boot/efi

sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys

sudo chroot /mnt

grub-install --target=x86_64-efi /dev/sdb

grub-install --recheck /dev/sdb

exit &&
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt

Ne yapar --recheck? Manuel diyor delete device map if it already exists?
MrCalvin

Önyükleme girişini varsayılandan farklı bir şey çağırırsam, örneğin --bootloader-id=Ubuntu_02önyükleme başarısız olur. Grub konsolunda sadece önyükleme ... herhangi bir çözüm?
MrCalvin

Evet. grub-install --recheckgerekli görünüyor . Çalışmayan USB HDD EFI'mi düzeltti.
solsTiCe

2

Talimatlar için @ cl-netbox'a teşekkürler!

Yükseltme işleminden sonra (Linux Mint 18.2 Sonya - 18.3 Sylvia) sistemim önyükleme yapmadı, bu yüzden yukarıdaki talimatları izledim ama yine de başarılı olamadım. Ancak, makinemin ayrı bir bölmede / önyüklemede bulunduğunu (muhtemelen LVM kullandığımdan dolayı) fark ettim, bu nedenle biraz değiştirilmiş işlemim:

sudo mount /dev/sdXXX /mnt
sudo mount /dev/sdXY /mnt/boot
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub 

Not: sdX = disk | sdXX = efi bölümü | sdXY = önyükleme bölümü | sdXXX = sistem bölümü


Yanlışlıkla rm -Rf / boot / efi yaptığım çalışan bir Ubuntu Biyonik sistemim vardı! Sistemim hala çalışıyordu, bu yüzden son iki komutu kullanmayı denedim (grub-install / dev / mapper / ubuntu - vg-root AND update-grub). Yeniden başlatıldı ve her şey mükemmel çalışıyor. Phewy and thanks :)
Roel Van de Paar

2

Ayrıca, kurtarmak için canlı cd'den önyükleme yapmak, grub-efi-amd64-bin paketini ve ardından satırın eksik olması olabilir.

"grub-install --target=x86_64-efi /dev/sdb" 

hata mesajı ile başarısız: "grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh mevcut değil. Lütfen --target veya --directory belirtin."

Bu durumda bunu chroot dışında çalıştırın.

sudo apt get grub-efi-amd64-bin

ve sonra chroot bağlarına / usr / lib / grub / x86_64-efi ekleyin.

Btw "/ dev / sdb" param modası geçmiş ve göz ardı ediliyor.


0

ci-netbox cevabına ek olarak.
Eğer pendrive işletim sistemi versiyonunuz diskte kurulu olan ile aynı değilse, grub-install doğru grub kurulumunu tanımlamakta zorlanabilir:

$ sudo chroot /mnt
# grub-install /dev/sdX
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. 
Please specify --target or --directory.

Kullanılacak yüklemeyi el ile tanımlamaya çalışın

# ls /usr/lib/grub/
grub-mkconfig_lib  x86_64-efi  x86_64-efi-signed

Ardından grub-install'ı yeniden başlatın:

# grub-install --target=x86_64-efi /dev/sdX 
Installing for x86_64-efi platform.
Installation finished. No error reported.

0

EFI bölümünü kaybederseniz, geri almak kolaydır. "EFI partition (1)" türünde yeni bir GPT bölümü oluşturmak fdiskveya kullanmak partedve biçimlendirmek için:

sudo mkfs.msdos /dev/sdX

sonra monte edin ve koşuyu takip edebilirsiniz:

sudo grub-install /dev/sdX

diğer çözümlerde olduğu gibi.


0

Bu yüzden benim tahminim problemin nedeni, Ubuntu kurulumunun fstab ise efi bölümünü monte etmemesi. ve grub günceller. Güncellemede.

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.