ऐसा लगता है कि उबंटू को बाहरी हार्डड्राइव में स्थापित करना यूईएफआई के साथ संभव नहीं है, जहां एमबीआर के साथ बाहरी और आंतरिक के बीच कोई बड़ा अंतर नहीं था। क्या यह सच है या यह अभी भी संभव है?
क्या दोनों बूट विधियों को संयोजित करना भी संभव है?
ऐसा लगता है कि उबंटू को बाहरी हार्डड्राइव में स्थापित करना यूईएफआई के साथ संभव नहीं है, जहां एमबीआर के साथ बाहरी और आंतरिक के बीच कोई बड़ा अंतर नहीं था। क्या यह सच है या यह अभी भी संभव है?
क्या दोनों बूट विधियों को संयोजित करना भी संभव है?
जवाबों:
यह वास्तव में संभव है ।
इससे पहले कि मैं जारी रखूं, ये निर्देश खाली ईएफआई सिस्टम विभाजन (ईएसपी) के लिए हैं और संभवत: मौजूदा फाइलों को अधिलेखित कर देंगे, या अपेक्षा के अनुरूप काम नहीं करेंगे। कम से कम बैकअप तो बनाओ!
प्लेटफ़ॉर्म: लीगेसी पीसी, यूईएफआई-आधारित विंडोज कंप्यूटर, एप्पल कंप्यूटर
आपको अन्य इंस्टॉलेशन या लाइव मीडिया से इन निर्देशों का पालन करने की आवश्यकता है।
grub-efi-amd64-bin
पैकेज स्थापित करें । यह केवल आवश्यक संसाधनों को स्थापित करेगा। यह आपके मौजूदा एमबीआर स्टाइल इंस्टॉलेशन को यूईएफआई में स्विच नहीं करेगा और चीजों को उल्टा कर देगा।
एक ईएसपी के लिए जगह बनाने के लिए GParted में अपने Ubuntu विभाजन को सिकोड़ें । ईएसपी के लिए अनुशंसित आकार 100 एमबी से 500 एमबी तक होते हैं, लेकिन यहां इन निर्देशों का पालन करके बनाई गई फ़ाइलों को 2 से 5 मेगाबाइट से अधिक की आवश्यकता नहीं होगी।
नोट: यह मायने नहीं रखता है कि आपका ESP डिस्क पर कहां स्थित है और अंत से कुछ मेगाबाइट्स द्वारा अपने Ubuntu विभाजन को सिकोड़कर त्वरित और सुरक्षित होना चाहिए। शुरुआत में सिकुड़ना सुरक्षित नहीं है । हालांकि, आपका ईएसपी एक प्राथमिक विभाजन होना चाहिए और विस्तारित विभाजन या तार्किक मात्रा का हिस्सा नहीं होना चाहिए, 1 से 4 तक विभाजन संख्याएं ठीक हैं, ऊपर की संख्याएं एमबीआर विभाजन तालिकाओं पर एक विस्तारित विभाजन का संकेत देती हैं।
फ़ाइल सिस्टम के रूप में FAT32 चुनें और बूट फ्लैग सेट करें।
आपके द्वारा अभी बनाया गया ESP और आपके द्वारा सिकुड़ी गई रूट फाइलसिस्टम को माउंट करें:
mkdir -p /mnt/esp
mount $esp_device /mnt/esp
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
नोट: बदलें
$esp_device
और$root_device
साथ उचित उपकरणों जैसे/dev/sdb2
और/dev/sdb1
। Mountpoints/mnt/esp
और/mnt/rootfs
सिर्फ इस जवाब के शेष भाग के साथ काम करने के लिए चुना उदाहरण हैं।
GRUB की EFI छवि और इसके साथ एक न्यूनतम कॉन्फ़िगरेशन फ़ाइल स्थापित करें:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
ध्यान दें कि
$device
संपूर्ण डिवाइस उदा/dev/sdb
, विभाजन नहीं है।
यही है, हम पहले से ही कर रहे हैं, लेकिन मुझे कुछ चीजों को समझाने की कोशिश करें।
पैरामीटर --target x86_64-efi
यह सुनिश्चित करेगा कि यूईएफआई चित्र और मॉड्यूल दिए गए रास्तों पर स्थापित किए जाएंगे। एक वितरण विशिष्ट पथ के बजाय, हटाने योग्य मीडिया के लिए --removable
हार्डकोड किए गए पथ पर UEFI छवि स्थापित करेगा \EFI\BOOT\BOOT{arch}.EFI
। आपका grub.cfg
में /boot/grub/
दोनों बूट विधियों और नाम के एक नए फ़ोल्डर के साथ काम करना चाहिए x86_64-efi
अब के बगल में मौजूद होना चाहिए i386-pc
।
पूर्णता के लिए, यह गैर-हटाने योग्य मीडिया के लिए कमांड है जो प्लेटफॉर्म में एनवीआरएएम प्रविष्टियों पर लिखता है और निर्भर करता है:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
उचित यूईएफआई इंस्टॉलेशन में नीचे दिए गए एक के समान एक पंक्ति शामिल है /etc/fstab
, लेकिन सेटअप बिना कार्यात्मक है और यूईएफआई छवि (एमबीआर बूटलोडर के समान) आमतौर पर ओएस स्थापना के दौरान केवल लिखित / अद्यतन होती है।
UUID=1234-567F /boot/efi vfat defaults 0 1
GPT पार्टीशन ड्राइव पर एक विरासत संस्थापन में ESP जोड़ना उपरोक्त के समान है:
grub-efi-amd64-bin
पैकेज स्थापित करें ।boot
ध्वज सेट करके ऊपर दिए गए निर्देशों के समान एक FAT32 फाइल सिस्टम के साथ एक विभाजन बनाएँ ।grub-install
ऊपर से कमांड चलाएं जिसमें --removable
पैरामीटर शामिल है ।यह भी काम करता है अगर आप बस अपने एक्सिसिटिव UEFI इंस्टॉलेशन को किसी अन्य कंप्यूटर पर बूट करना चाहते हैं।
GRUB के लिए BIOS बूट करने योग्य विभाजन (BBP) बनाना थोड़ा अलग है:
grub-pc-bin
पैकेज स्थापित करें ।
रूट विभाजन को ऊपर करके निर्देशों के समान एक विभाजन बनाएँ और bios_grub
ध्वज सेट करें । कोई फाइलसिस्टम नहीं चुनें और इसे बिना सूचना के छोड़ दें।
कॉन्फ़िगरेशन फ़ाइल /etc/default/grub
को प्रशासनिक अधिकारों के साथ संपादित करें और GRUB_DEVICE=/dev/sdb6
अंत में जोड़ें । /dev/sdb6
अपने BBP के वास्तविक डिवाइस नाम से बदलें । आप कमांडलाइन एडिटर नैनो का उपयोग किसी साधारण चीज़ को रखने के लिए कर सकते हैं।
BBP के साथ GRUB MBR छवि स्थापित करें:
grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
आप लाइन को हटाने या /etc/default/grub
उसमें टिप्पणी करना चाहते हैं और इसे वास्तविक स्थापना में जोड़ सकते हैं।
मैंने पाया कि बहुत नए मैक (मैक मिनी ए 1347 ईएमसी 2840) मैं एमबीआर से भी मानक एफएटी 32 ईएसपी से बूट कर सकता था! वैसे भी, यहाँ हम जाते हैं:
स्थापित करें grub-efi-amd64-bin
, hfsprogs
, mactel-boot
और mactel-boot-logo
(वैकल्पिक) संकुल। आपको यूनिवर्स रिपॉजिटरी को सक्षम करने की आवश्यकता है ( मैं कमांड लाइन से "यूनिवर्स" रिपॉजिटरी को कैसे सक्षम करूं? ) और उन सभी को स्थापित करने के लिए वर्तमान मेक्टेल सपोर्ट पीपीए ( अधिक विवरण के लिए मैक्टेल सपोर्ट कम्युनिटी टीम देखें) को जोड़ें।
रूट विभाजन का आकार बदलकर उपरोक्त निर्देशों के समान HFS + फाइलसिस्टम के साथ एक विभाजन बनाएँ। इस बार हमें कुछ मेगाबाइट्स की अधिक जगह चाहिए, इसलिए ESP का आकार दोगुना करें यदि आपके पास पहले केवल 5 मेगाबाइट्स या उससे कम था। किसी ध्वज की आवश्यकता नहीं है।
विभाजन माउंट करें:
mkdir -p /mnt/esp-mac
mount $esp-mac_device /mnt/esp-mac
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
नोट: मैंने चुना
$esp-mac_device
और/mnt/esp-mac
संघर्षों से बचने के लिए।
पैरामीटर grub-install
शामिल करने के लिए आदेश चलाएँ --removable
:
grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
अंत में एक मैक जिस तरह से होने की उम्मीद है विभाजन को सेटअप करें:
sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
मैक पर बाहरी मीडिया से उबंटू बूट करने के लिए अब आपको बस विकल्प कुंजी ⌥ या Altविंडोज कीबोर्ड पर प्रेस करने की आवश्यकता होगी और सही डिस्क का चयन करना होगा।
जितना संभव हो उतना सटीक होने के लिए, बूट ध्वज को GRUB के लिए महत्वपूर्ण नहीं है, डिफ़ॉल्ट GRUB द्वारा UUIDs के लिए बूट करने के लिए सही फाइल सिस्टम खोजने के लिए। GParted में बूट फ्लैग या bios_grub फ्लैग सेट करना आमतौर पर विभाजन के लिए एक प्रकार (MBR) या GUID (GPT) सेट करता है।
ठीक प्रकार से काम करने वाले सेटअप के अलावा, सही प्रकार या GUID सेट करने का लाभ यह है कि ये विभाजन फिल्म निर्माता में छिपे रहेंगे। प्रकार और GUID की जांच और परिवर्तन का सबसे आसान तरीका डिस्क के माध्यम से है ( gnome-disks
)।
वैकल्पिक रूप से आप parted या gdisk का उपयोग कर सकते हैं:
जीपीटी के लिए विकिपीडिया पर GUID की एक बड़ी सूची है ।
मैनुअल केparted
अनुसार कमांडलाइन समकक्ष हैं और ।parted $device set partition esp on
parted $device set partition bios_grub on
/boot/
नहीं मिली"। grub.cfg
सही UUID को ईएसपी विभाजन अंक में। कोई विचार? मुझे एक नया प्रश्न पोस्ट करने में खुशी होगी।