Створіть завантажувальний (UEFI GRUB) USB для встановлення Ubuntu та Windows 7


12

Я хочу створити завантажувальний EFI USB для встановлення Ubuntu & Windows 7 (можливо, з утилітами типу PartedMagic ). Я робив це раніше , використовуючи MultiSystem . Однак я використовую GPT, а для встановлення в системі GPT потрібно запустити інсталяцію Windows у режимі EFI. Я вважаю, що я повинен використовувати GRUB EFI? Якщо немає такої програми, як MultiSystem, яка створює завантажувальний USB GRUB EFI, то як я можу створити його сам?

Я припускаю, що я відформатую свій USB як GPT і встановіть на ньому GRUB EFI (як?). Тоді мені потрібно налаштувати GRUB EFI для завантаження установки Ubuntu & Windows 7 в EFI? Як я можу це зробити?

ОНОВЛЕННЯ

Ось що я спробував

  • Створіть 2 розділи на моєму USB (GPT, 100 + MB FAT32 (/ dev / sdc1, встановіть прапор завантаження), решта FAT32, / dev / sdc2, для встановлення)
  • Витягніть ISO 7 і Ubuntu 11.10 iso в розділ Installer, 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 Ubuntu?

Далі я спробую використовувати USB Startup Disk Creator для завантаження в реальній системі в режимі EFI, щоб спробувати ще раз

ОНОВЛЕННЯ

Я настільки загублений, чи не встановлена ​​Windows перша помилка? Я відформатував і зробив завантажувальний USB для Ubuntu Alternate з UNetBootIn, і він також не вдався з тією ж помилкою недоступного ядра. Якщо я зробив Ubuntu Desktop, я не можу налаштувати підходящі джерела

Syslog для встановлення на робочому столі ubuntu http://pastebin.com/CdbUPXax

Я вважаю, що краще не витрачати час і повернутися до MBR незабаром ... це означатиме, що я повинен якось створити резервну копію всіх своїх даних 1-го ... тому я відкладаю це в останню чергу ... будь-які ідеї?

ОНОВЛЕННЯ

Я спробував завантажувати Ubuntu 11.10 Alternate в режимі BIOS (Non-EFI), встановлений нормально, за винятком того, що я не можу встановити завантажувач. Це говорить про фатальну помилку. Потім я встановив GRUB, завантаживши USB у режимі відновлення. Працює, але не завантажується. Дає порожній екран під час завантаження. Якщо я спробую перейти в режим відновлення (на жорсткому диску, де встановлений ubuntu), клавіатура, здається, не працює, хоча у миші є світло.


Ви заглядали в це? unetbootin.sourceforge.net
Дастін Л.

Easy2Boot може бути тим, що ви хочете.
SteveSi

Відповіді найкращі, коли вони більше, ніж просто посилання або посилання на якесь потенційне рішення. Тут ми шукаємо відповіді, які показують, як щось робити чи принаймні описувати загальний підхід.
slm

Відповіді:


8

Я працюю над оновленням цього питання / відповіді.
Це не працює без помилок, але, працюючи з @jiewmeng, я виявив, що метою було використання USB для встановлення Windows та Ubuntu на один жорсткий диск, UEFI.
Минуло багато часу, і я знайшов рішення, але нам потрібно очистити питання і відповісти.
Можливо, можна відповісти і на оригінальне запитання, але оскільки мета була більше на стороні встановлення, один завантажувач UEFI USB видався менш важливим.
Зараз я використовую два USB-накопичувачі, один - для Windows, один - для Ubuntu.
Це WIP, який потрібно оновлювати якнайшвидше

Я працюю над цим кілька днів, вільну годину тут і там і нарешті маю єдиний USB, який завантажиться та запропонує встановити Windows 7 та ubuntu.
Моя конфігурація має 64-бітну версію, ви можете спробувати змінити, щоб розмістити 32-бітовий вхід, але існують багато відмінностей у назви файлів. Будь ласка, слідкуйте за необхідністю 32-бітового. Це сказало ...

Ви не можете встановити Windows 7 з формату GPT, відформатованого GPT.
Ви можете використовувати Gdisk або роз'їхалися, і створити GPT USB, який буде завантажуватися через UEFI.
Ви зможете налаштувати менеджер завантаження UEFI для завантаження інсталятора Windows з USB, але інсталятор буде шукати файли та дані, необхідні для встановлення, і він не розпізнає GPT USB, в той час як знайде USB MBR MBR .

Однак це мало наслідків, оскільки UEFI дивиться на MBR / GPT та розділ EFI, дивіться запис у Вікіпедії під час завантаження UEFI

Незважаючи на використання std MBR для USB, можна встановити через UEFI на диск GPT.

Далі працювали, використовуючи 64-бітні установки, на 64-бітній UEFI Asus Sabertooth.
Прошивка на кожній материнській платі дуже специфічна, і кожна прошивка UEFI для материнської плати шукає завантаження UEFI по-різному. У вас можуть виникнути проблеми з пошуком даних завантаження на вашій материнській платі, але наступне працює на моєму ASUS.

Ось як я створив завантажувальний USB із встановленою копією Windows 7 64-бітного DVD та Ubuntu ISO (у цьому прикладі 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  
}

І вуаля! Працюючий USB-накопичувач, який використовує grub як диспетчер завантаження, що дозволяє встановлювати диски GPT при встановленні UEFI.

Якщо у вас є помилки, не соромтеся надіслати мені повідомлення, і я перегляну це.


Я успішно завантажуюся в Windows Installer в пункті " У цей момент я завантажив USB і встановив Windows 7 ". Однак, намагаючись grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78отримати "Невідомий додатковий аргумент` 4983-DA78 "."
Jiew Meng

