Bir Ubuntu BIOS kurulumunu tek önyükleme donanımında önyükleme onarımı olmadan EFI / UEFI'ye dönüştürmek için hangi komutlar?


35

Yanlışlıkla BIOS modu yüklemek

UEFI kurulum yardımcı programına sahip Intel 64 bit donanıma sahibim. Ubuntu 14.04.1 LTS, bağlı olan tek sürücüdeki tek işletim sistemi olarak kuruldu. Yanlışlıkla Ubuntu BIOS / CSM / eski modda kuruldu.

UEFI'ye dönüştür

Daha sonra UEFI'yi öğrenirken, hedef bu mevcut Ubuntu kurulumunu EFI / UEFI aracılığıyla (daha hızlı) önyüklemeyi değiştirmek. Hala UEFI kurulum yardımcı programına girmeme izin veren bir çeşit - 2 saniye görüntüleniyor - önyükleme menüsü olmasını istiyorum. Bu yüzden Grub kullanmam gerektiğini düşünüyorum (EFI önyükleme koçanı kullanamıyorum) ve GOP desteği Grub sürüm 1.99 veya daha üstü gerektiriyor . Sürücüyü Live CD kullanarak yeniden bölümledim ve sürücünün başına 200 MiB EFI bölümü yerleştirdim ve bu fat16 formatlı bölümü kimliği 0xEF türü olarak işaretledim.

Önce:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Sonra:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

Önyükleme onarımı yok lütfen

Ubuntu topluluğu wiki'si, Ubuntu'yu EFI moduna dönüştürmek için önyükleme onarımını kullanmanızı önerir . Bir GUI kullanmak veya fazladan bir paket yüklemek istemiyorum ve yanlışlıkla herhangi bir verinin pastebin.com'a gönderilmesini istemiyorum ve tam olarak neyin değişeceğini bilmek istediğim için, istemiyorum. Boot-repair özelliğini kullanın .

Kaputun altında

Önyükleme onarımının gerçekte ne yaptığını anlamaya çalışarak şu pasajı buldum:

Boot-Repair grub-pc'yi kaldırarak ve gpt bölümlenmişse grub-efi'yi kurarak BIOS kurulumunu UEFI'ye dönüştürecektir.

kaynak: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

UEFI modu yükleme karşılaştırması

UEFI modunda temiz bir Ubuntu 14.04.1 kurulumu 512 MiB Fat32 formatlı bir EFI bölümü oluşturur. Bu bölüm bir dizin içeren /EFI/ubuntu4 dosyalarını içeren,: grub.cfg, grubx64.efi, MokManager.efive shimx64.efi. Grub.cfg şunları içerir:

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Search.fs_uuid, Linux kurulum bölümünün UUID'sine işaret eder, bu karşılaştırmada UEFI kurulumu Linux / dev / sda2 bölümünü (BIOS modu kurulumunda sda1'e karşı) kurar .

Potansiyel Asrock ürün yazılımı sorunu bulunamadı

CSM'nin hala firmware’de devre dışı bırakılması ve temiz UEFI modu Ubuntu kurulumunun kullanılması. 512 MiB EFI bölümünün bir Live CD kullanarak 200 MiB olarak yeniden boyutlandırılması ve gpartedbiçimlendirmesinin FAT32'den FAT16'ya değişmesiyle sonuçlanır. Asrock üretici yazılımı P1.50 (yanlış olarak BIOS tarafından "BIOS date" önyükleme iletisinde AMI tarafından BIOS adı verildi) yine de UEFI moduna ön yükleme yapabiliyor Ubuntu: UEFI + FAT16 = tamam . Aynı Live CD terminal komutunu kullanarak komut
tablosunu GPT'den MBR'ye (msdos) dönüştürmekgdisk ve komutları r g p wayrıca MBR bölümlenmiş bir sürücüde UEFI önyüklenebilir Ubuntu ile sonuçlanır: UEFI + MBR = tamam .

Soru

Bu, çalıştırmam gereken tek komutun - eski Ubuntu kurulumundan ve bu siparişte - olduğu anlamına mı geliyor?

# apt-get install grub-efi
# apt-get remove grub-pc

? Veya daha yapılması gereken?


1
Hala önyükleme onarımı kullanırdım. Paketleri kurman gerektiğini düşünüyorsun ... Yanlış olduğuna inanıyorum. Bakınız: askubuntu.com/questions/226061/…
Rinzwind

