Ubuntu 및 Windows 7 설치용 부팅 가능(UEFI GRUB) USB 생성

Ubuntu 및 Windows 7 설치용 부팅 가능(UEFI GRUB) USB 생성

Ubuntu 및 Windows 7을 설치하기 위해 부팅 가능한 EFI USB를 만들고 싶습니다(아마도 다음과 같은 것을 사용하여)PartedMagic). 나는 이것을 사용하여 이것을한다다중 시스템전에. 하지만 저는 GPT를 사용하고 있으며 GPT 시스템에 설치하려면 Windows 설치를 EFI 모드로 부팅해야 합니다. 대신 GRUB EFI를 사용해야 할까요? GRUB EFI 부팅 가능 USB를 생성할 수 있는 MultiSystem과 같은 애플리케이션이 없는 경우 어떻게 직접 생성할 수 있습니까?

USB를 GPT로 포맷하고 거기에 GRUB EFI를 설치할 것 같아요(어떻게?). 그렇다면 EFI에서 Ubuntu 및 Windows 7 설치를 로드하려면 GRUB EFI를 구성해야 합니까? 어떻게 해야 하나요?

고쳐 쓰다

내가 시도한 것은 다음과 같습니다.

  • 내 USB에 2개의 파티션을 만듭니다(GPT, 100+MB FAT32(부팅 플래그 설정용/dev/sdc1), 나머지 FAT32, 설치용 /dev/sdc2)
  • Windows 7 및 Ubuntu 11.10 isos를 설치 프로그램 파티션의 서로 다른 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 설치 중 첫 번째 오류입니까? UNetBootIn을 사용하여 Ubuntu Alternate의 부팅 가능한 USB를 포맷하고 만들었지만 사용할 수 있는 커널이 없다는 동일한 오류로 실패했습니다. Ubuntu 데스크탑을 만들면 적절한 소스를 구성할 수 없습니다

Ubuntu 데스크탑 설치에 대한 시스템 로그http://pastebin.com/CdbUPXax

시간을 낭비하지 말고 최대한 빨리 MBR로 복원하는 것이 좋겠다는 생각이 듭니다...그러면 어떻게든 먼저 모든 데이터를 백업해야 한다는 뜻입니다...그래서 최후의 수단으로 미루게 됩니다...아무거나 아이디어?

고쳐 쓰다

BIOS 모드(EFI 아님)에서 Ubuntu 11.10 Alternate 부팅을 시도했는데 제대로 설치되었지만 부트 로더를 설치하지 못했습니다. 치명적인 오류라고 하네요. 그런 다음 복구 모드에서 USB를 부팅하여 GRUB를 설치했습니다. 작동하지만 부팅되지 않습니다. 시작 시 빈 화면이 나타납니다. (우분투가 설치된 HDD에서) 복구 모드로 들어가려고 하면 키보드는 작동하지 않는 것 같은데 마우스에는 불이 들어옵니다.

답변1

이 질문/답변을 업데이트 중입니다.
버그가 없는 것은 아니지만 @jiewmeng과 작업했을 때 USB를 사용하여 단일 하드 드라이브 UEFI에 Windows와 Ubuntu를 설치하는 것이 목표라는 것을 알았습니다.
해결책을 찾는 데 시간이 좀 걸렸지만 질문과 답변을 정리해야 합니다.
원래 질문에 대한 답변도 가능할 수 있지만 목표는 설치 측면에 더 있기 때문에 단일 부팅 UEFI USB는 덜 중요해 보입니다.
저는 현재 두 개의 USB 스틱을 사용하고 있습니다. 하나는 Windows용이고 다른 하나는 Ubuntu용입니다.
업데이트 예정인 WIP입니다.

나는 며칠 동안 여기저기서 자유 시간을 보내며 이 작업을 해왔고 마침내 Windows 7과 우분투 설치를 지원하고 부팅할 수 있는 USB를 갖게 되었습니다.
내 구성은 64비트 전용이므로 32비트 설치에 맞게 변경해 볼 수 있지만 파일 이름에는 많은 차이가 있습니다. 32비트가 필요한 경우 후속 조치를 취하세요. 그 의미는...

GPT로 포맷된 USB에서는 Windows 7을 설치할 수 없습니다.
gdisk 또는 parted를 사용하여 GPT USB를 생성할 수 있습니다.~ 할 것이다UEFI를 통해 부팅합니다.
USB에서 Windows 설치 프로그램을 로드하도록 UEFI 부팅 관리자를 구성할 수 있지만 설치 프로그램은 설치를 수행하는 데 필요한 파일과 데이터를 검색하며 GPT USB는 인식하지 못하지만 MBR USB는 찾습니다.

그러나 UEFI는 MBR/GPT 및 EFI 파티션을 모두 확인하므로 이는 중요하지 않습니다.UEFI 부팅에 대한 Wikipedia 항목

USB는 표준 MBR을 사용하지만 UEFI를 통해 GPT 디스크에 설치할 수 있습니다.

