EFI 시스템 파티션을 만드는 방법은 무엇입니까?


34

TL; DR 처음부터 EFI 시스템 파티션을 작성하는 방법은 무엇입니까? EFI 펌웨어가 생성되면 어떻게합니까?

긴 버전

도시바 T430 노트북을 가지고 있습니다. Windows 7이 설치된 상태에서 받았습니다 (그러나 원래 Windows 8과 함께 제공된 것 같습니다). Ubuntu를 설치했지만 디스크에서 일부 파티션을 삭제하여 Windows를 지우고 Ubuntu 만 가지고있었습니다. 삭제 된 파티션 중에는 EFI 시스템 파티션이 있습니다. 우분투가 이제 UEFI가 아닌 레거시 모드로 부팅된다는 것을 알았습니다. 우분투 설치를 레거시에서 UEFI로 변환 하는 방법에 대한 이 안내서 를 따르려고합니다.. 문제-BIOS에서 UEFI를 사용하여 부팅하도록 선택할 때마다 EFI 파티션이 없으므로 부팅 할 수 없습니다. 그것은 하드 드라이브뿐만 아니라 USB와 DVD에도 중요합니다. 나는 이것이 논리적이라고 생각한다-EFI 파티션을 기대하고 그것을 찾을 수 없기 때문에 HDD 나 DVD에서 더 이상 부팅을 계속할 수 없다. 그렇다면 어떻게 EFI 파티션을 다시 생성합니까?

위의 가이드는 다음과 같이 말합니다.

EFI 파티션 생성

Ubuntu 설치 프로그램에서 디스크를 수동으로 파티션하는 경우 EFI 파티션이 설정되어 있는지 확인해야합니다.

  1. 디스크에 이미 EFI 파티션이 포함되어있는 경우 (예 : 컴퓨터에 Windows8이 사전 설치되어있는 경우) 우분투에서도 사용할 수 있습니다. 포맷하지 마십시오. 디스크 당 하나의 EFI 파티션 만 사용하는 것이 좋습니다.

  2. EFI 파티션은 최신 버전의 GParted (12.04 디스크에 포함 된 Gparted 버전은 정상 임)를 통해 생성 할 수 있으며 다음 속성이 있어야합니다.

    1. 마운트 지점 : / boot / efi (비고 : 수동 파티션을 사용할 때이 마운트 지점을 설정할 필요가 없습니다. Ubuntu 설치 관리자가 자동으로 감지합니다)

    2. 크기 : 최소 100Mib. 200MiB가 권장됩니다.

    3. 유형 : FAT32

    4. 기타 : "부팅"플래그가 필요합니다.

이 파티션을 만드는 데 문제가있었습니다.

  • 라이브 Ubuntu DVD에서 부팅하고 GParted를 열고 200MB 파티션을 만들고 FAT32로 포맷합니다.
  • GParted에서 마운트 지점을 설정할 수 없으므로 bootflag를 설정할 수 없습니다.
  • /etc/fstab라이브 CD이므로 마운트 지점을 설정하지 않았 으며 fstab은 일반 부팅과 비교했을 때 예상 한 것과 크게 다릅니다. 어쨌든, 나는 어떤 값을 설정할지 몰랐습니다.

라이브 DVD를 통해 다시 부팅 한 다음 우분투 설치를 선택했습니다. 그런 다음 마운트 지점, 200MB, FAT32, 부팅 플래그와 같은 기준으로 파티션을 만들었습니다.

그러나이 문제가 계속 발생하면 해당 파티션에 EFI 펌웨어가 없기 때문에 빈 파티션 일 뿐이므로 EFI 펌웨어를 사용하기에 적합합니다.

다시 한 번, EFI 소프트웨어가있는 EFI 파티션을 작성하여 랩톱을 다시 UEFI 모드로 부팅하려면 어떻게해야합니까?

해결책은 답변 주셔서 모두 감사드립니다. 내가 한 것은 전체 디스크를 포맷 한 다음 옆에 Ubuntu를 설치하여 Windows 8.1을 처음부터 설치하는 것입니다. 이것들은 이제 내 파티션입니다.

디스크 파티션

Win 8을 설치하는 동안 기존의 모든 파티션을 삭제하고 Windows에서 디스크를 다시 포맷하자마자 기본 설치 파티션 외에 세 개의 추가 파티션, 즉 1, 2, 3이 자동으로 생성되었습니다. UEFI 모드에서 HDD 또는 DVD로 부팅 할 수 있습니다.

ESP는 기본적으로 정보를 저장하지 않는다고 말하지만 OS가 설치되면 정보가 저장되는 것 같습니다. 그래서 나는 내 사건이 다음과 같다고 생각한다. 나는 그것을 지우고 그것을 다시 만들었더라도, ESP의 생성은 OS가 설치된 후에 이루어 졌기 때문에 어떤 정보로 채워지지 않았다. 나는 우분투 설치를 잃어 버렸지 만 (어쨌든 새로 설치 했음), 그것을 저장하려면 grawity 의 조언을 따라야한다고 생각합니다 . 그러나 시간이 없었지만 행복하게 모든 것이 지금은 괜찮습니다.


