Ubuntu और Windows 7 स्थापित करने के लिए एक बूट करने योग्य (UEFI GRUB) USB बनाएं


12

मैं उबंटू और विंडोज 7 को स्थापित करने के लिए एक बूट करने योग्य ईएफआई यूएसबी बनाना चाहता हूं (शायद पार्टेडमजिक जैसी उपयोगिताओं के साथ )। मैंने ऐसा किया था कि पहले MultiSystem का उपयोग करना । हालांकि, मैं GPT का उपयोग कर रहा हूं और विंडोज इंस्टॉल को GPT सिस्टम पर इंस्टॉल करने के लिए EFI मोड में लॉन्च करने की आवश्यकता है। मुझे लगता है कि मुझे इसके बजाय GRUB EFI का उपयोग करना चाहिए? यदि GRS EFI बूट करने योग्य USB बनाने वाली MultiSystem जैसी कोई ऐप नहीं है, तो मैं खुद कैसे बना सकता हूं?

मुझे लगता है कि मैं अपने USB को GPT के रूप में प्रारूपित करूंगा, और उस पर GRUB EFI स्थापित करूंगा (कैसे?)। फिर मुझे Ubuntu और Windows 7 को EFI में लोड करने के लिए GRUB EFI को कॉन्फ़िगर करने की आवश्यकता है? मैं ये कैसे कर सकता हूं?

अपडेट करें

