Ubuntu ve Windows 7 için Önyüklenebilir (UEFI GRUB) USB Oluşturma


12

Ubuntu ve Windows 7'yi yüklemek için bir Önyüklenebilir EFI USB oluşturmak istiyorum (belki PartedMagic gibi yardımcı programlarla ). Bunu daha önce MultiSystem kullanarak yapmıştım . Ancak, GPT kullanıyorum ve GPT sistemine yüklemek için Windows kurulumunun EFI modunda başlatılması gerekiyor. Bunun yerine GRUB EFI kullanmalıyım? GRUB EFI Önyüklenebilir USB oluşturan MultiSystem gibi bir uygulama yoksa, kendim nasıl oluşturabilirim?

Sanırım USB'mi GPT olarak biçimlendireceğim ve üzerine GRUB EFI yükleyeceğim (nasıl?). Sonra Ubuntu ve Windows 7'yi EFI'ye yüklemek için GRUB EFI'yi yapılandırmam gerekiyor mu? Bunları nasıl yapabilirim?

GÜNCELLEME

İşte denedim

  • USB'imde 2 bölüm oluştur (GPT, 100 + MB FAT32 (/ dev / sdc1, önyükleme bayrağını ayarla), geri kalan FAT32, / dev / sdc2, yüklemeler için)
  • Windows 7 ve Ubuntu 11.10 iso'ları Installer bölümüne, 2 farklı klasöre çıkarın
  • sudo elilo -b /dev/sdc1--Autoconf --efiboot -v` kullanılarak denendi

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.

Did sudo modprobe efivarsI EFI Ubuntu içine bootted değilim çünkü hiçbir çıkış var ama aynı hata var, ben onun düşünüyorsun?

Ardından, tekrar denemek için EFI modunda canlı bir sisteme önyükleme yapmak için USB Başlangıç ​​Disk Oluşturucu'yu kullanmayı deneyeceğim

GÜNCELLEME

Ben çok kayboldum, Windows 1. hata yüklü mü? Biçimlendirdim ve Ubuntu için önyüklenebilir bir USB yaptım UNetBootIn ile alternatif ve kullanılabilir çekirdek yok aynı hatayla da başarısız oldu. Bir Ubuntu Masaüstü oluşturduysam, apt kaynaklarını yapılandıramayacağım

Ubuntu masaüstü kurulumu için sistem günlüğü http://pastebin.com/CdbUPXax

Zaman kaybetmemenin ve yakında MBR'ye geri dönmemenin daha iyi olduğunu düşünüyorum ... bu bir şekilde tüm verilerimi yedeklemem gerektiği anlamına gelecektir 1 ... bu yüzden son çare için geciktiriyorum ... herhangi bir fikir?

GÜNCELLEME

Önyükleme yükleyicisini yükleyemem dışında, Ubuntu 11.10 Alternatif BIOS modunda (EFI olmayan) önyükleme yapmayı denedim. Ölümcül hata diyor. Daha sonra USB'yi kurtarma modunda önyükleyerek GRUB'u yükledim. Çalışıyor ama önyükleme yapmıyor. Önyüklemede boş bir ekran verir. Kurtarma moduna girmeye çalışırsam (ubuntu'nun yüklü olduğu HDD'de), klavye başarısız gibi görünüyor, farenin ışığı var.



Easy2Boot istediğiniz gibi olabilir.
SteveSi

Yanıtlar en iyisi, sadece bir bağlantıdan veya bazı potansiyel çözümlere referans olmaktan daha fazlası olduğunda. Bir şeylerin nasıl yapılacağını veya en azından genel yaklaşımı açıklayan cevaplar burada peşindeyiz.
slm

Yanıtlar:


8

Bu soru / cevap için bir güncelleme üzerinde çalışıyorum.
Bu hatasız çalışmıyor, ancak @jiewmeng ile çalıştığım için, hedefin hem Windows hem de Ubuntu'yu tek bir sabit sürücüye, UEFI'ye yüklemek için bir USB kullanmak olduğunu keşfettim.
Biraz zaman aldı ve çözümü buldum ama soruyu ve cevabı temizlememiz gerekiyor.
Belki orijinal soru da cevaplanabilir, ancak hedef kurulum tarafında daha fazla olduğundan, tek önyükleme UEFI USB daha az önemli görünüyordu.
Şu anda biri Windows, diğeri Ubuntu için olmak üzere iki USB bellek kullanıyorum.
Bu ASAP güncellenecek bir WIP

Birkaç gün boyunca burada ve orada boş bir saatte çalışıyorum ve son olarak Windows 7 ve Ubuntu'nun önyükleme ve kurulumunu yapacak tek bir USB var.
Benim yapılandırmam 64 bit spesifik, 32bit intall karşılamak için deneyebilir ve değiştirebilirsiniz, ancak dosya adlarında birçok fark vardır. 32bit gerekiyorsa lütfen takip edin. Bahsedilen...

Windows 7'yi GPT biçimli bir USB'den yükleyemezsiniz.
Gdisk kullanabilir veya ayrıştırıp UEFI üzerinden önyükleme yapacak bir GPT USB oluşturabilirsiniz .
UEFI önyükleme yöneticisini Windows yükleyicisini USB'den yükleyecek şekilde yapılandırabilirsiniz, ancak yükleyici, yüklemeyi gerçekleştirmek için gereken dosyaları ve verileri arayacak ve bir MBR USB bulacaktır, GPT USB'yi tanımayacaktır. .

Bununla birlikte, bu UEFI'nin MBR / GPT ve EFI bölümüne baktığı için çok az sonuç vardır , UEFI Önyükleme hakkındaki Wikipedia girişine bakın

USB için std MBR kullanılmasına rağmen, UEFI üzerinden bir GPT diskine takılabilir.

Aşağıdakiler, 64bit UEFI Asus Sabertooth üzerinde 64bit kurulumlar kullanılarak çalıştı.
Her anakarttaki bellenim çok özeldir ve her anakart UEFI bellenimi UEFI önyüklemesini farklı arar. Anakartınızda önyükleme verilerini bulma konusunda sorun yaşayabilirsiniz, ancak aşağıdakiler ASUS'umda çalışır.

Windows 7 64bit DVD'nin yüklenebilir bir kopyası ve bir Ubuntu ISO (bu örnekte 11.10 64bit masaüstü iso) ile önyüklenebilir bir USB'yi nasıl yapacağım aşağıda açıklanmıştır.

Elimde olan tek şey olan 16G USB kullanarak ...
/ dev / sdc olarak takılan USB'm, ilgili referansları USB'niz için uygun cihaza değiştirin.
7zip'in kurulu olduğundan emin olun.

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  
}

Ve işte! UEFI yüklemesi ile GPT disklerine kuruluma izin veren, önyükleme yöneticisi olarak grub kullanan çalışan bir USB çubuğu.

Eğer bir hatanız varsa, bana mesaj atmaktan çekinmeyin, ben de ona bakacağım.


" Bu noktada USB'yi başlattım ve Windows 7'yi yükledim " noktasında Windows Installer'a başarıyla önyükleme yaptım . Ancak denerken grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78"Bilinmeyen ekstra argüman` 4983-DA78 '' elde ediyorum.
Jiew Meng