@Rinzwind Şu anki Ubuntu kurulumunda GUI bulunmadığından (sadece konsol) ve ubuntu-14.04.1-desktop-amd64.iso Asrock’ta ilk USB UEFI önyükleme aygıtı olarak ayarlandığında önyükleme yapmıyor çünkü boot-repair kullanamıyorum H81 Pro BTC P1.50 UEFI kurulum yardımcı programı.
Pro Yedekleme

1
Boot-Repair gui değil, onu daha fazla gui yapan eklentilerden biriyle bash. Bence Ubuntu paket isimlerinin yeni versiyonları biraz değişti, sanırım grub-efi-amd64 veya grub-efi-amd64 imzalı. Bunun nedeni, değiştirilen bir 32 bit UEFI önyükleme yükleyicisini bırakmak istediklerinden olabilir. Chroot sürümü, grub grubunu yüklediğini ve grub.cfg dosyasını oluşturduğunu unutmayın. askubuntu.com/questions/53578/…
oldfred

@oldfred Boot-Repair, gui'ye bağlıdır: apt-get install boot-repairbu Ubuntu sunucu kurulumunda çalıştırıldığında , 245 MB'lık GTK benzeri bağımlılıklar önyükleme onarımının yüklenmesini istiyor. Ve boot-repairaftwerwards komutunu çalıştırmak başarısız olur. Yeni grub-efi adlandırma güncellemesi gerçekten yardımcı oldu.
Pro Yedekleme

Bir Asrock ise, Asmedia portlarına bağlı bir sürücünüz veya DVD sürücünüz olmadığından emin olun. Sürücüleri yok. UEFI’de önyükleme yapıldığında gpt bölümlenmiş sürücüye sahip olmak daha iyidir. rodsbooks.com/gdisk/hybrid.html
oldfred

Yanıtlar:


40

UEFI modunda bir Ubuntu Linux (14.04) Live CD başlatın. Bir USB önyükleme aygıtı durumunda, UEFI’de "Hızlı Önyükleme" yi devre dışı bırakın.

Bir terminal penceresi aç ( Ctrl+ Alt+ T)

Aslında UEFI modunda çalıştığınızı doğrulamak için bu bash komutunu kullanın:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Ortaya çıkan çıktı şöyle olmalıdır:

UEFI

Söylemesi durumunda BIOS, ürün bilginizi yeniden başlatın ve önyükleme aygıtı tercihini düzeltin.

BIOS'u EFI / UEFI'ye dönüştürmek için şu komutları girin:

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Hata mesajında ​​sona ermesine rağmen:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

Bir sonraki yeniden başlatma , bellenimdeki önyükleme seçenekleri menüsünde zaten " ubuntu " u gösteriyor ve şimdiki efi modunda önyükleme yapmak dışında konsola önyükleme yapıyor:

$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA

Bir şeyler ters giderse, https://superuser.com/questions/376470/how-to-reinstall-grub2-efi yardımcı olabilir.


Bu, sabit diskimi yükseltmeme ve yeniden yüklemeden GPT / UEFI / SecureBoot'a dönüştürmeme yardımcı oldu. Teşekkür ederim. Bir not: grub-efi-amd64-signedUEFI BIOS'umda SecureBoot'u devre dışı bırakmakla uğraşmamak için pakete ihtiyacım vardı .
Robie Basak

Şimdi 2018 ve EFI ile bu sorun hala ısrarcı. bile efi önyükleme yüklü ama grubun ucunda bitirdim. Ubuntu'dan vazgeçtim.
Abhishek Dujari

Bu benim için Ubuntu 19.10 altında çalıştı. Canlı USB'yi EFI ile başlattım ve diskimin sonuna EFI için 200 MB FAT32 tipi bir bölüm ekledim.
Joey Adams

1

Bu benim için de küçük bir değişiklikle işe yaradı. Ağ çalışıyor olmasına rağmen, herhangi bir paket sunucusunu bulmak için "apt-get install grub-efi-amd64" dosyasını bulamadım.

Bunu son kez BIOS modunda açıp grub-efi-amd64'ü kurarak bu sorunu çözdüm.

Daha sonra "apt-get install grub-efi-amd64" atlamak dışında, buradaki prosedürleri izleyebilirim.


1

Küçük düzeltme:

sudo apt-get install -y grub-efi-amd64
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do sudo mount -B /$d /mnt/$d; done
sudo modprobe efivars
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Bitti.


Bu değişiklikleri neden OP'nin cevabından önerdiğinizi açıklayabilir misiniz? ………… Lütfen yorumlarda cevap vermeyin;  cevabınızı daha net ve daha eksiksiz hale getirmek için düzenleyin .
G-Man
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.