यहाँ मैंने कोशिश की है

  • मेरे USB (GPT, 100 + MB FAT32 (/ dev / sdc1, सेट बूट ध्वज) पर 2 विभाजन बनाएं, बाकी FAT32, / dev / sdc2, इंस्टॉल के लिए)
  • विंडोज 7 और उबंटू 11.10 आइसो को इंस्टॉलर विभाजन, 2 अलग-अलग फ़ोल्डरों में निकालें
  • का उपयोग करने की कोशिश की sudo elilo -b /dev/sdc1--autoconf --efiboot -v`

jiewmeng@JM:~$ sudo elilo -b /dev/sdc1 --autoconf --efiboot -v
elilo: backing up existing /etc/elilo.conf as /etc/elilo.conf-
Loaded efivars kernel module to enable use of efibootmgr
elilo: Checking filesystem on /dev/sdc1...
elilo: Mounting /dev/sdc1...
e    lilo: 44298KB needed, 78781KB free, 42192KB to reuse
elilo: Installing primary bootstrap /usr/lib/elilo/elilo.efi onto /dev/sdc1...
elilo: Installing /tmp/elilo.k8NWXX on /dev/sdc1...
elilo: Installing /vmlinuz on /dev/sdc1...
elilo: Installing /vmlinuz.old on /dev/sdc1...
elilo: Installing /initrd.img on /dev/sdc1...
elilo: Installing /initrd.img.old on /dev/sdc1...
elilo: Updating EFI boot-device variable...
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: An error occured while updating boot menu, we'll ignore it
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.
elilo: Installation complete.

था sudo modprobe efivarsकोई उत्पादन मिल गया, लेकिन एक ही त्रुटि मिली, मैं अपनी लगता है क्योंकि मैं EFI उबंटू में bootted नहीं कर रहा हूँ?

अगला, मैं फिर से कोशिश करने के लिए EFI मोड में लाइव सिस्टम में बूट करने के लिए USB स्टार्टअप डिस्क क्रिएटर का उपयोग करूँगा

अपडेट करें

मैं इतना खो गया हूं, क्या विंडोज 1 की गलती से स्थापित है? मैंने UNETBootIn के साथ उबंटू अल्टरनेट के लिए एक बूटेबल USB फॉर्मेट किया और बनाया, और यह बिना उपलब्ध कर्नेल की समान त्रुटि के साथ भी विफल रहा। अगर मैंने उबंटू डेस्कटॉप बनाया है तो मुझे उपयुक्त स्रोत नहीं मिलेंगे

Ubuntu डेस्कटॉप के लिए syslog http://pastebin.com/CdbUPXax स्थापित करें

मुझे लगता है कि मैं बेहतर समय बर्बाद नहीं कर रहा हूं और जल्द ही एमबीआर पर वापस लौट आया हूं ... इसका मतलब है कि मुझे किसी तरह अपने सभी डेटा 1 बैकअप करना होगा ... यही कारण है कि मैं इसे अंतिम उपाय में देरी कर रहा हूं ... कोई विचार?

अपडेट करें

मैंने उबंटू 11.10 को BIOS मोड (नॉन-ईएफआई) में वैकल्पिक रूप से बूट करने की कोशिश की, ठीक है, सिवाय इसके कि मैं एक बूट लोडर स्थापित नहीं कर सकता। इसे कहते हैं घातक त्रुटि। मैंने तब USB को रिकवरी मोड में बूट करके GRUB स्थापित किया। काम करता है लेकिन यह बूट नहीं करता है। बूट पर एक रिक्त स्क्रीन देता है। यदि मैं पुनर्प्राप्ति मोड (HDD, जहां ubuntu स्थापित है) पर दर्ज करने का प्रयास करता हूं, तो कीबोर्ड विफल होने लगता है, माउस में हालांकि प्रकाश होता है।


क्या आपने इस पर ध्यान दिया है? unetbootin.sourceforge.net
डस्टिन एल।

Easy2Boot आप क्या चाहते हो सकता है।
स्टीविस

उत्तर तब सर्वोत्तम होते हैं जब वे केवल एक लिंक या कुछ संभावित समाधान के संदर्भ से अधिक होते हैं। ऐसे उत्तर जो दिखाते हैं कि कुछ करना है या बहुत कम से कम सामान्य दृष्टिकोण का वर्णन करना है जो हम यहाँ हैं।
स्लम

जवाबों:


8

मैं इस प्रश्न / उत्तर के अपडेट पर काम कर रहा हूं।
यह त्रुटियों के बिना काम नहीं करता है, लेकिन जैसा कि मैंने @jiewmeng के साथ काम किया, मैंने खुलासा किया कि लक्ष्य एक हार्ड ड्राइव, यूईएफआई पर विंडोज और उबंटू दोनों को स्थापित करने के लिए एक यूएसबी का उपयोग करना था।
इसमें कुछ समय लगा है और मुझे इसका हल मिल गया है लेकिन हमें सवाल और जवाब को साफ करने की जरूरत है।
हो सकता है कि मूल प्रश्न का उत्तर भी दिया जा सकता है, लेकिन चूंकि लक्ष्य स्थापित पक्ष पर अधिक था, इसलिए एक बूट यूईएफआई यूएसबी कम महत्वपूर्ण था।
मैं वर्तमान में विंडोज के लिए दो यूएसबी स्टिक का उपयोग कर रहा हूं, एक उबंटू के लिए।
यह ASAP अपडेट किया जाने वाला एक WIP है

मैं कुछ दिनों के लिए इस पर काम कर रहा हूं, यहां और वहां खाली समय और अंत में एक ही यूएसबी है, जो बूट 7 और ubuntu की स्थापना की पेशकश करेगा।
मेरा कॉन्फ़िगरेशन 64 बिट विशिष्ट है, आप 32 बिट इंटल को समायोजित करने के लिए प्रयास कर सकते हैं और बदल सकते हैं लेकिन फ़ाइल नाम में कई अंतर हैं। अगर आपको 32 बिट की जरूरत है तो कृपया फॉलो करें। ने कहा कि...

आप एक GPT स्वरूपित USB से विंडोज 7 स्थापित नहीं कर सकते।
आप gdisk, या parted का उपयोग कर सकते हैं, और एक GPT USB बना सकते हैं, जो UEFI के माध्यम से बूट होगा
आप USB से विंडोज इंस्टॉलर को लोड करने के लिए UEFI बूट मैनेजर को कॉन्फ़िगर करने में सक्षम होंगे, लेकिन इंस्टॉलेशन इंस्टॉलेशन करने के लिए आवश्यक फ़ाइलों और डेटा की खोज करेगा और यह GPT USB को पहचान नहीं पाएगा, जबकि यह एक MBR USB खोजेगा ।

हालाँकि, यह बहुत कम परिणाम है क्योंकि UEFI MBR / GPT और EFI विभाजन को देखता है, UEFI बूटिंग पर विकिपीडिया प्रविष्टि देखें

USB के लिए एक std MBR का उपयोग करने के बावजूद, एक UEFI के माध्यम से एक GPT डिस्क में स्थापित किया जा सकता है।

64 बिट UEFI एसस सबर्टूथ पर निम्नलिखित ने 64 बिट इंस्टाल का उपयोग कर काम किया।
प्रत्येक मदरबोर्ड पर फर्मवेयर बहुत विशिष्ट है और प्रत्येक मदरबोर्ड UEFI फर्मवेयर UEFI बूट के लिए अलग-अलग खोज करता है। आपके पास अपने मदरबोर्ड के साथ बूट डेटा खोजने के मुद्दे हो सकते हैं, लेकिन मेरे ASUS पर निम्नलिखित काम करता है।

यहां बताया गया है कि मैंने विंडोज 7 64 बिट डीवीडी और एक उबंटू आईएसओ (11 उदाहरण के लिए, 11.10 64 बिट डेस्कटॉप आइसो) की एक इंस्टालेबल कॉपी के साथ एक बूटेबल यूएसबी बनाया।

एक 16G USB का उपयोग करना, जो कि
मेरे हाथ में था ... मेरे USB को / dev / sdc के रूप में स्थापित किया गया है, प्रासंगिक संदर्भों को अपने USB के लिए उपयुक्त डिवाइस में बदलें।
सुनिश्चित करें कि आपके पास 7zip स्थापित है।

fdisk /dev/sdc
create new MBR, 'o' command
create new partition, part 1, size 8G, type ef, set bootable, write
mkfs.vfat -F32 /dev/sdc1
mkdir /mnt/USB
mount /dev/sdc1 /mnt/USB
insert Windows 7 x64 DVD, again, mine appeared as /media/UDF\ Volume, you need to change references below
# Extract/Copy the entire Windows DVD to the USB
cp -r /media/UDF\ Volume/* /mnt/USB
# I don't know what effect the following rename has, I copied blindly from another webpage.
mv /mnt/USB/sources/ei.cfg /mnt/USB/sources/ei.cfg_
cd /mnt/USB/efi/microsoft/boot/
7z e /mnt/USB/sources/install.wim 1/Windows/Boot/EFI/bootmgfw.efi
cp -r /mnt/USB/efi/microsoft/boot /mnt/USB/efi/
mv /mnt/USB/efi/boot/bootmgfw.efi /mnt/USB/efi/boot/bootx64.efi
# At this point I booted the USB, and installed Windows 7 to a GPT SSD
# Upon reboot I noticed the Windows Boot loader in my UEFI boot list (actually it made itself 1st).
# so, here we have a standalone Windows7 UEFI installer that will function correctly (64bit ASUS, at least).
# Now, on to adding Ubuntu
cd /mnt/USB
7z x /path2iso/ubuntu-11.10-desktop-amd64.iso
# If 7z finds prexisting files with the same name, just allow always overwrite
# (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? A

# At this point I booted the USB, and installed Ubuntu x64 to a GPT SSD
# we have a standalone Ubuntu 64bit installer that install Ubuntu 64

# Now, on to add a boot manager that will allow us to select between Windows 7 and Ubuntu

# Get the target UUID of the USB partition, using either blkid or the following command
grub-probe --target=fs_uuid /mnt/USB/efi/Microsoft/Boot/bootmgfw.efi  
will print YOUR_UUID # Substitute into the following references to YOUR_UUID

# Append the following menuentry to /mnt/USB/boot/grub/x86_64-efi/grub.cfg

menuentry "Microsoft Windows x86_64 UEFI-GPT Setup" {
    insmod usbms  
    insmod part_gpt  
    insmod part_msdos  
    insmod fat  
    insmod search_fs_uuid  
    insmod chain  
    search --fs-uuid --no-floppy --set=root YOUR_UUID # <- CHANGE THIS TO YOUR UUID
    chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi  
}

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

अगर आपको कोई त्रुटि है, तो मुझे संदेश देने में संकोच न करें, और मैं इसे देखूंगा।


मैंने सफलतापूर्वक विंडोज इंस्टॉलर में " इस बिंदु पर मैंने यूएसबी को बूट किया, और विंडोज 7 स्थापित किया "। हालाँकि, जब grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78मुझे "अज्ञात अतिरिक्त तर्क` 4983-डीए78 'मिलता है। "
Jiew मेंग

