UEFI 및 레거시 BIOS 용 하이브리드 Linux USB 스틱이 가능합니까?


14

내 생각은 이전 BIOS 랩톱 및 최신 UEFI 시스템에서 부팅 할 수있는 Lubuntu를 사용하여 USB-Boot-Stick을 만드는 것입니다.

Stick이 레거시 부팅 장치로 설정되었을 때 이것은 쉽지만 UEFI 가능 장치가되기를 바랍니다.

  1. 그게 말이 되나요?! 아니면 UEFI 개념이 끔찍하게 잘못 이해 했습니까?
  2. 필요한 경우 두 개의 다른 Linux 설치가있을 수 있습니다 (하나는 UEFI, 하나는 레거시이지만 하나는 동일한 드라이브에)
  3. 레거시 바이오스에서 GPT 장치를 부팅하십시오.

명확하지는 않지만 별도의 레거시 Linux 부트 스틱을 사용하는 것이 더 좋은 아이디어 일 수는 있지만 경계를 탐험하는 것이 궁금합니다. :)

그렇다면 레거시 바이오스와 호환되는 하이브리드 linux-uefi-boot-usb-stick에 대한 나의 생각입니까?


(3) grub http://www.rodsbooks.com/gdisk/booting.html을 사용 하여 Linux에서 가능할 것 같습니다

또한 스왑, Fat32 및 두 개의 Ext4 파티션과 함께 EF00 파티션이 준비되어 있습니다.


(1) 가능할 것 같습니다 http://www.rodsbooks.com/bios2uefi/

그러나이 지침은 2012 년부터 시작된 이후로 시간이 지났습니다. 누군가 더 쉬운 예제를 가지고 있습니까?


이 주제의 다른 연구원들에게 :

비 EFI 마더 보드의 GPT 디스크에서 Windows 7 부팅 GPT의 BIOS를 사용하여 Windows 7/8을 부팅하는 방법이 있습니까?

http://www.borncity.com/blog/2012/07/25/uefi-emulation-auf-pcs/


최신 정보:

rEFInd를 사용한 보안 부팅 설정을 포함하여 UEFI 부분을 만들었습니다.

주어진 조언에 따라 드라이브 dd에 복사 gptmbr.bin하는 데 익숙해졌으며, 이제 BIOS 시스템에서 최소한 다음과 같은 작업을 수행하는 것 같습니다. "이것은 부팅 가능한 디스크가 아닙니다"

그러나 조언을 따르고 pmbr디스크 및 gpt legacy boot플래그에 대한 플래그를 설정 했지만 여전히이 오류가 발생합니까?

내 ESP 파티션은 디스크의 두 번째 파티션이며 efi 파일로 설정됩니다.

설정:

  • 64GB 공간
  • GPT 파티션 가능
  • 디스크에 pmbr 플래그가 설정되어 있습니다
  • 첫 번째 파티션은 16MiB에서 시작하며 약 45GB이며 데이터의 기본 FAT32입니다.
  • 두 번째 파티션은 약 45GB로 시작하며 rEFInd 설정이 작동하는 EFI 시스템 (fat32)입니다.
  • 3-5 파티션은 작업중인 Lubuntu 14.04.1의 홈 (ext4), 스왑 및 루트 (ext4)입니다.

사용하여 컴파일 된 6.02 Syslinux를 처음 440 바이트로 dd복사했습니다 gptmbr.bin.

parted 3.2에서 파티션 2에 bootlegacy_boot플래그가 있음을 알 수 있습니다.

부팅하는 동안 부팅 가능한 디스크를 찾을없습니다 -두 번째 파티션 대신 5 번째를 설정하면 OSlegacy_boot누락됩니다

살아있어!

