एक बूट हार्डवेयर पर बूट-मरम्मत के बिना EFI / UEFI पर उबंटू BIOS को बदलने के लिए कौन सी कमांड?


35

आकस्मिक BIOS मोड स्थापित करें

मेरे पास यूईएफआई सेटअप उपयोगिता के साथ इंटेल 64-बिट हार्डवेयर है। उबंटू 14.04.1 एलटीएस एकमात्र ड्राइव सिस्टम पर संलग्न ड्राइव के रूप में स्थापित किया गया था। गलती से उबंटू BIOS / CSM / विरासत मोड में स्थापित किया गया था।

यूईएफआई में परिवर्तित करें

UEFI के बारे में जानने के बाद, लक्ष्य है कि इस मौजूदा Ubuntu इंस्टालेशन को EFI / UEFI के माध्यम से (जल्दी) बूट में बदला जाए। मैं अभी भी कुछ प्रकार के - 2 सेकंड प्रदर्शित करना चाहता हूं - बूट मेनू जो मुझे यूईएफआई सेटअप उपयोगिता में प्रवेश करने की अनुमति देता है। इसलिए मुझे लगता है कि मुझे ग्रब (ईएफआई बूट स्टब का उपयोग नहीं किया जा सकता) का उपयोग करने की आवश्यकता है और जीओपी समर्थन को ग्रब संस्करण 1.99 या उच्चतर की आवश्यकता है । मैंने पहले से ही एक लाइव सीडी का उपयोग करके ड्राइव को फिर से विभाजित किया है और ड्राइव की शुरुआत में 200 MiB EFI विभाजन को सम्मिलित किया है और कहा है कि fat16 ने विभाजन को id 0xEF के रूप में स्वरूपित किया है।

पहले:

# 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

बाद:

   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

कोई बूट-मरम्मत कृपया

उबंटू समुदाय विकी उबंटू को EFI मोड में परिवर्तित करने के लिए बूट-रिपेयर का उपयोग करने का सुझाव देता है । मैं GUI का उपयोग नहीं करना चाहता, या कोई अतिरिक्त पैकेज स्थापित नहीं करना चाहता, और मैं नहीं चाहता कि कोई डेटा गलती से pastebin.com पर भेजा जाए और क्योंकि मैं जानना चाहता हूं कि वास्तव में क्या बदला जाएगा, मैं नहीं चाहता बूट-मरम्मत का उपयोग करें ।

हुड के नीचे

यह पता लगाने की कोशिश की जा रही है कि वास्तव में बूट-रिपेयर क्या होता है, मुझे यह स्निपेट मिला:

बूट-रिपेयर एक BIOS को यूईएफआई में बदलकर ग्रब-पीसी को अनइंस्टॉल करके और ग्रब-एफी को स्थापित करके, यदि विभाजन हुआ है, तो यूईएफआई में बदल देगा।

स्रोत: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

यूईएफआई मोड स्थापित तुलना

UEFI मोड में एक साफ Ubuntu 14.04.1 इंस्टॉलेशन एक 512 MiB Fat32 स्वरूपित EFI विभाजन बनाता है। यही कारण है कि विभाजन एक निर्देशिका में शामिल /EFI/ubuntu4 फ़ाइलें,: grub.cfg, grubx64.efi, MokManager.efiऔर shimx64.efi। Grub.cfg में शामिल हैं:

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

Search.fs_uuid लिनक्स इंस्टॉलेशन विभाजन के UUID की ओर इशारा करता है, इस तुलना में UEFI इंस्टॉलेशन लिनक्स इंस्टॉलेशन / dev / sda2 (बनाम BIOS मोड इंस्टालेशन में sda1) स्थापित है

कोई संभावित Asrock फर्मवेयर समस्याएँ नहीं मिलीं

CSM अभी भी फर्मवेयर में अक्षम है और साफ UEFI मोड उबंटू इंस्टॉलेशन का उपयोग कर रहा है। लाइव सीडी का उपयोग करते हुए 512 MiB EFI विभाजन को 200 MiB के आकार में बदलना और gpartedपरिणाम स्वरूप इसका स्वरूप FAT32 से FAT16 में बदल जाता है। Asrock फर्मवेयर P1.50 (गलत रूप से बूट संदेश "BIOS तिथि" में AMI द्वारा BIOS कहा जाता है) अभी भी UEFI मोड उबंटू में बूट करने में सक्षम है: UEFI + FAT16 = ok
GPT से MBR (msdos) में समान लाइव सीडी टर्मिनल कमांड gdiskऔर इसके कमांड का उपयोग करके विभाजन तालिका को परिवर्तित करने सेr g p w MBR विभाजन वाली ड्राइव पर UEFI बूट करने योग्य उबंटू भी हो जाता है: UEFI + MBR = ok

सवाल

क्या इसका मतलब यह है कि केवल एक ही आदेश जिसे मुझे निष्पादित करने की आवश्यकता है - विरासत उबंटू से और इस क्रम में - हैं:

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

? या करने की अधिक आवश्यकता है?


1
मैं अभी भी बूट रिपेयर का उपयोग करूंगा। आपको लगता है कि आपको पैकेज स्थापित करने की आवश्यकता है ... मेरा मानना ​​है कि आप गलत हैं। देखें: askubuntu.com/questions/226061/…
Rinzwind