रनिंग ग्रब-जांच यूयूआईडी का उपयोग करने के लिए प्रदान करता है। फिर इसे निम्नलिखित पाठ में प्रतिस्थापित किया जाना है।
bsd

कमांड केवल grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi कोई आर्गन्स नहीं है। '4983-DA78' का मूल्य आपके UUID को ग्रब-जांच द्वारा लौटाया जा रहा है, आपके लिए निम्नलिखित पाठ में आपका उपयोग करना है जैसे कि आपका_UUID
bsd

स्थापित विंडोज़ ठीक है, लेकिन जब मैंने ubuntu की कोशिश की तो यह कोई कर्नेल, कोई विचार नहीं कहता है?
Jiew मेंग

क्या आपने उबंटू यूएसबी स्टिक के माध्यम से पहले से स्थापित विंडोज 7 पर उबंटू स्थापित किया था?
bsd

3

मैं सवाल का जवाब देने की पूरी कोशिश करूंगा, उम्मीद है कि मैं आपको सही दिशा में ले जाऊंगा।

जैसा कि आप पहले से ही जानते हैं, GP7 से Win7 x64 की स्थापना केवल EFI से ही संभव है। इससे भी बदतर अपने हाइब्रिड को किसी भी हाइब्रिड का उपयोग करने से रोका, क्योंकि Win7 x64 किसी भी हाइब्रिड डिस्क को विरासत MBR के रूप में मानता है। इसलिए आपको अपने USB को GPT के रूप में रीलैब / रीपार्ट करना होगा। पोर्टेबिलिटी चिंताओं को देखते हुए, इस प्रकार का सेटअप USB के लिए बेहतर नहीं है। मैं यह नहीं कह रहा हूं कि एक मत बनाओ, मैं बस किसी भी स्वचालित उपकरण के अस्तित्व की उम्मीद नहीं करूंगा। मेरा वास्तव में मानना ​​है कि आप अपने ड्राइव को प्रारूपित करने के बाद मल्टीसिस्टम का उपयोग करने में सक्षम हो सकते हैं। यदि ऑटो स्थापित Grub2 में EFI / GPT समर्थन का अभाव है, तो इसे Grub2 के सही संस्करण के साथ अधिलेखित करें।