(이전 질문이 /ubuntu//q/516730/319747 삭제되었습니다 )


내 추측으로는, EFI (where ?!) 또는 루트 파티션 ( ?!) *.c32syslinux 폴더에 일부 및 기타 파일 을 복사 /boot/syslinux해야 작동합니다. 맞습니까? 어떤 파일이 필수입니까?

또한 그 syslinucx.cfg파일도 필요할 것 같습니다. 맞습니까?


내 목표는 적어도 루트 ext4 파티션에서 lubuntu 시스템을 직접 부팅하는 것입니다.

최신 정보:

이유를 모르겠지만 수동 설치로는 작동하지 않습니다.

  • pmbr플래그는 나쁜 및 UEFI로 스틱을 부팅 내 UEFI 시스템 금지
  • legacy_boot플래그는 제 5 파티션 (리눅스 루트)에 필요한이었다
  • 나는 사용해야했다 extlinux --install /path/to/root/parition
  • 나는를 작성했다 syslinux.cfg내 루트 파티션의 부팅 아래 SYSLINUX 폴더에

나는이 모든 것을 두 번째 작은 막대기로 수행 한 다음 syslinux 폴더 만 복사하려고했지만 운이 없었습니다 extlinux --install. 필수적인 것으로 보입니다.

아무도 정확히 무엇을 알고 extlinux --install있습니까? 시스템에 설치하지 않고 수동으로 또는 다른 방법으로 6.02와 같은 최신 버전을 설치할 수 있습니까?

BIOS, UEFI 및 UEFI SecureBoot에서 언급 한 파티션으로 작업하는 스틱을 사용했습니다.


당신의 연결이 끊어졌습니다. 당신은 다른 곳에 당신의 이야기가 있습니까? 나는 똑같이하고 싶습니다. 감사.
pvinis

1
이 삭제했기 때문에 @pvinis 감사는 정보를 원하시면, 나는 여기에 askubuntu에서 질문 / 결과를 병합했습니다
Jook

답변:


11

가능 하며 외부 USB 스틱과 내부 드라이브 모두 에서 매우 자주 수행됩니다.

파티션 테이블 유형과 관련하여 :

  • BIOS에는 일반적으로 파티션 테이블이 필요 하지 않습니다 . MBR의 첫 번째 440 바이트 인 부트 스트랩 코드 부분 에만 관심 이 있습니다. (예외가 있지만 일부 BIOS 구현은 일반적인 파티션 유형 중 하나를 사용하여 MBR을 찾을 수없는 경우 실제로 중단됩니다.

    GPT 파티션 테이블은 MBR을 물리적으로 대체 하지 않습니다 . MBR은 항상 섹터 1에서 시작하지만 MBR은 섹터 0에 있습니다. 따라서 디스크가 둘 다 가질 수 있습니다. 사실, 대부분의 GPT 디스크는 않습니다 커버 전체 디스크가 실수로 데이터를 파괴 이전의 MBR 전용 파티션 도구를 방지하는 것을 단 하나의 파티션을 포함하는 "보호 MBR을"이있다.

    예를 들어 Syslinux 부팅 섹터를 MBR에 설치하면 부팅됩니다. 합니다 (  syslinux-install_update스크립트는 당신을 위해 이것을 할 것입니다,하지만 당신은 찾아보실 수 있습니다 gptmbr.bin수동으로 할 수있는 당신의 SYSLINUX 패키지).

    MBR 파티션의 "active"플래그와 마찬가지로 Syslinux는 GPT 파티션에서 "legacy BIOS bootable"플래그를 찾습니다 (비트 2 – UEFI 사양 2.4 섹션 5.3.3 표 20). 위에서 언급 한 스크립트는 sgdiskgptfdisk에서 설치 한 경우 해당 플래그를 자동으로 설정합니다 .

    GRUB도 사용할 수 있지만 조금 더 성가시다. GRUB 2는 전통적으로 사용하지 않는 섹터 1-62에 자체의 일부를 "임베디드"하려고하기 때문에 동일한 위치에 저장된 GPT를 덮어 씁니다. 따라서 2-4MB의 전용 파티션을 생성하고 BIOS 부팅 가능으로 표시해야 grub-install내장 위치를 ​​찾을 수 있습니다.

  • 반면, UEFI 사양 MBR 파티션 유형 (섹션 12.3.1)을 지원하고 MBR 파티션 유형 0xEF을 EFI 시스템 파티션 (섹션 5.2.2)에 할당 해야합니다.

    따라서 어떤 이유로 디스크가 GPT로 작업 할 수없는 경우에도 MBR에서 EFI 시스템 파티션을 만들 수 있으며 올바른 파일 시스템과 필요한 모든 파일이있는 한 사용됩니다 (12.3.1.3 절).

    이동식 미디어 장치의 경우 UEFI 호환 시스템 파티션이 하나만 있어야하며 해당 파티션은 루트 디렉토리에 UEFI 정의 디렉토리를 포함해야합니다. 디렉토리 이름이으로 지정 EFI됩니다. 아래의 모든 OS 로더 및 응용 프로그램은 하위 디렉토리에 저장됩니다 EFI라고합니다 BOOT. BOOT디렉토리 에서 지원되는 각 프로세서 아키텍처마다 실행 가능한 EFI 이미지는 하나만 있어야합니다 . EFI에서 이동식 미디어를 부팅 할 수 있으려면 섹션 3.4.1.1에 명시된 규칙에 따라 만들어야합니다.

운영 체제와 관련하여 Linux는 일반적으로 오늘날 BIOS와 내일 UEFI에서 부팅되는지 여부에 대해 조금도 신경 쓰지 않습니다. 3.17 UEFI 지원에서 버그를 찾는 동안 랩톱을 UEFI 모드에서 "BIOS 호환성"모드로 다시 부팅하고 이번 주에는 백 번 정도 다시 부팅해야했습니다 ...


"BIOS에서 UEFI 로의 변환"기사는 상당히 다릅니다. BIOS 전용 시스템에서 시작 하기 위해 UEFI 자체 ( "DUET"라고하는 UEFI 구현) 를 설치하는 방법에 대해 설명합니다 . BIOS에서 직접 운영 체제를 부팅하는 것과는 아무런 관련이 없습니다.


+1-syslinux_install 확인해 보겠습니다. 확인, 안심 및 새로운 입력에 감사드립니다
Jook

나는 당신의 충고를 따랐지만 설정에 갇혀 mbr있습니다. 괜찮아 보이지만 EFI System파티션을 찾지 못했습니다 . 디스크에서 45GB 정도에서 디스크로 시작하는 두 번째 파티션이라는 문제입니까? 이미 작동중인 EFI 설정 외에 EFI에 대한 스펙 섹션을 설정해야합니까?
Jook

작동했습니다 :) 감사합니다! syslinux는 꽤 좋았고 gPxe와 plopkexec로 이끌었습니다. 다른 연구원 : askubuntu.com/q/516730/319747
Jook

2

예, 가능합니다.

기본 아이디어는 다음과 같이 USB 스틱 을 GPT 파티션하는 것입니다.

  1. BIOS 부팅 파티션 (GPT 유형 1686148-6449-6E6F-744E-656564454649)-1 MiB, 파일 시스템 없음
  2. EFI 시스템 파티션 (GPT 유형 C12A7328-F81F-11D2-BA4B-00A0C93EC93B)-200MiB, VFAT 파일 시스템
  3. Linux 부팅 파티션 (GPT 유형 0FC63DAF-8483-4772-8E79-3D69D8477DE4)-1 GiB, ext4 파일 시스템
  4. Linux 루트 / 홈 파일 시스템 (GPT 유형 0FC63DAF-8483-4772-8E79-3D69D8477DE4)-남은 공간, XFS 또는 Btrfs 파일 시스템

GPT에는 여전히 MBR을위한 공간이 있지만 (이전 버전과의 호환성을 위해) Grub2 는 BIOS 부트 파티션에 중간 단계를 설치할 공간이 충분 하기 때문에이 파티션을 통해 레거시 시스템 에서 부팅 할 수 있습니다 . 레거시 BIOS는 파티션 구성표를 신경 쓰지 않으며 Grub2 / Linux 커널은 레거시 시스템의 GPT를 이해하는 데 아무런 문제가 없습니다.

UEFI 시스템 의 UEFI 펌웨어는 MBR을 무시하고 진입 점으로 EFI 시스템 파티션을 사용합니다.

예를 들어, Fedora에서는 기본적으로 다음을 수행해야합니다.

Linux 부팅 파일 시스템이에 마운트되어 /boot있고 EFI 시스템 파티션 파일 시스템이에 마운트되어 있는지 확인하십시오 /boot/efi.

(재) 레거시 및 UEFI 부트 로더를 모두 설치하십시오.

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

레거시 및 UEFI 부팅을 위해 grub 구성 파일을 생성하십시오.

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

시스템이 기존 또는 첫 번째 또는 두 번째 파일 중 하나를 수정하고 교체해야 UEFI 모드로 부팅 여부에 따라 (linux|initrd)16함께 (linux|initrd)efi또는 다른 방법으로 주위.

GBR을 MBR에 설치하십시오.

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

짜잔


추신 : 나는 이 하이브리드 방식을 구현 하는 프로비저닝 스크립트 를 작성하여 USB 스틱을 자동으로 만드는 데 사용할 수 있습니다.
maxschlepzig
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.