Ubuntu 및 Windows 7 설치용 부팅 가능 (UEFI GRUB) USB 만들기


12

Ubuntu 및 Windows 7을 설치하기 위해 부팅 가능한 EFI USB를 만들고 싶습니다 ( PartedMagic 과 같은 유틸리티가있을 수 있음 ). 이전에 MultiSystem 을 사용하여 그 작업을 수행했습니다 . 그러나 GPT를 사용하고 있으며 GPT 시스템에 설치하려면 Windows 설치를 EFI 모드에서 시작해야합니다. 대신 GRUB EFI를 사용해야한다고 생각합니까? GRUB EFI Bootable USB를 생성하는 MultiSystem과 같은 앱이없는 경우 직접 만들 수 있습니까?

USB를 GPT로 포맷하고 GRUB EFI를 어떻게 설치합니까? 그런 다음 EFI에서 Ubuntu 및 Windows 7 설치를로드하도록 GRUB EFI를 구성해야합니까? 어떻게해야합니까?

최신 정보

여기 내가 시도한 것이 있습니다

  • 내 USB (GPT, 100 + MB FAT32 (/ dev / sdc1, 부팅 플래그 설정), 나머지 FAT32, / dev / sdc2, 설치용)에 파티션 2 개를 만듭니다.
  • Windows 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 우분투에 bootted하고 있지 않다 기 때문에 출력 없어하지만 같은 오류가 발생했습니다, 나는 그것의 생각?

다음으로 USB Startup Disk Creator를 사용하여 EFI 모드에서 라이브 시스템으로 부팅하여 다시 시도해 보겠습니다.

최신 정보

너무 잃어 버렸습니다. Windows가 첫 번째 오류입니까? UNetBootIn을 사용하여 Ubuntu Alternate의 부팅 가능한 USB를 포맷하고 만들었으며 사용 가능한 커널이 없다는 동일한 오류로 인해 실패했습니다. Ubuntu Desktop을 만들면 적절한 소스를 구성 할 수 없습니다

우분투 데스크탑 설치를위한 syslog http://pastebin.com/CdbUPXax

나는 시간을 낭비하지 않고 곧 MBR로 되돌아가는 것이 좋다고 생각합니다. 즉, 어떻게 든 모든 데이터를 먼저 백업해야한다는 것을 의미합니다.

최신 정보

부팅 로더를 설치할 수 없다는 점을 제외하고는 BIOS 모드 (Non-EFI)에서 Ubuntu 11.10 Alternate를 부팅하려고했습니다. 치명적인 오류라고 말합니다. 그런 다음 복구 모드에서 USB를 부팅하여 GRUB을 설치했습니다. 작동하지만 부팅되지 않습니다. 부팅시 빈 화면이 나타납니다. 복구 모드 (우분투가 설치된 HDD에서)를 시작하려고하면 키보드가 작동하지 않는 것 같습니다.


당신은 이것을 조사 했습니까? unetbootin.sourceforge.net
Dustin L.

Easy2Boot가 원하는 것일 수 있습니다.
SteveSi

답변은 단지 잠재적 솔루션에 대한 링크 또는 참조 이상일 때 가장 좋습니다. 무언가를 수행하는 방법을 보여 주거나 최소한 일반적인 접근 방식을 설명하는 답변은 우리가 따르는 것입니다.
slm

답변:


8

이 질문 / 답변에 대한 업데이트를 진행 중입니다.
이것은 오류없이 작동하지 않지만 @jiewmeng과 함께 일하면서 USB를 사용하여 Windows와 Ubuntu를 하나의 하드 드라이브 UEFI에 설치하는 것이 목표라는 것을 알았습니다.
시간이 걸리고 해결책을 찾았지만 질문과 답변을 정리해야합니다.
어쩌면 원래의 질문에 대한 대답도 가능하지만 목표는 설치 측면에서 더 중요했기 때문에 단일 부팅 UEFI USB는 덜 중요해 보였습니다.
현재 두 개의 USB 스틱을 사용하고 있습니다. 하나는 Windows 용, 하나는 Ubuntu 용입니다.
이것은 최대한 빨리 업데이트되는 WIP입니다

