क्या UEFI और विरासत BIOS के लिए एक हाइब्रिड लिनक्स USB- स्टिक संभव है?


14

मेरा विचार लुबंटू के साथ एक यूएसबी-बूट-स्टिक बनाने का है जो पुराने BIOS लैपटॉप और एक नए यूईएफआई सिस्टम पर बूट करने में सक्षम है।

यह काफी आसान होगा, जब स्टिक एक विरासत बूट डिवाइस के रूप में सेटअप होगी, लेकिन मैं चाहता हूं कि यह यूईएफआई-सक्षम डिवाइस हो।

  1. क्या यह भी समझ में आता है ?! या मुझे UEFI की अवधारणा भयावह रूप से गलत समझ में आई?
  2. यदि आवश्यक हो तो दो अलग-अलग लिनक्स स्थापित हो सकते हैं (एक यूईएफआई के लिए, एक विरासत के लिए लेकिन दोनों एक ही ड्राइव पर)
  3. विरासत बायोस पर एक GPT डिवाइस बूट करें - क्या यह काम करेगा?

मैं स्पष्ट नहीं देख सकता, यह एक बेहतर विचार हो सकता है एक अलग विरासत लिनक्स बूट स्टिक है, लेकिन मैं सीमाओं का पता लगाने के लिए उत्सुक हूं :)

तो, क्या हाइब्रिड लाइनक्स-यूफी-बूट-यूएसबी-स्टिक का मेरा विचार है जो विरासत बायोस के साथ काम करेगा?


(3) linux के लिए ग्रब http://www.rodsbooks.com/gdisk/booting.html के साथ संभव प्रतीत होता है

इसके अलावा, मेरे पास उस छड़ी पर एक EF00 विभाजन तैयार है, एक तरफ स्वैप, फैट 32 और दो एक्सटी 4 विभाजन।


(1) भी संभव लगता है http://www.rodsbooks.com/bios2uefi/

यह निर्देश हालांकि 2012 से हैं, कुछ समय बीत चुका है - क्या किसी के पास काम करने का उदाहरण है जो आसान है?


इस विषय के अन्य शोधकर्ताओं के लिए:

गैर ईएफआई मदरबोर्ड पर जीपीटी डिस्क से विंडोज 7 का बूट क्या जीपीटी पर BIOS का उपयोग करके विंडोज 7/8 को बूट करने का कोई तरीका है?

http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


अपडेट करें:

मैं REFInd के साथ सुरक्षित बूट सेटअप को UEFI हिस्सा बनाने में कामयाब रहा हूं।

दी गई सलाह के बाद, मैंने अपनी ड्राइव ddपर प्रतिलिपि बनाने के gptmbr.binलिए उपयोग किया है , जो अब BIOS-सिस्टम पर कम से कम कुछ करने के लिए लगता है: "यह बूट करने योग्य डिस्क नहीं है"

हालांकि, मैंने सलाह का पालन किया है और pmbrडिस्क और जीपीटी legacy bootफ्लैग के लिए ध्वज सेट किया है - फिर भी यह त्रुटि, किसी भी विचार से मिल रही है?

मेरा ईएसपी विभाजन डिस्क पर दूसरा विभाजन है और ओफी फाइलों के साथ सेटअप है।

स्थापित करना:

  • 64 जीबी स्पेस
  • GPT विभाजन
  • डिस्क में pmbr ध्वज सेट है
  • 1 विभाजन 16MiB से शुरू होता है और लगभग 45GB है, जो डेटा के लिए एक fat32 प्राथमिक है
  • दूसरा विभाजन लगभग 45GB से शुरू होता है और एक वर्किंग rEFInd सेटअप के साथ EFI सिस्टम (fat32) है
  • 3 - 5 वां विभाजन घर (ext4), स्वैप और रूट (ext4) है जो मेरे कामकाजी लुबंटू 14.04.1 को है

का उपयोग करते हुए ddमैंने gptmbr.binअपने संकलित 6.02 Syslinux के पहले 440bytes की प्रतिलिपि बनाई है ।

3.2 भाग के तहत मैं देख सकता हूं कि मेरे विभाजन 2 में एक bootऔर legacy_bootझंडा है।