Grub-sondası çalıştırılması, uuidin kullanılmasını sağlar. Daha sonra aşağıdaki metinde ikame edilecektir.
BSD

komut sadece grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi Değişken yok. '4983-DA78' değeri, aşağıdaki metinde YOUR_UUID olarak kullanmanız için UUID'niz grub-probu tarafından döndürülür
bsd

windows windows yüklü ama ubuntu denediğimde hiçbir çekirdek, herhangi bir fikir diyor?
Jiew Meng

Ubuntu'yu UEFI USB çubuğu aracılığıyla zaten Windows 7 yüklü bir makineye kurdunuz mu?
bsd

3

Soruyu cevaplamak için elimden geleni yapacağım, umarım seni doğru yöne getiririm.

Bildiğiniz gibi GPT'den Win7 x64 kurulumu yalnızca EFI'den mümkündür. Daha da kötüsü, herhangi bir hibrit kullanmanız engellendi, çünkü Win7 x64 herhangi bir hibrit diski eski MBR olarak ele alıyor. Bu yüzden USB'nizi GPT olarak yeniden etiketlemeniz / yeniden bölümlendirmeniz gerekir. Bu tür kurulum, taşınabilirlikle ilgili kaygılar dikkate alındığında bir USB için tercih edilmez. Bir tane yapma demiyorum, sadece otomatik bir aracın varlığını beklemem. Aslında sürücünüzü biçimlendirdikten sonra çoklu sistemi kullanabileceğinize inanıyorum. Otomatik olarak kurulan Grub2'de EFI / GPT desteği yoksa, doğru Grub2 sürümüyle değiştirin.

Bu yüzden, kurulumun bir kısmını el ile yapmanız gerekebilir, ki bu tamamen bu cevabın kapsamı dışındadır. Seni başlatabilmeme rağmen ....

Geçerli bir sürümünü kullanarak parted, sürücünüzü GPT ile yeniden etiketleyin. Diskin / dev / sdc konumunda olduğunu varsayarsak,

 parted -s /dev/sdc mklabel gpt

Şimdi sürücüyü bölmelisiniz, tercihen bir USB tek bir birincil olmalıdır. Önyüklenebilir USB'lerim için her zaman FAT32 ile giderim.

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

