Buat Bootable (UEFI GRUB) USB untuk Ubuntu & Windows 7 Install

12

Saya ingin membuat Bootable EFI USB untuk menginstal Ubuntu & Windows 7 (mungkin dengan utilitas seperti PartedMagic ). Saya melakukan itu menggunakan MultiSystem sebelumnya. Namun, saya menggunakan GPT dan instalasi Windows harus diluncurkan dalam mode EFI untuk menginstal pada sistem GPT. Saya kira saya harus menggunakan GRUB EFI saja? Jika tidak ada aplikasi seperti MultiSystem yang membuat USB Bootable EFI GRUB, bagaimana saya bisa membuatnya sendiri?

Saya kira saya akan memformat USB saya sebagai GPT, dan menginstal GRUB EFI di atasnya (bagaimana?). Maka saya perlu mengkonfigurasi GRUB EFI untuk memuat Ubuntu & Windows 7 menginstal di EFI? Bagaimana saya bisa melakukan ini?

MEMPERBARUI

Inilah yang saya coba

  • Buat 2 partisi pada USB saya (GPT, 100 + MB FAT32 (/ dev / sdc1, atur flag boot), sisanya FAT32, / dev / sdc2, untuk pemasangan)
  • Ekstrak Windows 7 & Ubuntu 11.10 iso ke dalam partisi Installer, 2 folder berbeda
  • sudo elilo -b /dev/sdc1Sudah mencoba menggunakan --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.

Apakah sudo modprobe efivarstidak mendapat output tetapi mendapat kesalahan yang sama, saya pikir itu karena saya tidak disombongkan ke EFI Ubuntu?

Selanjutnya, saya akan mencoba menggunakan USB Startup Disk Creator untuk mem-boot ke sistem langsung dalam mode EFI untuk mencoba lagi

MEMPERBARUI

Saya sangat tersesat, apakah Windows salah menginstal? Saya memformat & membuat USB bootable untuk Ubuntu Alternate dengan UNetBootIn, dan gagal juga dengan kesalahan yang sama dengan tidak ada kernel yang tersedia. Jika saya membuat Desktop Ubuntu, saya tidak akan dapat mengkonfigurasi sumber apt

Syslog untuk ubuntu desktop menginstal http://pastebin.com/CdbUPXax

Saya merasa lebih baik saya tidak membuang waktu dan kembali ke MBR segera ... itu berarti saya harus entah bagaimana membuat cadangan semua data saya ke-1 ... itulah sebabnya saya menunda ke upaya terakhir ... ada ide?

MEMPERBARUI

Saya mencoba mem-boot Ubuntu 11.10 Alternatif dalam mode BIOS (Non-EFI), terinstal dengan baik kecuali saya tidak dapat menginstal boot loader. Dikatakan kesalahan fatal. Saya kemudian menginstal GRUB dengan mem-boot USB dalam mode pemulihan. Berfungsi tetapi tidak bisa boot. Memberikan layar kosong saat boot. Jika saya mencoba masuk ke mode pemulihan (pada HDD, di mana ubuntu diinstal), keyboard tampaknya gagal, mouse memiliki cahaya sekalipun.

Jiew Meng
sumber
Sudahkah Anda melihat ini? unetbootin.sourceforge.net
Dustin L.
Easy2Boot mungkin yang Anda inginkan.
SteveSi
Jawaban adalah yang terbaik jika lebih dari sekadar tautan atau referensi ke beberapa solusi potensial. Jawaban yang menunjukkan bagaimana melakukan sesuatu atau paling tidak menggambarkan pendekatan umum adalah apa yang kita cari di sini.
slm

Jawaban:

8

Saya sedang mengerjakan pembaruan untuk pertanyaan / jawaban ini.
Ini tidak berfungsi tanpa kesalahan, tetapi ketika saya bekerja dengan @jiewmeng, saya menemukan bahwa tujuannya adalah menggunakan USB untuk menginstal Windows dan Ubuntu ke satu hard drive, UEFI.
Butuh beberapa saat dan saya sudah menemukan solusinya tetapi kita perlu membersihkan pertanyaan dan jawabannya.
Mungkin pertanyaan awal dapat dijawab juga, tetapi karena tujuannya lebih pada sisi instal, single boot UEFI USB sepertinya kurang penting.
Saat ini saya menggunakan dua USB stick satu untuk Windows, satu untuk Ubuntu.
Ini adalah WIP yang akan diperbarui SECEPATNYA