나는 며칠 동안 여분의 시간을 여기저기서 연구하고 마침내 하나의 USB를 가지고 있으며, 부팅하고 Windows 7 및 우분투 설치를 제공합니다.
내 구성은 64 비트마다 다르므로 32 비트를 수용하도록 변경하려고 시도 할 수 있지만 파일 이름에는 많은 차이가 있습니다. 32 비트가 필요한 경우 후속 조치를 취하십시오. 그건 ...

GPT 형식 USB에서 Windows 7을 설치할 수 없습니다.
당신은 GDisk로를 사용하거나 헤어 및 GPT의 USB 만들 수 있습니다 UEFI를 통해 부팅합니다.
UEFI 부팅 관리자를 구성하여 USB에서 Windows 설치 프로그램을로드 할 수 있지만 설치 프로그램은 설치를 수행하는 데 필요한 파일 및 데이터를 검색하고 GPT USB를 인식하지 못하지만 MBR USB를 찾습니다. .

그러나 UEFI가 MBR / GPT 및 EFI 파티션을 살펴보면 거의 영향을 미치지 않습니다 . UEFI 부팅에 대한 Wikipedia 항목을 참조하십시오.

USB에 std MBR을 사용하더라도 UEFI를 통해 GPT 디스크에 설치할 수 있습니다.

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

다음은 설치 가능한 Windows 7 64 비트 DVD 및 Ubuntu ISO (이 예에서는 11.10 64 비트 데스크톱 iso) 복사본으로 부팅 가능한 USB를 만드는 방법입니다.


/ dev / sdc로 USB를 설치 한 16G USB를 사용 하여 관련 참조를 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 디스크에 설치할 수 있습니다.

오류가 있으면 주저하지 말고 메시지를 살펴보십시오.


" 이 시점에서 USB를 부팅하고 Windows 7을 설치했습니다"지점에서 Windows 설치 프로그램으로 부팅했습니다 . 그러나 시도 할 때 grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 4983-DA78"알 수없는 추가 인수`4983-DA78 '."
Jiew Meng

grub-probe를 실행하면 사용할 UUID가 제공됩니다. 그런 다음 다음 텍스트에서 대체됩니다.
bsd

이 명령은 grub-probe --target=fs_uuid /media/INSTALLS_/efi/microsoft/boot/bootmgfw.efi 인수 없음입니다. 값 '4983-DA78'는 YOUR_UUID로 다음과 같은 텍스트에 사용하기 위해 UUID가, GRUB 프로브에 의해 반환되는 것입니다
BSD

윈도우를 잘 설치했지만 우분투를 시도했을 때 커널이 없다고 생각합니까?
Jiew Meng

UEFI USB 스틱을 통해 Windows 7이 이미 설치된 컴퓨터에 Ubuntu를 설치 했습니까?
bsd

3

질문에 대답하기 위해 최선을 다하겠습니다. 올바른 방향으로 안내해 드리겠습니다.

이미 알고 있듯이 GPT에서 Win7 x64 설치는 EFI에서만 가능합니다. Win7 x64는 모든 하이브리드 디스크를 레거시 MBR로 취급하므로 하이브리드를 사용하지 못하도록 막습니다. 따라서 USB를 GPT로 레이블을 다시 지정하거나 파티션을 다시 지정해야합니다. 이식성 문제를 고려할 때 이러한 유형의 설정은 USB에 적합하지 않습니다. 나는 그것을 만들지 말라고 말하는 것이 아니라 자동화 된 도구가 존재할 것으로 기대하지 않을 것입니다. 실제로 드라이브를 포맷 한 후 멀티 시스템을 사용할 수 있다고 생각합니다. 자동 설치된 Grub2에 EFI / GPT 지원이없는 경우 올바른 Grub2 버전으로 덮어 씁니다.

따라서 설치의 일부를 수동으로 수행해야 할 수도 있다고 가정합니다. 전체적으로이 답변의 범위를 벗어납니다. 내가 당신을 시작할 수 있어야하지만 ....

