Ubuntu MBR 드라이브를 GPT로 변경 / 변환하고 EFI에서 Ubuntu를 부팅하려면 어떻게해야합니까?


65

최근에 내 PC를 업그레이드했는데 새 마더 보드 (ASUS M5A99X EVO)는 일반 MBR 옵션 대신 UEFi를 사용합니다.

이전 하드웨어 (MSI MS 7267)가있을 때 설치 한 Ubuntu 11.10 설치가 있으며 Ubuntu 만 제대로 부팅되므로 Windows 7도 부팅되지만 Windows 7은 UEFI (GPT) 부팅을 사용하지만 Ubuntu는 MBR을 사용합니다.

OS가 별도의 드라이브에 있으므로 GRUB2가 Windows Bootloader로 대체되지 않으며 그 반대도 마찬가지입니다. 두 OS가 모두 제대로 부팅된다고 말했지만이 경우 우분투 드라이브를 하나의 연결을 끊어야합니다 Windows가로드되지 않도록합니다.

이제 내 질문은, 어떻게 MBR을 사용하는 대신 GPT를 사용하고 Windows가 부팅되도록 Ubuntu의 드라이브를 변경 / 변환 할 수 있습니까?입니다.

전체 시스템을 다시 설치하지 않거나 데이터를 손실하지 않는 것이 좋습니다.

그리고 드라이브를 지우려면 모드가 무엇이든 GPT, UEFI에 Ubuntu를 어떻게 설치할 수 있습니까?

gdisk를 사용하여 MBR에서 GPT로 변환했지만 우분투는 부팅 할 수 없습니다. 그럽은 시작되지 않는 것처럼 보입니다.

OS를 다시 설치했으며 현재 기본적으로 드라이브는 GPT이지만 grup-pc대신 대신 여전히 사용 중 grub-efi입니다.

EFI에서 Ubuntu를 부팅하려면 어떻게해야합니까?.


잘하면 이것이 rodsbooks.com/gdisk/booting.html 도움이 될 것 입니다.
One Zero

답변:


113

목차 :

  1. 술어
  2. 변환 중
  3. 구성 (+ 이중 부팅)

술어

BIOS = 기본 입 / 출력 시스템

(U) EFI = (통합) 확장 가능한 펌웨어 인터페이스

MBR = 마스터 부트 레코드

GPT = GUID 파티션 테이블

UEFI / EFI / BIOS = 펌웨어 인터페이스

MBR / GPT = 컴퓨터가 드라이브에 어떤 파티션이 있는지 (하드 디스크 당) 알고있는 방법과 부팅 방법.

UEFI / BIOS

펌웨어 인터페이스 방식의 펌웨어 (기기 내부의 소프트웨어) 및 운영 체제의 상호 작용이다. 하드웨어를 초기화 한 다음 운영 체제를 실행하고 운영 체제 드라이버가 하드웨어를 작동 할 수 있도록합니다.

BIOS는 일반적인 펌웨어 인터페이스였습니다. UEFI는 더 빨라지고, GUI가 있고, 네트워크 카드를 시작하고 IP 주소를 얻는 것과 같은 몇 가지 기능을 가진 새로운 인터페이스입니다. UEFI가 EFI를 대체합니다. (EFI를 개발하는 사람들은 비슷한 일을하는 다른 사람들이 참여하여 EFI의 아이디어를 가져 왔으며 UEFI가되었습니다).

BIOS에서는 부트 로더가 디스크의 시작 부분에 있어야하지만 UEFI는이를 위해 파티션을 사용하며 사용할 여러 부트 로더 중에서 선택할 수 있습니다.

MBR / GPT + GRUB

MBR은 (BIOS에 대한) 부트 로더뿐만 아니라 파티션 맵 고유 디스크 식별자를 포함하는 디스크의 시작 코드의 섹션입니다.

GRUB을 MBR이있는 디스크에 설치하기 위해 GRUB은 MBR에 작은 프로그램을 배치하여 디스크의 다른 부분에서 나머지 GRUB을로드합니다. (이는 MBR이 너무 작아 GRUB을 모두 포함 할 수 없기 때문에 수행됩니다). 선택된 공간은 일반적으로 존재하는 MBR과 첫 번째 파티션 사이의 공간입니다.