Saya telah mengerjakan ini selama beberapa hari, menghabiskan waktu di sana-sini dan akhirnya memiliki satu USB, yang akan boot dan menawarkan instalasi windows 7 dan ubuntu.
Konfigurasi saya adalah 64 bit spesifik, Anda dapat mencoba dan mengubah untuk mengakomodasi intall 32bit tetapi ada banyak perbedaan dalam nama file. Silakan tindak lanjuti jika Anda membutuhkan 32bit. Yang mengatakan ...

Anda tidak dapat menginstal Windows 7 dari USB yang diformat GPT.
Anda dapat menggunakan gdisk, atau berpisah, dan membuat USB GPT, yang akan melakukan booting melalui UEFI.
Anda dapat mengkonfigurasi UEFI boot manager untuk memuat installer Windows dari USB tetapi installer akan mencari file dan data yang diperlukan untuk melakukan instalasi dan itu tidak akan mengenali GPT USB, sementara itu akan menemukan MBR USB .

Namun, ini adalah konsekuensi kecil karena UEFI melihat MBR / GPT dan partisi EFI, lihat entri Wikipedia tentang UEFI Booting

Meskipun menggunakan MBR std untuk USB, orang dapat menginstal melalui UEFI ke disk GPT.

Yang berikut ini berfungsi menggunakan pemasangan 64bit, pada Asus Sabertooth UEFI 64bit.
Firmware pada setiap motherboard sangat spesifik dan setiap motherboard UEFI firmware mencari boot UEFI secara berbeda. Anda mungkin memiliki masalah dengan motherboard Anda menemukan data boot, tetapi yang berikut ini berfungsi pada ASUS saya.

Inilah cara saya membuat USB yang dapat di-boot dengan salinan Windows 7 64bit DVD yang dapat diinstal dan ISO Ubuntu (dalam contoh ini, desktop 11.10 64bit iso).

Menggunakan USB 16G, yang hanya saya miliki ...
USB saya diinstal sebagai / dev / sdc, ubah referensi yang relevan ke perangkat yang sesuai untuk USB Anda.
Pastikan Anda telah menginstal 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  
}

Dan voila! Stik USB berfungsi yang menggunakan grub sebagai boot manager, memungkinkan instalasi ke disk GPT dengan UEFI menginstal.

Jika Anda memiliki kesalahan, jangan ragu untuk mengirim pesan kepada saya, dan saya akan memeriksanya.

bsd
sumber
Saya berhasil boot ke installer windows pada titik " Pada titik ini saya boot USB, dan menginstal Windows 7 ". Namun ketika mencoba grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78saya mendapatkan "Argumen tambahan tidak diketahui` 4983-DA78 '. "
Jiew Meng
Menjalankan grub-probe menyediakan uuid untuk digunakan. Itu kemudian akan diganti dalam teks berikut.
bsd
perintahnya hanya grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi No args. Nilai '4983-DA78' adalah UUID Anda dikembalikan oleh grub-probe, untuk Anda gunakan dalam teks berikut sebagai YOUR_UUID
bsd
Windows diinstal dengan baik tetapi ketika saya mencoba ubuntu ia mengatakan tidak ada kernel, ada ide?
Jiew Meng
Apakah Anda menginstal Ubuntu ke mesin yang sudah menginstal Windows 7 melalui stik UEFI USB?
bsd
3

Saya akan melakukan yang terbaik untuk menjawab pertanyaan, semoga saya akan mengarahkan Anda ke arah yang benar.

Seperti yang sudah Anda ketahui, instalasi Win7 x64 dari GPT hanya dimungkinkan dari EFI. Lebih buruk lagi, Anda tidak dapat menggunakan hybrid apa pun, karena Win7 x64 memperlakukan disk hybrid apa pun sebagai MBR lawas. Jadi, Anda harus menandai ulang / mempartisi ulang USB Anda sebagai GPT. Jenis pengaturan ini tidak disukai untuk USB, mempertimbangkan masalah portabilitas. Saya tidak mengatakan jangan membuatnya, saya hanya tidak berharap ada alat otomatis. Saya sebenarnya percaya Anda mungkin dapat menggunakan multisistem, setelah Anda memformat drive Anda. Jika Grub2 yang dipasang secara otomatis tidak memiliki dukungan EFI / GPT, timpa dengan Grub2 versi yang benar.

Jadi saya akan berasumsi Anda mungkin harus melakukan beberapa instalasi secara manual, yang secara keseluruhan, berada di luar cakupan jawaban ini. Meskipun saya harus dapat membantu Anda memulai ....

Menggunakan rilis saat ini parted, beri label baru pada drive Anda dengan GPT. Dengan asumsi disk terletak di / dev / sdc,

 parted -s /dev/sdc mklabel gpt

Sekarang Anda harus mempartisi drive, sebaiknya USB harus menjadi satu primer. Saya selalu menggunakan FAT32, untuk USB bootable saya.

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