इसलिए मुझे लगता है कि आपको मैन्युअल रूप से कुछ इंस्टाल करने पड़ सकते हैं, जो इसकी संपूर्णता में है, इस उत्तर के दायरे से परे है। हालाँकि मैं आपको शुरू करने में सक्षम होना चाहिए ...।

की एक वर्तमान रिलीज़ का उपयोग करके parted, GPT के साथ अपनी ड्राइव को पुनः लोड करें। मान लिया जाता है कि डिस्क / dev / sdc पर स्थित है,

 parted -s /dev/sdc mklabel gpt

अब आपको ड्राइव को विभाजन करना चाहिए, अधिमानतः एक यूएसबी एक ही प्राथमिक होना चाहिए। मैं हमेशा अपने बूट करने योग्य USB के लिए, FAT32 के साथ जाता हूं।

parted -s /dev/sdc mkpart primary fat32 0 -1

parted mkpartFS नहीं बनाता है, जैसे mkpartfsहोगा। partedडॉक्टर उचित उपयोग करने की सलाह mkfsके रूप में करने का विरोध किया, partedके समर्थन में बनाया।

mkfs.vfat /dev/sdc1

डेटा को संभालने के लिए आपका ड्राइव अब तैयार है। इस बिंदु पर मैं उम्मीद कर रहा हूं कि आप अपने ड्राइव को सेट करने के लिए मल्टीसिस्टम का उपयोग कर सकते हैं।

एक बार जब आपका काम पूरा हो जाता है ... हमें Grub2 को सेटअप करने की आवश्यकता होती है, जाहिर है कि हम कॉन्फिग को रखना चाहते हैं। मल्टीसिस्टम में EFI से बूट करने की क्षमता हो सकती है, लेकिन आपकी परवाह किए बिना मॉड्यूल कॉन्फिग के साथ गड़बड़ करना होगा।

Grub2 कॉन्फ़िगरेशन में स्थित है boot/grub/grub.cfg,। आप देख सकते हैं कुछ मॉड्यूल बाहर टिप्पणी की। मैंने GPT से संबंधित एक देखा है, लेकिन EFI के बारे में निश्चित नहीं है। मैं देखूंगा और कुछ परीक्षण करूंगा, कुछ Grub2 डॉक्स पढ़ने पर विचार करें।

यदि आपको अभी भी कोई समस्या है, तो अनुवर्ती प्रश्नों के साथ वापस टिप्पणी करें।


2

ऊपर दिए गए उबाऊ जवाब के साथ शुरू करें, फिर पार्टेड मैजिक को जोड़ने के लिए यहां जारी रखें।

इस बारे में जाने के कुछ तरीके हैं, लेकिन सबसे सरल है कि पार्टिक मैजिक आईएसओ से पार्टेड मैजिक आईएसओ को अपने यूएसबी डिस्क की जड़ में कॉपी करें, और फिर इसके लिए एक मेनू प्रविष्टि जोड़ें:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
  linux /pmagic/bzImage
  initrd /pmagic/initrd.img
}