GPT는 참여자를 지정하는 표준입니다. '보호'MBR이 있지만 이것은 BIOS 기반 컴퓨터가 MPT에 대해서만 알고있는 도구 만 부팅하여 GPT를 휴지통으로 만들지 못하도록하기위한 것입니다. 그것은 할 수 있습니다

(GPT 처리 방법은 BIOS (또는 BIOS 에뮬레이션 모드의 UEFI 시스템) 또는 UEFI를 사용하여 부팅하는지에 따라 다릅니다. 질문과 관련하여 UEFI에 중점을 둘 것입니다).

운영 체제 용 부트 로더는 EFI 시스템 Partiton이라는 부분에 저장되며 일반적으로 FAT32로 포맷됩니다. GRUB이 설치된 곳입니다.

변환 중

먼저...

우리는 파티션 테이블을 가지고 놀기 때문에 안전을 보장 할 수 없습니다. 위험한 작업입니다. 그러나이 방법은 데이터를 잃어 버리지 않아야합니다.

이 문제를 겪는 다른 사람들 : Apple Mac에서는 사용하지 마십시오.

지금...

라이브 CD (또는 다른 디스크에 설치된 다른 Linux 설치)에서이 작업을 수행해야합니다.

GPT 디스크를 다룰 때는 GPT 인식 프로그램을 사용해야합니다. 'GPT fdisk'는 사용하기에 좋은 도구이며 사용할 것입니다. 배포 gptfdisk또는 gdisk배포에 따라 호출 할 수 있습니다 (Ubuntu에서 호출 gdisk). Parted (및 Gparted)도 GPT를 인식하므로 GPT 디스크와 함께 '안전하게'사용할 수 있습니다.

변환하려면 다음이 필요합니다.

  1. GPT 데이터 및 EFI 시스템 파티션에 맞게 파티션 크기를 조정하십시오.
  2. 디스크를 변환하고 파티션을 추가하십시오
  3. GRUB을 EFI 시스템 파티션에 설치하십시오.

1) 파티션 크기 조정

사용 parted(명령 행) 또는 gparted첫 번째와 마지막 파티션의 크기를 조정 (GUI)를. 첫 번째 파티션에는 약 200MiB가 있어야하고 마지막 파티션에는 1MiB에서 2MiB (둘 중 하나)가 있어야합니다.

2) 디스크를 변환

운영

gdisk /dev/sdx

변환하려는 장치를 변경하는 것은 /dev/sdx입니다.

partiton 테이블을 변환 할 것임을 알려줍니다.

GPT fdisk (gdisk) version 0.6.14

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************


Command (? for help): 

이제 새 파티션을 추가하여 'EFI 시스템'유형으로 만듭니다. 처음에 여유 공간을 찾아야하며 (34와 같은 낮은 섹터 번호를 제안 함) 모든 여유 공간을 자동으로 사용하십시오. 이 예에서는 1 개의 파티션이있는 4GB USB 플래시 드라이브를 사용하며 위와 같이 크기가 조정됩니다.

Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}: 
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data    0c01 Microsoft reserved    2700 Windows RE          
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8301 Linux reserved        8e00 Linux LVM           
a500 FreeBSD disklabel     a501 FreeBSD boot          a502 FreeBSD swap        
a503 FreeBSD UFS           a504 FreeBSD ZFS           a505 FreeBSD Vinum/RAID  
a800 Apple UFS             a901 NetBSD swap           a902 NetBSD FFS          
a903 NetBSD LFS            a904 NetBSD concatenated   a905 NetBSD encrypted    
a906 NetBSD RAID           ab00 Apple boot            af00 Apple HFS/HFS+      
af01 Apple RAID            af02 Apple RAID offline    af03 Apple label         
af04 AppleTV recovery      be00 Solaris boot          bf00 Solaris root        
bf01 Solaris /usr & Mac Z  bf02 Solaris swap          bf03 Solaris backup      
bf04 Solaris /var          bf05 Solaris /home         bf06 Solaris alternate se
bf07 Solaris Reserved 1    bf08 Solaris Reserved 2    bf09 Solaris Reserved 3  
bf0a Solaris Reserved 4    bf0b Solaris Reserved 5    c001 HP-UX data          
c002 HP-UX service         ef00 EFI System            ef01 MBR partition scheme
ef02 BIOS boot partition   fd00 Linux RAID            
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'