1
ESP는 부트 로더를 저장합니다. 따라서 기존 설치가 있고 ESP를 삭제하면 컴퓨터를 부팅 할 수 없게됩니다. 이러한 유형의 문제는 실제로 상당히 수정에 간단합니다 - 경우 어떻게 알아!
Rod Smith

내 질문에 관한 모든 것이 잘되었습니다 :)
Alex Popov

답변:


37

먼저 GParted에서 마운트 지점을 설정하지 않습니다. mount명령을 통해 또는 영구적으로 편집 하여 수동으로 (일시적으로) 수행 /etc/fstab합니다. 따라서이 문제에 대한 귀하의 우려가 잘못되었습니다.

둘째, EFI 시스템 파티션 (ESP)은 특정 유형 코드 (즉, GPT 디스크의 C12A7328-F81F-11D2-BA4B-00A0C93EC93B)가 설정된 FAT 파티션입니다. 마운트 지점 /etc/fstab은 ESP 정의의 일부가 아닙니다. Linux /boot/efi에서는 일반적으로 /etc/fstab항목을 통해 ESP를 마운트하여 ESP에 액세스하는 것이 일반적 이지만 필수는 아닙니다 . 형식 코드를 설정하는 방법은 프로그램마다 다릅니다.

  • 에서가 gdisk, 당신은 EF00로 형태 코드를 설정합니다. ( gdisk디스크의 실제 유형 코드로 확장되는 2 바이트 유형 코드를 사용합니다. "EF00"은 "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"의 니모닉입니다.)
  • GParted 또는 parted에서 "부트 플래그"를 설정합니다. 그러나 이것은 GPT 디스크 에서만 작동 합니다 . 이러한 프로그램으로 MBR 디스크에서 ESP 유형 코드를 설정할 수 없습니다. EFI 기반 컴퓨터는 일반적으로 GPT 디스크에서 부팅하므로 일반적으로 큰 문제는 아닙니다.
  • Ubuntu 설치 프로그램에서 파티션을 "EFI 부팅 파티션"으로 식별합니다. 그런 다음 타입 코드를 설정 하고 설정합니다 /etc/fstab적절하게.
  • 최신 Linux 버전에서는 fdisk파티션 유형을 번호 (GPT 디스크의 경우 "EFI 시스템"의 경우 1, MBR 디스크의 경우 0xEF) 또는 GPT 디스크의 전체 유형 코드를 입력하여 설정합니다.

셋째, ESP에는 펌웨어가 없습니다. 펌웨어는 정의상 마더 보드의 칩에 저장됩니다. 따라서 ESP에 EFI 펌웨어를 설치하려는 노력은 거위 추적입니다. (이 규칙에는 두 가지 예외가 있습니다. 먼저 컴퓨터의 펌웨어를 업데이트하기 위해 ESP에 펌웨어 파일을 저장할 수 있습니다. 이것은 임시 보류 영역이지만 두 번째는 DUET 또는 Clover 부트 로더입니다. EFI는 ESP에서 일반적으로 정규 프로그램으로로드 이러한 도구들은 EFI 시스템 인 것처럼 부팅 BIOS 전용 컴퓨터를 사용하는,하지만, BIOS 부트 로더이다;. 그들은 있습니다 하지일반적으로 컴퓨터의 EFI 펌웨어가있는 컴퓨터에서 사용됩니다. 기술적으로 DUET이나 Clover는 펌웨어가 아닙니다. EFI와 동일한 작업을 수행하는 BIOS 부트 로더입니다.)

마지막으로, 귀하의 문제에 대한 여러 가지 가능한 원인에 대해 생각할 수 있지만, 추가 정보가 없다면, 모든 내용을 다루기 위해 반 권의 책을 작성해야합니다. 컴퓨터 에서 부팅 정보 스크립트 를 실행하는 것이 좋습니다 . 라는 파일이 생성됩니다 RESULTS.txt. 이를 pastebin 사이트 에 게시하고 URL을 사용하여 문서에 다시 게시하십시오. 그러면 구성에 대한 하드 데이터가 제공되어 문제의 가능한 원인 범위가 크게 줄어 듭니다.


gdisk"유형 코드를 EF00으로 설정" 하는 방법 ?
B Seven

@BSeven t, 1, ef00.
hobbs

11

EFI 파티션은 펌웨어 (마더 보드의 칩에 저장 됨)를 유지하지 않습니다 . 설치된 운영 체제 의 부트 로더 를 유지합니다 . BIOS PC의 경우와 마찬가지로 기본적으로 부트 로더를 디스크의 0 번째 섹터에 두는 것 대신에 EFI 대안입니다.

즉, 이러한 파티션이 있으면 운영 체제를 설치할 때 자동으로 채워집니다. ( 설치 디스크 자체도 EFI 모드에서 부팅해야 하지만 UEFI 부팅 설정을 방해하지는 않습니다 ... 실제로 설정의 특정 부분은 BIOS 모드에서 수행 할 수 없습니다.)