의 현재 릴리스를 사용하여 partedGPT로 드라이브의 레이블을 다시 지정하십시오. 디스크가 / dev / sdc에 있다고 가정하면,

 parted -s /dev/sdc mklabel gpt

이제 드라이브를 분할해야합니다. USB는 단일 기본이어야합니다. 부팅 가능한 USB를 위해 항상 FAT32를 사용합니다.

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

parted mkpartFS를 만들지 않습니다 mkpartfs. partedDOC 적절한 사용을 권장 mkfs대조적으로 parted의 지원이 내장되어 있습니다.

mkfs.vfat /dev/sdc1

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

모든 작업을 마치면 Grub2를 설정해야합니다. 분명히 설정을 유지하려고합니다. 멀티 시스템 EFI로 부팅 할 수 있지만 모듈 구성에 관계없이 손상 될 수 있습니다.

Grub2 구성은에 있습니다 boot/grub/grub.cfg. 일부 모듈이 주석 처리 된 것을 볼 수 있습니다. GPT와 관련된 것이 있지만 EFI에 대해서는 확실하지 않습니다. 몇 가지 테스트를보고 Grub2 문서를 읽어보십시오.

여전히 문제가 있으면 후속 질문으로 다시 의견을 보내십시오.


2

위의 bdowning의 답변으로 시작한 다음 계속해서 Parted Magic을 추가하십시오.

이 문제를 해결하는 데는 몇 가지 방법이 있지만 가장 간단한 방법은 pmagic 디렉토리를 Parted Magic ISO에서 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에 대해 드라이브에서 별도의 파티션을 만드는 것입니다. 이를 위해서는 grub에게 guid가 수행 할 수있는 올바른 파일 시스템을 검색하도록 지시해야합니다. 모든 파일 시스템은 생성 될 때 고유 한 guid를 가지므로 grub-probe (또는 유사한 도구)를 사용하여 해당 guid를 찾아야합니다. 그런 다음 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를 설치하려고 할 때 커널을 사용할 수 없거나 (대체) apt (데스크톱) 오류를 구성 할 수 없습니다 (bdowning의 게시물 및 주석 참조) 어떻게 해결할 수 있습니까? 우리는 또한 @ chat.stackexchange.com/rooms/info/2240/에서
Jiew Meng

2

비 UEFI 시스템에서는 GRUB2를 사용하여 USB 스틱을 부팅 가능하게 만들 수 있습니다. 그런 다음 GRUB2에서 'ntldr'명령을 사용하여 USB에서 Windows를 부팅 할 수 있습니다.

menuentry 'Install Windows 8' {
 ntldr /bootmgr
}

내 블로그에서 완전한 답변보기 Linux에서 부팅 가능한 Windows USB 만들기


1
이 링크가 질문에 답변 할 수 있지만 여기에 답변에 대한 자세한 설명을 포함하고 참조 링크를 제공하는 것이 좋습니다. 링크가 다운되면 링크 전용 답변이 거의 쓸모 없게 될 수 있습니다.
G-Man은 'Reinstate Monica'라고

1

GRUB2를 왜 귀찮게합니까? 그것은 단지 사물을 복잡하게 만듭니다. UEFI 셸을 ESP에 추가하여 ESP에서 Linux 커널을 부팅하는 EFI STUB 방법을 사용하십시오.


알고 반갑습니다. Apple이 독점적 인 쓰레기를 "EFI"로 이름을 바꾸고 부트 로더가 EFI라고 말했기 때문에 내 특정 경우 (이전 macbook pro)에서는 작동하지 않습니다. 그러나 실제로는 문서화되지 않은 버그가있는 사용자 정의 부트 로더로서 osx 및 Windows 만 부팅 할 수 있습니다. 따라서 LILO를 파티션 중 하나에 설치하고이 부트 로더가 창이라는 것을 알았습니다. 그래서 작동합니다. 따라서 "EFI"는 BIOS 에뮬레이션 모드에서 LILO를 부팅하고 LILO는 커널을 부팅합니다.
peterh-복 직원 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.