이제 EFI 파티션이 있어야합니다.

Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1          421888         7829503   3.5 GiB     0700  Linux/Windows data
   2            2048          421887   205.0 MiB   EF00  EFI System

그런 다음 종료 gdisk

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.

이제 Gparted (또는 command-line mkfs.vfat)를 사용하여 파티션을 FAT32로 포맷하십시오.

3) GRUB 설치

이것은 내가 직접 시도하지 않은 이전 부분에 대한 확신이 적습니다.

이 단계에 대해 잘 모르겠으므로 RAOF의 지시 사항을 사용하는 것 같습니다 .

grub-efi로 전환하려면

  1. EFI 파티션을 찾으십시오. / boot / efi에 마운트하십시오. 이것을 / etc / fstab¹에 추가하십시오
  2. grub-efi 패키지 설치
  3. BIOS 부팅 우선 순위를 UEFI 및 레거시에서 UEFI 전용 (또는 유사한 옵션)으로 전환

어떤 버전의 grub-efi를 설치해야합니까?

ioreg -l -p IODeviceTree | grep firmware-abi

그것은 말한다면 EFI32설치 grub-efi-ia32가 말한다면, 패키지를 EFI64 설치 grub-efi-amd64패키지를. 당신은 패키지를 설치할 수 있습니다

sudo apt-get install <package name>

EFI 모드로 부팅 한 경우에만 작동합니다.

그것이 작동하지 않는 경우에, 당신은 시도 할 수 이러한 번 ( "(U) EFI 시스템에서 GRUB2 설치"에서) 단계별 지침 grub-efi설치됩니다.

구성 (+ 이중 부팅)

RAOK의 지침이 작동하면 다음 줄을 추가 할 수 있어야합니다. /etc/grub.d/40_custom

menuentry "Windows 7" {
        set root='(hd0,gpt1)'
        chainloader /EFI/microsoft/bootmgfw.efi
}

hd0GRUB에서 Windows를 인식한다고 가정합니다 . hd1작동하려면로 변경해야 할 수도 있습니다 .

이제 실행

update-grub

구성 파일을 업데이트하십시오.

참고 문헌 및 추가 자료

여러 출처를 사용했습니다.


WOAH, 감사합니다! ..하지만 여전히 드라이브에 grub-efi를 설치하는 데 어려움을 겪고 있습니다. OS를 다시 설치하고 드라이브를 GPT로 만들었지 만 grub-pc를 사용하는 것은 grub-efi가 아닙니다.
Uri Herrera

옵션이있는 경우 (도움이 될 수있는 UEFI 장치를 소유하고 있지 않기 때문에) BIOS / MBR 모드가 아닌 UEFI 모드에서 라이브 CD를 부팅해야합니다.
Portablejim

라이브 CD에있는 동안 (설치하기 전에) 제거 grub-pc하고 설치 grub-efi하는 방법은 무엇입니까?
Portablejim

1
와우, 이것은 완벽하게 작동했습니다, 감사합니다! 방금 아무것도 다시 설치하지 않고 Fedora 25와 Windows 10의 병렬 설치를 MBR + BIOS에서 GPT + UEFI로 마이그레이션했습니다. UEFI로 부팅 된 Fedora 25 Live USB 스틱에서 1 단계와 2 단계를 수행했습니다. 3 단계에서는 wiki.ubuntuusers.de/GRUB_2/Reparatur/#chroot-Methode에 설명 된대로 chroot를 사용하여 라이브 시스템에서 기존 시스템에 액세스 했습니다 . grub2를 제거하고 grub2-efi 및 grub2-efi-modules를 설치하고 shim을 명시 적으로 다시 설치했습니다. shim을 다시 설치하지 않으면 Grub 메뉴가 나타나지 않습니다. 마지막으로
Philipp Hartwig

