為 Ubuntu 和 Windows 7 安裝創建可啟動 (UEFI GRUB) USB
我想創建一個可啟動的 EFI USB 來安裝 Ubuntu 和 Windows 7(可能使用PartedMagic等實用程序)。我之前使用MultiSystem做到了這一點。但是,我正在使用 GPT 並且需要以 EFI 模式啟動 Windows 安裝才能在 GPT 系統上安裝。我想我必須改用 GRUB EFI 嗎?如果沒有像 MultiSystem 這樣的應用程序可以創建 GRUB EFI 可啟動 USB,我該如何自己創建一個?
我想我會將我的 USB 格式化為 GPT,並在其上安裝 GRUB EFI(如何?)。然後我需要配置 GRUB EFI 以在 EFI 中載入 Ubuntu 和 Windows 7 安裝?我該怎麼做這些?
更新
這是我嘗試過的
- 在我的 USB 上創建 2 個分區(GPT,100+MB FAT32(/dev/sdc1,設置引導標誌),其餘 FAT32,/dev/sdc2,用於安裝)
- 將 Windows 7 和 Ubuntu 11.10 iso 提取到安裝程序分區,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 模式啟動到 live 系統再試一次
更新
我很迷茫,是Windows安裝了第一個錯誤嗎?我使用 UNetBootIn 為 Ubuntu Alternate 格式化並製作了一個可引導的 USB,它也失敗了,同樣的錯誤是沒有可用的核心。如果我製作了一個 Ubuntu 桌面,我將無法配置 apt 源
ubuntu 桌面安裝的系統日誌http://pastebin.com/CdbUPXax
我覺得我最好不要浪費時間並儘快恢復到 MBR ……這意味著我必須以某種方式備份我的所有數據 1st ……這就是為什麼我將它推遲到最後的手段……有什麼想法嗎?
更新
我嘗試在 BIOS 模式(非 EFI)下啟動 Ubuntu 11.10 Alternate,安裝正常,但我無法安裝引導載入程序。它說致命錯誤。然後我通過在恢復模式下啟動 USB 來安裝 GRUB。工作,但它不啟動。啟動時出現空白螢幕。如果我嘗試進入恢復模式(在安裝了 ubuntu 的硬碟上),鍵盤似乎出現故障,但滑鼠有光。
*我正在更新這個問題/答案。
這不會沒有錯誤,但是當我與@jiewmeng 一起工作時,我發現目標是使用 USB 將 Windows 和 Ubuntu 安裝到一個硬碟驅動器 UEFI 上。
花了一段時間,我找到了解決方案,但我們需要清理問題和答案。
也許最初的問題也可以回答,但由於目標更多是在安裝方面,單啟動 UEFI USB 似乎不那麼重要。
我目前正在使用兩個 USB 記憶棒,一個用於 Windows,一個用於 Ubuntu。
這是一個將盡快更新的 WIP*
我已經為此工作了幾天,到處都是空閒時間,最後有了一個 USB,它將啟動並提供 Windows 7 和 ubuntu 的安裝。
我的配置是 64 位特定的,您可以嘗試更改以適應 32 位 intall,但文件名有很多差異。如果您需要32位,請跟進。那就是說…
您不能從 GPT 格式的 USB 安裝 Windows 7。
您可以使用 gdisk 或 parted,並創建一個 GPT USB,它將通過 UEFI 啟動。
您將能夠配置 UEFI 啟動管理器以從 USB 載入 Windows 安裝程序,但安裝程序將搜尋執行安裝所需的文件和數據,它不會辨識 GPT USB,但會找到 MBR USB .
但是,這沒什麼影響,因為 UEFI 會查看 MBR/GPT 和 EFI 分區,請參閱關於 UEFI Booting 的 Wikipedia 條目
儘管 USB 使用標準 MBR,但可以通過 UEFI 安裝到 GPT 磁碟。
以下在 64 位 UEFI Asus Sabertooth 上使用 64 位安裝工作。
每個主機板上的韌體非常具體,每個主機板 UEFI 韌體搜尋 UEFI 引導的方式不同。您的主機板查找啟動數據可能存在問題,但以下適用於我的華碩。
下面是我如何使用 Windows 7 64 位 DVD 的可安裝副本和 Ubuntu ISO(在本例中為 11.10 64 位桌面 iso)製作可啟動 USB。
使用 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 }
瞧!一個使用 grub 作為啟動管理器的工作 U 盤,允許通過 UEFI 安裝安裝到 GPT 磁碟。
如果您有錯誤,請不要猶豫,給我發消息,我會調查它。