(आपको इसे पूरी तरह से काम करने के लिए grub2 मैनुअल को पढ़ने की आवश्यकता हो सकती है; जब मैंने दूसरे दिन ऐसा किया था, तब मैंने grub1 का उपयोग किया था, और कॉन्फ़िगरेशन फ़ाइलें अलग हैं।)

यहाँ नकारात्मक पक्ष यह है कि आप एक ही फाइल सिस्टम में विंडोज, उबंटू और अब पार्टेड मैजिक के लिए फाइल मिक्स कर रहे हैं। इससे भी बदतर, हमने उन्हें सीधे EFI सिस्टम विभाजन में डाल दिया है। यह काम करता है, लेकिन निश्चित रूप से यह ऑपरेटिंग सिस्टम के हर संयोजन के लिए काम नहीं कर सकता है, इसलिए हमें वास्तव में क्या करना चाहिए, प्रत्येक ओएस के लिए ड्राइव पर एक अलग विभाजन करना है। ऐसा करने के लिए सही फाइल सिस्टम की खोज के लिए ग्रब को बताने की आवश्यकता होती है, जिसे वह गाइड द्वारा कर सकता है। हर फाइलसिस्टम को बनाते समय एक अनोखा गाइड मिलता है, इसलिए आपको उस गाइड को खोजने के लिए ग्रब-जांच (या परिचित उपकरण) का उपयोग करना होगा। आप इसे अपने ग्रब कॉन्फिगर में खोज कमांड में चिपका देते हैं:

menuentry "Parted Magic" --class gnu-linux --class gnu --class os {
    search --no-floppy --fs-uuid --set 8d2acb74-5216-4696-90a8-c76f92d5e4ee
    linux /pmagic/bzImage
    initrd /pmagic/initrd.img
}

उम्मीद है की यह मदद करेगा।


मल्टीबूट काम करेगा, लेकिन उबाऊ जवाब में, जब मैं उबंटू स्थापित करने की कोशिश करता हूं, तो मुझे कर्नेल उपलब्ध नहीं होता है (वैकल्पिक) या उपयुक्त (डेस्कटॉप) त्रुटियों को कॉन्फ़िगर नहीं कर सकता (देखें बेडिंग पोस्ट और टिप्पणियां), कोई भी विचार कैसे तय किया जा सकता है? हम @ chat.stackexchange.com/rooms/info/2240/… पर
Jiew मेंग

2

गैर-यूईएफआई मशीनों में, हम यूएसबी स्टिक को बूट करने योग्य बनाने के लिए GRUB2 का उपयोग कर सकते हैं। फिर, हम USB से विंडोज बूट करने के लिए GRUB2 में 'ntldr' कमांड का उपयोग कर सकते हैं।

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

मेरे ब्लॉग पर पूरा उत्तर देखें लिनक्स से बूट करने योग्य विंडोज़ यूएसबी बनाना


1
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के विस्तृत विवरण को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना है। यदि आपका लिंक नीचे चला जाता है तो लिंक-ओनली उत्तर लगभग बेकार हो सकते हैं।
जी-मैन का कहना है कि 'मोनिका' की बहाली

1

GRUB2 से परेशान क्यों? यह सिर्फ चीजों को उलझाता है। बस ईएसपी से लिनक्स कर्नेल को बूट करने के ईएफआई स्टब विधि को यूईएफआई शेल को ईएसपी में जोड़कर उपयोग करें।


जानकर अच्छा लगा। मेरे विशिष्ट मामले में (पुराने मैकबुक प्रो) यह काम नहीं करता है, क्योंकि Apple ने इस मालिकाना बकवास का नाम बदलकर "EFI" कर दिया है और कहता है कि उसका बूटलोडर एक EFI है। लेकिन वास्तव में, यह एक अनिर्दिष्ट, छोटी गाड़ी, कस्टम बूटलोडर है जो केवल ओएक्सएक्स और विंडोज़ को बूट करने में सक्षम है। इस प्रकार, मैंने LILO को विभाजन में से एक में स्थापित किया और इस बूटलोडर से झूठ बोला कि यह एक विंडोज़ है। तो यह काम करता है। तो, "EFI" BIOS इम्यूलेशन मोड में LILO को बूट करता है, और LILO कर्नेल को बूट करता है।
पीटर - मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.