बूट के दौरान मुझे कोई बूट करने योग्य डिस्क नहीं मिली - अगर मैं अपने 5 वें सेट के बजाय 2 डी सेट करता हूं तो मुझे मिसिंग ओएसlegacy_boot मिलता है

यह जिंदा है!

(जैसा कि मेरा पुराना प्रश्न डिलीट हो गया /ubuntu//q/516730/319747 )


मेरा अनुमान है, कि मुझे अपने ईएफआई (जहां?) या अपने रूट विभाजन ( ?) पर काम करने के लिए इसे प्राप्त करने के लिए कुछ *.c32और अन्य फाइलों को एक syslinux फोल्डर ईयर पर कॉपी /boot/syslinuxकरना होगा - क्या मैं सही हूं? क्या फाइलें जरूरी हैं?

इसके अलावा, मुझे लगता है कि मुझे उस syslinucx.cfgफ़ाइल की भी आवश्यकता होगी - सही?


मेरा लक्ष्य कम से कम रूट ext4 विभाजन पर लुबंटू प्रणाली का एक सीधा बूट होगा।

अपडेट करें:

हालांकि मुझे पता नहीं क्यों, मुझे यह काम कर रहा है - लेकिन एक मैनुअल इंस्टॉल के साथ नहीं।

  • pmbrझंडा बुरा था और UEFI के रूप में छड़ी बूट होने से मेरी UEFI प्रणाली निषिद्ध
  • legacy_bootझंडा मेरी 5 वीं विभाजन (linux रूट) के लिए जरूरी हो गया था
  • मुझे इस्तेमाल करना था extlinux --install /path/to/root/parition
  • मुझे syslinux.cfgअपने रूट विभाजन के बूट के नीचे syslinux फ़ोल्डर में एक बनाना था

मैंने यह सब एक दूसरी छोटी छड़ी पर किया, फिर सिसलिनक्स फ़ोल्डर को कॉपी करने की कोशिश की, लेकिन कोई भाग्य नहीं था - extlinux --installअनिवार्य प्रतीत होता है।

किसी को भी पता है कि वास्तव में क्या extlinux --installकरता है? क्या इसे मैन्युअल रूप से किया जा सकता है या आप इसे अपने सिस्टम पर स्थापित किए बिना 6.02 जैसे नए संस्करण को कैसे स्थापित कर सकते हैं?

BIOS पर उल्लिखित विभाजन के साथ काम करने वाली मेरी छड़ी मिल गई, UEFI और UEFI SecureBoot, एक सवारी का नरक, बहुत कुछ सीखा, लगभग 2TB को मार डाला, सावधान और सौभाग्य के साथ।


आपका लिंक टूट गया है .. क्या आपकी कहानी कहीं और है? मैं ऐसा ही करना चाहूंगा। धन्यवाद।
पिविस

1
इस जानकारी के लिए @Pvinis धन्यवाद, मैंने प्रश्न / परिणाम मयखाने से यहाँ मर्ज कर दिया है, क्योंकि यह हटा दिया गया है
Jook

जवाबों:


11

यह संभव है, और यह बाहरी यूएसबी स्टिक और आंतरिक ड्राइव दोनों के साथ बहुत बार किया जाता है।

विभाजन तालिका प्रकारों के बारे में:

  • BIOS आमतौर पर किसी भी विभाजन तालिका की आवश्यकता नहीं है । यह केवल बूटस्ट्रैप कोड भाग में रुचि रखता है जो आपके MBR का पहला 440 बाइट्स है। (हालांकि कुछ अपवाद हैं। कुछ BIOS कार्यान्वयन वास्तव में टूट जाते हैं यदि वे सामान्य विभाजन प्रकारों में से एक के साथ एक एमबीआर नहीं पा सकते हैं। उम्मीद है कि वे दुर्लभ हैं।)

    GPT विभाजन तालिका भौतिक रूप से एक MBR को प्रतिस्थापित नहीं करती है - यह हमेशा सेक्टर 1 में शुरू होती है, जबकि MBR ​​सेक्टर 0 में है - इसलिए डिस्क के लिए दोनों होना संभव है। वास्तव में, सबसे GPT डिस्क है एक "सुरक्षात्मक एमबीआर" बस एक ही विभाजन है कि कवर पूरे डिस्क, गलती से डेटा को नष्ट करने से पुराने एमबीआर-केवल विभाजन उपकरण को रोकने के लिए युक्त है।

    इसलिए, आप अपने एमबीआर में Syslinux बूट सेक्टर को स्थापित कर सकते हैं, और यह बूट होगा। (  syslinux-install_updateस्क्रिप्ट आपके लिए ऐसा करेगी, लेकिन आप gptmbr.binइसे मैन्युअल रूप से करने के लिए अपने syslinux पैकेज की तलाश कर सकते हैं ।)

    एमबीआर विभाजन पर "सक्रिय" ध्वज की तरह, Syslinux GPT विभाजन पर "विरासत BIOS बूट करने योग्य" ध्वज के लिए दिखेगा (बिट 2 - UEFI कल्पना 2.4 खंड 5.3.3 तालिका 20); उपरोक्त स्क्रिप्ट भी उस ध्वज को स्वचालित रूप से सेट करता है यदि आपके पास sgdisk(gptfdisk से) स्थापित है।

    GRUB का उपयोग भी किया जा सकता है, लेकिन यह थोड़ा अधिक कष्टप्रद भी है। चूंकि GRUB 2 पारंपरिक रूप से अनुपयोगी क्षेत्रों 1-62 में खुद को "एम्बेड" करना चाहता है, इसलिए यह उसी स्थान पर संग्रहीत GPT को अधिलेखित कर देगा। इसलिए आपको 2-4 एमबी का एक समर्पित विभाजन बनाने और इसे BIOS-बूट करने योग्य के रूप में चिह्नित करने की आवश्यकता हो सकती है, ताकि grub-installखुद को एक एम्बेडिंग जगह मिल जाए।

  • दूसरी ओर, यूईएफआई विनिर्देश को एमबीआर विभाजन प्रकार (खंड 12.3.1) के लिए समर्थन की आवश्यकता होती है और एमबीआर विभाजन प्रकार 0xEFको ईएफआई सिस्टम विभाजन (खंड 5.2.2) को सौंपने की आवश्यकता होती है ।

    इसलिए यदि आप किसी कारण से अपनी डिस्क को GPT के साथ काम नहीं कर पाते हैं, तब भी आप MBR पर एक EFI सिस्टम विभाजन बना सकते हैं, और इसका उपयोग तब तक किया जाएगा जब तक कि इसमें सही फाइलसिस्टम और सभी आवश्यक फाइलें (धारा 12.3.1.3):

    हटाने योग्य मीडिया उपकरणों के लिए केवल एक यूईएफआई-अनुरूप प्रणाली विभाजन होना चाहिए, और उस विभाजन में रूट निर्देशिका में यूईएफआई-परिभाषित निर्देशिका होनी चाहिए। निर्देशिका का नाम दिया जाएगा EFI। सभी OS लोडर और अनुप्रयोगों उप-निर्देशिका में संग्रहीत किया जाएगा नीचे EFIबुलाया BOOTBOOTनिर्देशिका में प्रत्येक समर्थित प्रोसेसर आर्किटेक्चर के लिए केवल एक निष्पादन योग्य EFI छवि होनी चाहिए । हटाने योग्य मीडिया को EFI के तहत बूट करने योग्य होने के लिए, इसे धारा 3.4.1.1 में निर्धारित नियमों के अनुसार बनाया जाना चाहिए।

ऑपरेटिंग सिस्टम के बारे में, लिनक्स आमतौर पर इस बारे में थोड़ी भी परवाह नहीं करता है कि क्या यह आज BIOS से और कल UEFI से बूट किया गया है। मुझे अपने लैपटॉप को UEFI मोड से "BIOS कम्पैटिबिलिटी" मोड में रिबूट करना पड़ा है और इस सप्ताह में शायद सौ बार वापस, जबकि 3.17 UEFI सपोर्ट में बग ढूंढने की कोशिश कर रहा है ...


ध्यान दें कि "BIOS से UEFI परिवर्तन" लेख काफी अलग चीज है। यह वर्णन करता है कि UEFI को कैसे स्थापित किया जाए - एक UEFI कार्यान्वयन जिसे "DUET" कहा जाता है - एक BIOS-ओनली सिस्टम से शुरू किया जाए। इसका BIOS से सीधे ऑपरेटिंग सिस्टम को बूट करने से कोई लेना-देना नहीं है।


+1 - syslinux_install मैं उस पर गौर करूंगा, पुष्टि, आश्वासन और नए इनपुट के लिए धन्यवाद
Jook

मैंने आपकी सलाह का पालन किया है, लेकिन मैं सेटअप के साथ फंस गया हूं, मुझे mbrठीक लग रहा है लेकिन मेरा EFI Systemविभाजन नहीं मिला है । क्या यह समस्या है कि यह डिस्क पर दूसरा विभाजन है जो लगभग 45GB डिस्क में शुरू होता है? क्या मुझे EFI सेटअप के अलावा वहाँ EFI पर एक स्पैक्ट्रिक अनुभाग सेटअप करना है?
जुक

मिल गया काम :) तो, धन्यवाद! syslinux काफी अच्छा है और मुझे gPxe और plopkexec की ओर ले गया, जिसकी मैं आगे और समय जांच करूँगा। किसी भी अन्य शोधकर्ताओं के लिए: askubuntu.com/q/516730/319747
Jook