2
GRUB을 설치하기 위해 방금 라이브 USB를 부팅하고 부팅 복구를 사용했습니다. askubuntu.com/questions/226061/… 이 게시물에 감사드립니다!
jbrock

9

이 답변은 불완전합니다. 나는 이것을 테스트하지 않았다. 데이터를 섭취 할 가능성은 없지만 경고를 받았습니다!

내가 여기서 추측하고있는 것은 BIOS가 레거시 MBR에서 우선적으로 부팅하고 있기 때문에 오래된 UEFI Windows 7이 간과되고 있다는 것입니다.

UEFI의 장점 중 하나는 더 이상 GRUB을 덮어 쓰는 Windows에 대해 걱정할 필요가 없다는 것입니다. 둘 다 EFI 파티션에 공존해야합니다. 따라서 한 가지 옵션은로 전환하는 것 grub-efi입니다. 참고 :grub-efi MSDOS 스타일 파티션을 이해 하는지 잘 모르겠습니다 . 나는 그렇게 생각 합니다. 그렇지 않으면 부팅에 실패하고 복구하려면 LiveCD가 필요합니다. 실제로 LiveCD를 편리하게 사용하십시오!

grub-efi원하는 것으로 전환하려면

  1. EFI 파티션을 찾으십시오. 에 마운트하십시오 /boot/efi. 이것을 /etc/fstab¹에 추가
  2. grub-efi패키지 설치
  3. BIOS 부팅 우선 순위를 UEFI and Legacy에서 UEFI only(또는 유사한 옵션)으로 전환

해야 우분투 설치할 때 UEFI 부팅과 함께 당신을 떠나지. 그렇지 않은 경우, 신뢰할 수있는 LiveCD (또는 Ubuntu Alternate 설치 CD-“파손 된 시스템 수정”옵션은 ☺ 이후 임)를 부팅하고 시스템에 chroot 한 다음 grub-pc다시 설치 하십시오.


¹ :이 단계에 대한 자세한 내용 : Linux 커널이 EFI 시스템 파티션을 호출하는 것을 찾아야합니다. 이 같은 것 /dev/sda2, /dev/sdb3또는 such². 그런 다음 /boot/efi디렉토리 를 만들고 에 줄을 추가해야 /etc/fstab합니다. EFI 파티션이 /dev/sdb3인 경우 다음 줄을 추가하십시오.

/dev/sdb3    /boot/efi    vfat    defaults    0    1

일단 실행되면 Windows 7의 서브 디렉토리 가있는 디렉토리 sudo mount /boot/efi/boot/efi포함 해야합니다 EFI.


² : 하드 드라이브가 여러 개 있으므로 파티션의 UUID를 찾는 것이 좋습니다. 하드 드라이브 추가 / 제거시 안정적이지만 /dev/sda2이름이 변경되지는 않습니다. 그러나 다른 모든 설정을 마친 후에 수행 할 수 있습니다.

에서 찾아 보면 UUID를 찾을 수 있습니다 /dev/disk/by-uuid. 예를 들어, 나는 얻는다 :

$ ls /dev/disk/by-uuid -lah
total 0
drwxr-xr-x 2 root root 100 Dec  5 09:12 .
drwxr-xr-x 6 root root 120 Dec  5 09:12 ..
lrwxrwxrwx 1 root root  10 Dec  5 09:12 27fae347-4c7f-45cb-92d6-5f3d410599a1 -> ../../sda3
lrwxrwxrwx 1 root root  10 Dec  5 09:12 4405-64C8 -> ../../sda1
lrwxrwxrwx 1 root root  10 Dec  5 09:12 5243e250-8da5-4fea-aa63-61466022661d -> ../../dm-0

제 경우에는 /dev/sda1EFI 시스템 파티션이라는 것을 알고 있습니다.

UUID=4405-64C8  /boot/efi       vfat    defaults        0       1

/etc/fstab.