이미 Ubuntu를 설치 한 경우 다음을 수행해야합니다.

  1. GRUB의 UEFI 버전을 설치하십시오. 나는 그것이grub-efi-amd64-signed 패키지 에 있다고 생각 합니다 .

    grub-install --target=x86_64-efi-signed
    

    서명되지 않은 grub-efi-amd64버전의 경우 x86_64-efi입니다.

  2. GRUB이 \EFI\Boot\bootx64.efiEFI 시스템 파티션에서와 같이 자체 설치되었는지 확인하십시오 . (나는 여기에 EFI 경로 구문을 사용하고 있습니다;에서 파티션을 마운트하는 경우 /boot, 그것은 것 리눅스에서 /boot/EFI/Boot/bootx64.efi.)

    그렇지 않은 경우 grubx64.efi해당 위치로 수동으로 복사하십시오 .

    grub-install시스템이 이미 EFI 모드로 부팅 되지 않은 경우 EFI 부팅 메뉴에 자동으로 추가 할 수 없기 때문에이 작업이 필요 합니다. ( "EFI 변수"는 BIOS moed에서 액세스 할 수 없습니다.) GRUB을 부팅하는 유일한 방법은 "폴백 부트 로더"위치에 배치하는 것입니다.

  3. 재부팅하십시오. 펌웨어 부팅 메뉴에서 어떤 종류의 EFI 모드를 선택하십시오 (EFI 펌웨어에는 GRUB 이전에도 자체 부팅 메뉴가 있습니다).

  4. 있는지 확인 dmesg | grep "efi:"쇼 아무것도 당신이 EFI 모드에있어 확인하려면.


1
나는 오래된 스레드를 가져 오는 것을 의미하지는 않지만 내 문제에 대한 해결책을 찾으려고 노력하고 있으며이 스레드를 발견했습니다. Dell 컴퓨터에서 BIOS 펌웨어를 업데이트하려고하는데 Dell에서 Windows 형식의 EXE 또는 EFI 형식의 파티션에 배치해야하는 파일로 제공합니다. 즉, "이동식 미디어 장치의 EFI 파티션으로 파일을 다운로드하십시오"라는 메시지가 표시됩니다. OP가 이것이 의미가 있는지는 모르겠지만 첫 번째 단락에서 말한 것을 지적하고 싶었습니다.
레이

@Ray : 이 파티션에 향후 펌웨어를 다운로드하고 있습니다 . 컴퓨터를 켤 때 여전히 실제 펌웨어 로 사용 되지 않습니다 . "메인웨어 업데이터"프로그램의 데이터 파일로 사용되어 메인 보드에 작성 / 플래시됩니다. (이러한 지침이 "파일을 MS-DOS 부팅 플로피 디스크로 다운로드"또는 기타로 말했을 때 그 디스크가 주 BIOS를 보유하지 않은 경우를 기억하십시오. 재 플래싱 프로그램 및 플래시해야 할 데이터 만 보유했습니다. 여기에서도
마찬가지

1
예, 알아요 OP가 반드시 틀린 것은 아니지만 정확하지 않을 수도 있다고 말하고있는 것 같습니다. 마찬가지로, 당신은 펌웨어가 칩에 저장되어 있다는 것이 맞습니다. 이제 EFI 파티션에 향후 펌웨어를 저장하라는 메시지가 표시됩니다. 그러나 누군가 설명이 부주의하면 펌웨어가 EFI에 저장되어 있다고 말할 수 있습니다. (즉, 완전히 잘못된 것이 아니라 절반의 잘못된 것)
Ray

2

메모장으로 두 개의 파일을 작성하고 USB Windows 설치 드라이브에 저장하십시오.
다른 이름으로 저장 : CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

메모장을 사용하여 다른 텍스트 파일을 만듭니다.
SaveAs : diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

MBR을 사용하는 경우 명령은 mbr을 변환합니다.

Windows 파티션의 크기를 얻으려면 HD 크기에 1024를 곱하고 100 기가 하드 드라이브 시간에 1024에 102400-210 (efi 크기)-16 (msr 크기)-460 (예약 크기)을 곱한 크기와 같습니다. Windows 파티션 크기 (xxxxxx)

터미널 (명령 프롬프트) cd / d D에서 파티션 크기를 변경할 수 있습니다.> notepad CreatePartitions-UEFI.txt

USB 드라이브에있는 동안 notepad diskpart-UEFI.txt를 사용하여 열린 상태에서 열린 상태로 두거나 명령을 적어두면 실수하지 않습니다. 원하는대로 파티션의 크기를 변경했으면 파티션을 닫고 cd / dx : / Sources를 실행 한 다음 diskpart / s D : \ CreatePartitions-URFI.txt를 실행하십시오.
마지막 명령으로 파티션을 표시합니다 (해당되는 경우 종료> 컴퓨터 끄기> 다시 시작> 설치).


-2

gnome-disks, 패키지 "gnome-disk-utility"를 사용하면 매우 편리합니다.


2
슈퍼 유저에 오신 것을 환영합니다! 나는 DV-er는 아니지만 한 줄의 답변은 때때로 작동하지만 설명을 포함하도록 답변을 편집 하면 더 잘 작동합니다.
bertieb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.