parted mkparttidak membuat FS, seperti mkpartfsakan. The partedDOC merekomendasikan menggunakan yang tepat mkfs, sebagai lawan parted's dibangun untuk mendukung.

mkfs.vfat /dev/sdc1

Drive Anda sekarang siap, untuk menangani data. Pada titik ini saya berharap Anda bisa menggunakan multisistem, untuk mengatur drive Anda.

Setelah Anda selesai dengan semua itu ... Kita perlu mengatur Grub2, jelas kami bermaksud menyimpan konfigurasi. Multisystem mungkin memiliki kemampuan untuk boot dari EFI, tetapi Anda harus mengacaukan konfigurasi modul.

Konfigurasi Grub2 terletak di boot/grub/grub.cfg,. Anda akan melihat beberapa modul berkomentar. Saya pernah melihat satu yang berhubungan dengan GPT, tetapi tidak yakin tentang EFI. Saya akan mencari dan melakukan beberapa pengujian, Pertimbangkan membaca beberapa dokumen Grub2.

Jika Anda masih memiliki masalah, beri komentar kembali dengan pertanyaan tindak lanjut.

JM Becker
sumber
2

Mulailah dengan jawaban bdowning di atas, lalu lanjutkan di sini untuk menambahkan Parted Magic.

Ada beberapa cara untuk melakukannya, tetapi yang paling sederhana adalah menyalin direktori pmagic dari Parted Magic ISO ke root disk usb Anda, dan kemudian menambahkan entri menu untuk itu:

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

(Anda mungkin perlu membaca manual grub2 untuk membuatnya benar-benar berfungsi; Saya menggunakan grub1 ketika saya melakukan ini beberapa hari yang lalu, dan file konfigurasi berbeda.)

Kelemahannya di sini adalah Anda mencampur file untuk Windows, Ubuntu, dan sekarang Parted Magic menjadi satu sistem file. Lebih buruk lagi, kami telah menempatkan mereka langsung ke partisi sistem EFI. Ini berfungsi, tetapi tentu saja itu mungkin tidak bekerja untuk setiap kombinasi sistem operasi sehingga yang harus kita lakukan adalah membuat partisi terpisah pada drive untuk setiap OS. Untuk melakukan itu, Anda harus memberi tahu grub untuk mencari sistem file yang tepat, yang dapat dilakukan dengan panduan. Setiap sistem file mendapat panduan unik saat dibuat, jadi Anda harus menggunakan grub-probe (atau alat serupa) untuk menemukan panduan itu. Anda kemudian memasukkannya ke perintah pencarian di konfigurasi grub Anda:

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
}

Semoga ini membantu.

db48x
sumber
Multiboot akan berfungsi, tetapi dalam jawaban bdowning, ketika saya mencoba menginstal Ubuntu, saya mendapatkan Kernel tidak tersedia (alternatif) atau tidak dapat mengkonfigurasi kesalahan apt (desktop) (lihat posting bdowning & komentar), ada ide bagaimana cara memperbaikinya? Kami juga ngobrol @ chat.stackexchange.com/rooms/info/2240/…
Jiew Meng
2

Pada mesin Non-UEFI, kita dapat menggunakan GRUB2 untuk membuat USB stick dapat di-boot. Kemudian, kita dapat menggunakan perintah 'ntldr' di GRUB2 untuk mem-boot Windows dari USB.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Lihat jawaban lengkap di blog saya. Membuat Windows bootable USB dari Linux

harish2704
sumber
1
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik menyertakan uraian jawaban yang lebih terperinci di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan bisa menjadi hampir tidak berguna jika tautan Anda rusak.
G-Man Mengatakan 'Reinstate Monica'
1

Kenapa repot-repot dengan GRUB2? Itu hanya mempersulit. Cukup gunakan metode EFI STUB untuk mem-boot kernel Linux dari ESP dengan menambahkan UEFI Shell ke dalam ESP.

fpmurphy
sumber
Bagus untuk mengetahui. Dalam kasus spesifik saya (macbook pro lama) itu tidak berfungsi, karena Apple mengganti nama omong kosong ini menjadi "EFI" dan mengatakan bahwa bootloader-nya adalah EFI. Tetapi pada kenyataannya, ini adalah bootloader khusus yang tidak berdokumen, bermasalah, dan dapat melakukan boot hanya osx dan windows. Jadi, saya menginstal LILO ke salah satu partisi dan berbohong kepada bootloader ini bahwa itu adalah windows. Jadi itu berhasil. Jadi, "EFI" mem-boot LILO dalam mode emulasi BIOS, dan LILO mem-boot kernel.
peterh