Windows 7이 EFI에서 부팅하는 경우 부트 로더가 EFI 파티션에 배치되므로 ☺ 하나가 있어야합니다 . 이것은 표준 Ubuntu 파일 시스템의 어느 곳에서도 보이지 않습니다 . Disk utility프로그램 과 같은 것으로 찾아야합니다 . EFI 파티션을 찾아 마운트 할 때까지는 grub-efi작동하지 않습니다. 부트 로더를 EFI 시스템 파티션에 고정시켜야합니다.
RAOF

여전히 우분투로 부팅 할 수 없습니다 .livecd를 사용하여 fstab에 줄을 추가하고 / boot에 efi 디렉토리를 만들었지 만 아무런 효과가없는 것 같습니다.
Uri Herrera

이제 EFI 파티션이 마운트있어, 당신은 실행해야 sudo grub-install하고 sudo update-grub실제로 설치하기 위해 그리고 EFI 파티션에 GRUB을 설정합니다. 설치에 chroot 한 후 (하드 드라이브의 설치에 대해 알아야하기 때문에)이 작업을 수행해야합니다. 도움이 필요하면 답변에 세부 정보를 추가 할 수 있습니다.
RAOF

예, 설치에 chroot하는 방법을 추가하고 grub을 다시 설치하십시오.
Uri Herrera

여기의 지침을 따랐지만 새 EFI 파티션에 문제가있었습니다. Windows 10 미리보기를 설치하려고하면 설치 프로그램에서 "EFI 시스템 파티션이 NTFS로 포맷되었음을 감지했습니다. EFI 시스템 파티션을 FAT32로 포맷하고 설치를 다시 시작하십시오."라는 오류 메시지를 사용하여 문제를 해결할 수있었습니다. 첫 번째 EFI 파티션을 삭제하고있는 다른를 작성하여, 윈도우 설치와 함께 제공되는 diskpart를 도구 create partition efi. diskpart에 대한 자세한 내용은 technet.microsoft.com/en-us/library/cc766465%28WS.10%29.aspx
Pathogen

2

GRUB2가 Windows Bootloader로 대체되지 않도록 OS가 별도의 드라이브에 있습니다.

이상적이므로 파티션 테이블에 하나 이상의 기본 파티션이 비어있을 수 있습니다.

이제 내 질문은, MBR을 사용하는 대신 GPT를 사용하고 Windows가 부팅되도록 Ubuntu의 드라이브를 어떻게 변경 / 변환 할 수 있습니까?

UEFI 부팅을 수행하기 위해 MBR을 GPT로 변환 할 필요가 없으며 기본 FAT 파티션을 생성하고 grub-efi-amd64-bin패키지를 설치 한 다음 현재 Ubuntu 릴리스에서 작동하는 MBR을 사용하여 기존 설치에 ESP 추가 의 지침을 따르십시오 .


1
저평가 답변. Windows는 반드시 GPT + UEFI 또는 MBR + BIOS 부팅이 필요하지만 Linux는 믹스 앤 매치를 허용하며 grub은 다른 디스크를 체인로드하거나 Windows 7의 bootmgr을 직접 부팅 할 수 있습니다.
Tim G

@timg 이것은 사실 일 수도 있지만 불행히도 Windows 10을 처음부터 설정하는 경우 EFI를 부팅하면 설치 프로그램에서 GPT 볼륨없이 진행할 수없는 것으로 나타납니다.
Merk

오 @Merk, 나는 Windows 설치에 다른 방법을 사용 : Shift 키 F10은 당신에게 명령 줄을 제공하고 당신은 할 수 있습니다 diskpart, dism /apply-image다음 bcdboot(물론 그 모두에 대한 옵션)은 MBR을 설치하거나 관계없이 부팅하는 방법에는 gpt 할 수 있습니다.
Tim G

1

Portablejim의 답변 을 보완하기 위해 (MBR에서 GPT로 변환하는 데 실제로 도움이되었습니다!) 부팅 복구 를 사용 하여 grub을 다시 설치할 수 있습니다 . 3 단계를 완료하지 못한 후 부팅을 복구하는 것이 매력처럼 작동했으며 Windows 10을 설치하면 Linux 부팅 옵션이 사라졌습니다.


우분투 전용 디스크를 가지고 있으며 3 단계가 매력처럼 부팅 복구를 사용합니다!
Rael Gugelmin Cunha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.