2

हां, यह संभव है।

मूल विचार इस तरह से अपने USB स्टिक को GPT विभाजन करना है:

  1. BIOS बूट विभाजन (GPT प्रकार 1686148-6449-6E6F-744E-656564454649) - 1 MiB, कोई फाइल सिस्टम नहीं
  2. EFI सिस्टम विभाजन (GPT प्रकार C12A7328-F81F-11D2-BA4B-00A0C93EC93B) - 200 MiB, VFAT फाइल सिस्टम
  3. लिनक्स बूट विभाजन (GPT प्रकार 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - 1 GiB, ext4 फाइल सिस्टम
  4. लिनक्स रूट / होम फाइल सिस्टम (GPT प्रकार 0FC63DAF-8483-4772-8E79-3D69D8477DE4) - शेष स्थान, XFS या Btrfs फाइल सिस्टम

यह विभाजन हमें लिगेसी सिस्टम पर बूट करने की अनुमति देता है क्योंकि GPT के साथ अभी भी एक MBR (बैकवर्ड संगतता कारणों के लिए) के लिए जगह है और Grub2 में BIOS बूट विभाजन में कुछ मध्य चरण स्थापित करने के लिए पर्याप्त स्थान है। लीगेसी BIOS विभाजन योजना के बारे में परवाह नहीं करता है और Grub2 / Linux कर्नेल में GPT को लिगेसी सिस्टम को समझने में कोई समस्या नहीं है।

पर UEFI तंत्र , UEFI फर्मवेयर एमबीआर ध्यान नहीं देता और प्रवेश बिंदु के रूप में EFI सिस्टम विभाजन का उपयोग करता है।

उदाहरण के लिए, फेडोरा के साथ, आपको मूल रूप से निम्नलिखित कार्य करने होंगे:

सुनिश्चित करें कि लिनक्स बूट फाइलसिस्टम आरोहित है /bootऔर EFI सिस्टम विभाजन फाइलसिस्टम आरोहित है /boot/efi

(पुनः-) दोनों विरासत और UEFI बूट लोडर स्थापित करें:

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

(पुनः-) ग्रब कॉन्फिग फाइल्स को लीगेसी और यूईएफआई बूट दोनों के लिए जनरेट करें:

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

निर्भर करता है कि आपके सिस्टम ने विरासत या UEFI मोड में बूट किया है या तो आपको पहली या दूसरी फ़ाइल को ठीक करना होगा या उसके (linux|initrd)16साथ (linux|initrd)efiया दूसरे तरीके से बदलना होगा ।

MBR में ग्रब स्थापित करें:

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

देखा।


PS: मैंने एक प्रोविजनिंग स्क्रिप्ट लिखी है जो इस हाइब्रिड दृष्टिकोण को लागू करती है और इस तरह से इस तरह की USB स्टिक को स्वचालित रूप से बनाने के लिए उपयोग किया जा सकता है।
मैक्सक्लेपजिग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.