parted mkpartFS'yi yaratmaz, olduğu gibi mkpartfs. partedDOC uygun kullanılmasını önerir mkfsaksine, parted'ın desteği yerleşik.

mkfs.vfat /dev/sdc1

Sürücünüz artık verileri işlemek için hazır. Bu noktada sürücünüzü kurmak için çoklu sistemi kullanabileceğinizi umuyorum.

Bunlarla işiniz bittiğinde ... Grub2'yi kurmamız gerekiyor, açıkçası yapılandırmayı korumak istiyoruz. Çoklu sistem EFI'den önyükleme yeteneğine sahip olabilir , ancak ne olursa olsun modül yapılandırmasıyla uğraşmak zorunda kalacaksınız.

Grub2 yapılandırması, konumunda bulunur boot/grub/grub.cfg. Bazı modüllerin yorumlandığını görmelisiniz. GPT ile ilgili bir tane gördüm, ancak EFI'den emin değilim. Bazı testler yapardım ve yapardım, Grub2 belgelerinden bazılarını okumayı düşünün.

Hâlâ sorun yaşıyorsanız, takip eden sorularla yorum yapın.


2

Yukarıdaki bdowning'in cevabı ile başlayın, sonra Parted Magic eklemek için buraya devam edin.

Bununla ilgili birkaç yol vardır, ancak en basit olanı pmagic dizinini Parted Magic ISO'dan usb diskinizin köküne kopyalamak ve daha sonra bunun için bir menü girişi eklemektir:

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

(Grub2 kılavuzunu tamamen çalıştırabilmeniz gerekebilir; geçen gün bunu yaptığımda grub1'i kullandım ve yapılandırma dosyaları farklı.)

Buradaki dezavantaj, Windows, Ubuntu ve şimdi Parted Magic için dosyaları tek bir dosya sistemine karıştırmanızdır. Daha da kötüsü, onları doğrudan EFI sistem bölümüne yerleştirdik. Çalışır, ancak elbette her işletim sistemi kombinasyonu için çalışmayabilir, bu yüzden gerçekten yapmamız gereken şey her bir işletim sistemi için sürücüde ayrı bir bölüm oluşturmaktır. Bunu yapmak, gruba, rehber tarafından yapabileceği doğru dosya sistemini aramasını söylemeyi gerektirir. Her dosya sistemi oluşturulduğunda benzersiz bir kılavuz alır, bu nedenle bu kılavuzu bulmak için grub-prob (veya benzer araçlar) kullanmanız gerekir. Daha sonra grub yapılandırmanızdaki bir arama komutuna yapıştırırsınız:

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
}

Bu yardımcı olur umarım.


Çoklu önyükleme çalışacak, ancak Ubuntu'yu yüklemeye çalıştığımda bdowning'in cevabında, Kernel'i kullanılamıyorum (alternatif) veya apt (masaüstü) hatalarını yapılandıramıyorum (bdowning'in gönderisine ve yorumlarına bakın), bunun nasıl düzeltilebileceği hakkında herhangi bir fikir? Ayrıca sohbet ediyoruz @ chat.stackexchange.com/rooms/info/2240/…
Jiew Meng

2

UEFI olmayan makinelerde, USB çubuğunu önyüklenebilir yapmak için GRUB2'yi kullanabiliriz. Ardından, Windows'u USB'den önyüklemek için GRUB2'deki 'ntldr' komutunu kullanabiliriz.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Blogumda tam cevabı görün Linux'tan önyüklenebilir bir windows USB oluşturma


1
Bu bağlantı soruyu cevaplayabilse de, cevabın daha ayrıntılı bir açıklamasını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantınız bozulursa, yalnızca bağlantı yanıtları neredeyse işe yaramaz hale gelebilir.
G-Man, 'Monica'yı Yeniden Başlat' diyor

1

Neden GRUB2 ile uğraştınız? Sadece işleri karmaşıklaştırır. ESP'ye bir UEFI Kabuğu ekleyerek ESP'den Linux çekirdeğini önyüklemek için EFI STUB yöntemini kullanmanız yeterlidir.


Bilmek güzel. Benim özel durumumda (eski macbook pro) işe yaramıyor, çünkü Apple bu tescilli saçmalığı "EFI" olarak yeniden adlandırdı ve önyükleyicisinin bir EFI olduğunu söylüyor. Ama aslında, sadece osx ve pencereleri önyükleyebilen belgesiz, buggy, özel bir bootloader. Böylece, LILO'yu bölümlerden birine yükledim ve bu önyükleyiciye bir pencere olduğunu söyledim. Yani işe yarıyor. Böylece, "EFI" LILO'yu BIOS öykünme modunda, LILO çekirdeği önyükler.
peterh - Monica'yı yeniden canlandır
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.