@ रिनविंड मैं बूट-रिपेयर का उपयोग नहीं कर सकता क्योंकि वर्तमान उबंटू इंस्टॉलेशन (केवल कंसोल) में कोई GUI नहीं है और ubuntu-14.04.1-Desktop-amd64.iso बूट नहीं करता है जब Asrock में पहला USB UEFI बूट डिवाइस के रूप में सेट किया गया है H81 प्रो BTC P1.50 UEFI सेटअप उपयोगिता।
प्रो बैकअप

1
बूट-रिपेयर गुई नहीं है, लेकिन एक ऐड इन्स के साथ बैश करें जो इसे और अधिक गुई जैसा बनाता है। उबंटू पैकेज के नामों के नए संस्करण के साथ नाम थोड़ा बदल गया है, अब यह grub-efi-amd64 या grub-efi-amd64- हस्ताक्षरित है, मुझे लगता है। ऐसा इसलिए हो सकता है क्योंकि वे एक 32 बिट यूईएफआई बूट लोडर जारी करना चाहते हैं जिसका नाम बदल गया है। चेरोट संस्करण, ध्यान दें कि आपने भी ग्रब स्थापित किया है और grub.cfg बनाएं। askubuntu.com/questions/53578/…
20

@oldfred बूट-रिपेयर गुई पर निर्भर करता है: apt-get install boot-repairइस उबंटू सर्वर इंस्टाल पर निष्पादित होने के कारण, 245MB GTK जैसे कि निर्भरता बूट-रिपेयर इंस्टॉल करना चाहता है। और boot-repairकमांड आफ्टरवर्ड को निष्पादित करना विफल हो जाता है। नए grub-efi नामकरण का अद्यतन वास्तव में मददगार था।
प्रो बैकअप

यदि कोई Asrock, तो सुनिश्चित करें कि आपके पास Asmedia पोर्ट से जुड़ी कोई ड्राइव या DVD ड्राइव नहीं है। उनके पास ड्राइवर नहीं हैं। UEFI में बूट होने पर केवल gpt विभाजन वाली ड्राइव बेहतर होती है। rodsbooks.com/gdisk/hybrid.html
oldfred

जवाबों:


40

UEFI मोड में एक उबंटू लिनक्स (14.04) लाइव सीडी शुरू करें। USB बूट डिवाइस के मामले में, "फास्ट बूट" को UEFI में अक्षम करें।

एक टर्मिनल विंडो खोलें ( Ctrl+ Alt+ T)

यह सत्यापित करने के लिए कि आप वास्तव में UEFI मोड में चल रहे हैं, इस bash कमांड का उपयोग करें:

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

परिणामी आउटपुट होना चाहिए:

UEFI

मामले में यह कहता है BIOS, अपने फर्मवेयर में रिबूट करें और बूट डिवाइस वरीयता को सही करें।

EFI / UEFI रूपांतरण में BIOS करने के लिए इन आदेशों को दर्ज करें:

$ 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

त्रुटि संदेश समाप्त होने के बावजूद:

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

अगले रिबूट पहले से ही फर्मवेयर में अपने बूट विकल्प मेनू में " ubuntu " को दिखाता है , और पहले की तरह कंसोल को बूट करता है, सिवाय इसके कि अब ओफी मोड में बूटिंग करें:

$ 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

अगर कुछ गलत हो जाता है, तो https://superuser.com/questions/376470/how-to-reinstall-grub2-efi मदद कर सकता है।


इससे मुझे अपनी हार्ड ड्राइव को अपग्रेड करने में मदद मिली और जीपीटी / यूईएफआई / सिक्योरबूट को बिना रीइंफोर्स किए हुए कन्वर्ट किया गया। धन्यवाद। एक नोट: मुझे grub-efi-amd64-signedअपने UEFI BIOS में SecureBoot को अक्षम करने से बचने के लिए पैकेज की आवश्यकता थी ।
रॉबी बसाक

यह अब 2018 है और EFI i के साथ यह समस्या अभी भी कायम है। यहां तक ​​कि efi बूट भी स्थापित है, लेकिन मैं ग्रब क्ली में समाप्त होता हूं। मैं उबंटू को छोड़ देता हूं।
अभिषेक दुजारी

इसने मेरे लिए उबंटू 19.10 के तहत काम किया। मैंने ईएफआई के साथ लाइव यूएसबी को बूट किया, और मैंने अपनी डिस्क के अंत में ईएफआई के लिए एफएटी 32 प्रकार का विभाजन जोड़ा।
जॉय एडम्स

1

यह मेरे लिए भी एक छोटे से परिवर्तन के साथ काम किया। हालांकि नेटवर्क काम कर रहा था, लेकिन मैं पैकेज सर्वरों में से किसी को खोजने के लिए "apt-get install grub-efi-amd64" प्राप्त नहीं कर सका।

मैं एक अंतिम समय में BIOS मोड में बूट करके और grub-efi-amd64 स्थापित करके इसके चारों ओर मिला।

फिर मैं "apt-get install-grub-efi-amd64" को छोड़ने के अपवाद के साथ यहाँ प्रक्रियाओं का पालन कर सकता था।


1

छोटा सुधार:

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

किया हुआ।


क्या आप बता सकते हैं कि आप ओपी के जवाब से इन बदलावों का सुझाव क्यों दे रहे हैं? ………… कृपया टिप्पणियों में प्रतिक्रिया न दें;  इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
जी-मैन ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.