Запущений зонд-гріб надає можливість використовувати uuid. Потім його слід замінити в наступному тексті.
bsd

команда лише grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi Без аргументів. Значення "4983-DA78" - це ваш UUID, який повертається grub-probe, для використання в наступному тексті як YOUR_UUID
bsd

встановлено Windows нормально, але коли я спробував ubuntu, він каже, що немає ядра, будь-які ідеї?
Jiew Meng

Ви встановили Ubuntu на машину, у якій вже була встановлена ​​Windows 7 через USB-накопичувач UEFI?
bsd

3

Я зроблю все можливе, щоб відповісти на питання, сподіваюся, я переведу вас у правильному напрямку.

Як ви вже знаєте, установка Win7 x64 від GPT можлива лише з EFI. Ще гірше, що вам заважали використовувати будь-який гібрид, оскільки Win7 x64 розглядає будь-який гібридний диск як застарілий MBR. Тому вам доведеться відновити / переділити свій USB як GPT. Цей тип налаштування не є кращим для USB, враховуючи проблеми переносимості. Я не кажу, що не робити цього, я просто не очікував би існування будь-якого автоматизованого інструменту. Насправді я вважаю, що ви зможете використовувати мультисистему після форматування накопичувача. Якщо автоматично встановленому Grub2 відсутня підтримка EFI / GPT, замініть його правильною версією Grub2.

Тож я припускаю, що вам, можливо, доведеться виконати деяку частину установки вручну, що в повному обсязі виходить за рамки цієї відповіді. Хоча я маю змогу розпочати вас…

Використовуючи поточний випуск parted, відновіть привід за допомогою GPT. Припустимо, що диск знаходиться за адресою / dev / sdc,

 parted -s /dev/sdc mklabel gpt

Тепер ви повинні розділити диск, бажано, щоб USB був єдиним основним. Я завжди йду з FAT32, для завантажувального USB.

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

parted mkpartне створює ФС, як mkpartfsби хотілося. partedDOC рекомендує використовувати правильний mkfs, на відміну від parted«s вбудованої підтримки.

mkfs.vfat /dev/sdc1

Ваш диск тепер готовий для обробки даних. На цей момент я сподіваюся, що ви могли б використовувати мультисистему, щоб налаштувати свій привід.

Після того, як ви все зробите з цим ... Нам потрібно встановити Grub2, очевидно, ми маємо намір зберегти конфігурацію. Мультисистема може мати можливість завантажуватися з EFI, але вам доведеться возитися з конфігурацією модуля незалежно.

Grub2 конфігурації знаходиться в, boot/grub/grub.cfg. Ви повинні побачити коментовані модулі. Я бачив один, що стосується GPT, але не впевнений у EFI. Я хотів би поглянути і зробити тестування. Поміркуйте, прочитавши деякі документи Grub2.

Якщо у вас все-таки виникають якісь проблеми, прокоментуйте відповіді з подальшими питаннями.


2

Почніть з відповіді bdowning вище, а потім продовжуйте тут, щоб додати Parted Magic.

Є кілька способів вирішити цю проблему, але найпростіший - скопіювати каталог pmagic з розділеного Magic ISO в корінь вашого usb-диска, а потім додати до нього запис меню:

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

(Можливо, вам потрібно буде прочитати посібник з grub2, щоб він повністю працював; я використовував grub1, коли робив це на днях, а файли конфігурації відрізняються.)

Мінусом тут є те, що ви змішуєте файли для Windows, Ubuntu та тепер розділили Magic в єдину файлову систему. Гірше, що ми помістили їх безпосередньо в системний розділ EFI. Він працює, але, звичайно, він може працювати не для кожної комбінації операційних систем, тому, що ми дійсно повинні зробити, це зробити окремий розділ на диску для кожної ОС. Для цього потрібно повідомити grub шукати потрібну файлову систему, що може зробити за допомогою guide. Кожна файлова система отримує унікальну орієнтир під час її створення, тому вам доведеться використовувати щуп (або подібні інструменти), щоб знайти цю орієнтир. Потім ви вставляєте його в команду пошуку в налаштуваннях grub:

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
}

Сподіваюсь, це допомагає.


Багатозавантаження буде працювати, але у відповіді bdowning, коли я намагаюся встановити Ubuntu, я отримую Kernel недоступний (альтернативний) або не можу налаштувати помилки apt (desktop) (див. Пост та коментарі bdowning), будь-які ідеї, як це можна виправити? Ми також спілкуємося
Jiew Meng

2

У машинах, що не належать до UEFI, ми можемо використовувати GRUB2, щоб зробити USB-накопичувач завантажувальним. Тоді ми можемо використовувати команду 'ntldr' в GRUB2 для завантаження Windows з USB.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

Дивіться повний відповідь у моєму блозі Створення завантажувального Windows USB з Linux


1
Хоча це посилання може відповісти на питання, краще включити тут більш детальний опис відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати майже марними, якщо ваше посилання знизиться.
G-Man каже: "Відновіть Моніку"

1

Навіщо турбуватися з GRUB2? Це просто ускладнює речі. Просто використовуйте метод EFI STUB завантаження ядра Linux з ESP, додавши оболонку UEFI в ESP.


Добре знати. У моєму конкретному випадку (старий MacBook Pro) це не працює, тому що Apple перейменувала цю власну лайно на "EFI" і каже, що його завантажувач - це ІФІ. Але насправді це незадокументований, баггі, користувальницький завантажувач, здатний завантажувати лише OSX та Windows. Таким чином, я встановив LILO в одну з розділів і брешу цьому завантажувачу, що це вікна. Так це працює. Отже, "EFI" завантажує LILO в режимі емуляції BIOS, а LILO завантажує ядро.
петерх
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.