다음은 64비트 설치를 사용하는 64비트 UEFI Asus Sabertooth에서 작동합니다.
각 마더보드의 펌웨어는 매우 구체적이며 각 마더보드의 UEFI 펌웨어는 UEFI 부팅을 다르게 검색합니다. 마더보드에서 부팅 데이터를 찾는 데 문제가 있을 수 있지만 다음은 내 Asus에서 작동합니다.

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을 부팅 관리자로 사용하여 작동하는 USB 스틱으로 UEFI 설치를 통해 GPT 디스크에 설치할 수 있습니다.

실수를 하신 경우에는 저에게 메시지를 보내주시면 검토해 보겠습니다.

답변2

나는 이 질문에 답하기 위해 최선을 다할 것이며 올바른 방향을 알려드릴 수 있기를 바랍니다.

아시다시피 Win7 x64는 EFI를 통해 GPT에서만 설치할 수 있습니다. 더 나쁜 것은 Win7 x64가 모든 하이브리드 디스크를 레거시 MBR로 처리하기 때문에 하이브리드 디스크를 사용할 수 없다는 것입니다. 따라서 USB를 GPT로 다시 레이블 지정하거나 다시 파티션해야 합니다. 이러한 유형의 설정은 이식성 고려 사항으로 인해 USB에는 권장되지 않습니다. 나는 하나도 만들지 말라는 것이 아니라, 자동화된 도구가 존재하는 것을 원하지 않을 뿐입니다. 실제로 드라이브를 포맷한 후 멀티 시스템을 사용할 수 있을 것이라고 생각합니다. 자동으로 설치된 Grub2에 EFI/GPT 지원이 부족한 경우 올바른 Grub2 버전으로 덮어쓰십시오.

따라서 이 답변의 범위를 완전히 벗어나는 수동 설치를 수행해야 할 수도 있다고 가정합니다. 시작해야 하지만...

현재 버전을 parted사용하여 GPT로 드라이브에 태그를 다시 지정하세요 . 디스크가 /dev/sdc에 있다고 가정하면,

 parted -s /dev/sdc mklabel gpt

이제 드라이브를 분할해야 합니다. 가급적이면 USB는 단일 기본 드라이브여야 합니다. 저는 부팅 가능한 USB에 항상 FAT32를 사용합니다.

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

parted mkpartFS는 이전처럼 생성되지 않습니다 mkpartfs. 문서는 내장된 지원 대신 parted올바른 것을 사용하도록 권장합니다 .mkfsparted

mkfs.vfat /dev/sdc1

이제 드라이브가 데이터를 처리할 준비가 되었습니다. 이제 여러 시스템을 사용하여 드라이브를 설정할 수 있기를 바랍니다.

이 모든 작업이 완료되면... Grub2를 설정해야 합니다. 당연히 구성을 유지하려고 합니다. 다중 시스템가능한EFI에서 부팅할 수 있지만 어쨌든 모듈 구성을 수정해야 합니다.

Grub2 구성은 boot/grub/grub.cfg주석 처리된 일부 모듈을 볼 수 있습니다. GPT 관련 기사를 본 적이 있는데 EFI에 대해서는 잘 모르겠습니다. 나는 그것을 확인하고 몇 가지 테스트를 수행하고 Grub2 문서를 읽는 것을 고려할 것입니다.

그래도 궁금한 점이 있으면 후속 질문으로 댓글을 남겨주세요.

답변3

위의 bdowning의 답변으로 시작한 다음 여기에 Parted Magic을 계속 추가하세요.

이를 달성하는 방법은 여러 가지가 있지만 가장 간단한 방법은 Parted Magic ISO의 pmagic 디렉토리를 USB 디스크의 루트에 복사한 다음 여기에 메뉴 항목을 추가하는 것입니다.

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

(이 기능이 완전히 작동하려면 grub2 매뉴얼을 읽어야 할 수도 있습니다. 지난번에 이 작업을 수행할 때 grub1을 사용하고 있었는데 구성 파일이 달랐습니다.)

여기서 단점은 Windows, Ubuntu 및 Parted Magic의 파일을 하나의 파일 시스템으로 혼합한다는 것입니다. 더 나쁜 것은 EFI 시스템 파티션에 직접 넣는 것입니다. 작동하지만 물론 모든 OS 조합에서 작동하지 않을 수 있으므로 실제로 해야 할 일은 각 OS에 대해 드라이브에 별도의 파티션을 만드는 것입니다. 이렇게 하려면 grub에게 올바른 파일 시스템을 검색하도록 지시해야 하며, 이는 guid를 통해 수행할 수 있습니다. 모든 파일 시스템에는 생성 시 고유한 GUID가 제공되므로 해당 GUID를 찾으려면 grub-probe(또는 유사한 도구)를 사용해야 합니다. 그런 다음 이를 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
}

도움이 되었기를 바랍니다.

답변4

왜 GRUB2를 사용해야 할까요? 상황이 복잡해질 뿐입니다. EFI STUB 방법을 사용하면 ESP에 UEFI 셸을 추가하여 ESP에서 Linux 커널을 부팅할 수 있습니다.

관련 정보