UEFI를 사용하여 Ubuntu를 외장 하드 드라이브에 설치할 수 있습니까?


답변:


12

실제로 가능합니다 .

계속하기 전에이 지침은 빈 EFI 시스템 파티션 (ESP)을위한 것이며 기존 파일을 덮어 쓰거나 예상대로 작동하지 않을 수 있습니다. 최소한 백업을 만드십시오!

다른 플랫폼에 필요한 파티션 추가

플랫폼 : 레거시 PC, UEFI 기반 Windows 컴퓨터, Apple 컴퓨터

MBR을 사용하여 기존 설치에 ESP 추가

다른 설치 또는 라이브 미디어에서이 지침을 따라야합니다.

  1. grub-efi-amd64-bin패키지를 설치하십시오 . 필요한 리소스 만 설치합니다. 기존 MBR 스타일 설치를 UEFI로 전환하지 않고 거꾸로 뒤집습니다.

  2. GParted 에서 Ubuntu 파티션을 축소하여 ESP를위한 공간을 확보하십시오. ESP의 권장 크기는 100MB에서 500MB 사이이지만이 지침에 따라 생성 된 파일은 2-5MB를 초과 할 필요가 없습니다.

    주 : ESP가 디스크에있는과에서 몇 메가 바이트하여 우분투 파티션을 축소 곳은 문제가되지해야 말하는 것은 신속하고 안전해야합니다. 처음에 수축하는 것은 안전하지 않습니다 . 그러나 ESP는 기본 파티션이어야하며 확장 파티션 또는 논리 볼륨의 일부가 아니어야합니다. 1에서 4까지의 파티션 번호는 괜찮습니다. 위의 숫자는 MBR 파티션 테이블의 확장 파티션을 나타냅니다.

    파일 시스템으로 FAT32를 선택하고 부팅 플래그를 설정하십시오.

  3. 방금 생성 한 ESP와 축소 한 루트 파일 시스템을 마운트하십시오.

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    주 : 교체 $esp_device$root_device적절한 장치가/dev/sdb2/dev/sdb1. 마운트 지점 /mnt/esp/mnt/rootfs이 답변의 나머지 부분과 함께 작업에 선택 단지 예입니다.

    다음을 사용하여 GRUB의 EFI 이미지와 최소 구성 파일을 설치하십시오.

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    $device전체 장치의 예입니다 /dev/sdb, 아니 파티션.

  4. 그게 다입니다. 이미 끝났지 만 몇 가지를 설명하려고 노력하겠습니다.

    이 매개 변수 --target x86_64-efi는 UEFI 이미지 및 모듈이 지정된 경로에 설치되도록합니다. 배포 특정 경로 대신 이동식 미디어 --removable의 하드 코딩 된 경로 \EFI\BOOT\BOOT{arch}.EFI에 UEFI 이미지를 설치합니다 . 귀하 grub.cfg의는 /boot/grub/부팅 방법과라는 이름의 새 폴더를 모두 작동합니다 x86_64-efi이제 다음에 존재해야한다 i386-pc.

    완벽을 기하기 위해 플랫폼의 NVRAM 항목을 쓰고 의존하는 이동식 미디어가 아닌 명령입니다.

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    적절한 UEFI 설치에는 아래에 표시된 것과 유사한 행이 포함 /etc/fstab되지만 설정은 작동하지 않으며 UEFI 이미지 (MBR 부트 로더와 유사)는 일반적으로 OS 설치 중에 만 작성 / 업데이트됩니다.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

GPT를 사용하여 설치에 ESP 또는 GRUB-BBP 추가

GPT 파티션 된 드라이브의 레거시 설치에 ESP 를 추가하는 것은 위와 매우 유사합니다.

  1. grub-efi-amd64-bin패키지를 설치하십시오 .
  2. 루트 파티션의 크기를 조정하여 위의 지시 사항과 유사한 FAT32 파일 시스템으로 파티션을 작성하고 boot플래그를 설정하십시오 .
  3. 파티션을 마운트하고 매개 변수 grub-install가 포함 된 명령을 위에서 실행하십시오 --removable.

다른 컴퓨터에서 기존 UEFI 설치를 부팅하려는 경우에도 작동합니다.

GRUB 용 BIOS BBP ( 부팅 가능 파티션) 작성은 약간 다릅니다.

  1. grub-pc-bin패키지를 설치하십시오 .

  2. 루트 파티션의 크기를 조정하여 위의 지침과 유사한 파티션을 만들고 bios_grub플래그를 설정하십시오 . 파일 시스템을 선택 하지 않고 포맷하지 않은 상태로 두십시오.

  3. /etc/default/grub관리 권한으로 구성 파일 을 편집하고 GRUB_DEVICE=/dev/sdb6끝에 추가 하십시오. 대체 /dev/sdb6당신의 BBP의 실제 장치 이름. 명령 행 편집기 nano 를 사용하여 작업을 단순하게 유지할 수 있습니다 .

    다음을 사용하여 GRUB MBR 이미지를 BBP에 설치하십시오.

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    줄을 제거하거나 주석 처리 /etc/default/grub하여 실제 설치에 추가 할 수 있습니다.

보너스 : GPT 설치에서 Mac 용 파티션 추가

필자가 테스트 한 새로운 Mac (Mac Mini A1347 EMC 2840)은 표준 FAT32 ESP, 심지어 MBR에서도 부팅 할 수 있습니다! 어쨌든, 우리는 간다 :

  1. 설치 grub-efi-amd64-bin, hfsprogs, mactel-bootmactel-boot-logo(선택 사항) 패키지를. 당신은 활성화해야 유니버스 저장소 ( I 명령 행?에서 "우주"저장소를 가능하게 할 방법 ) 및 현재 추가 Mactel 지원 PPA를 (참조 Mactel 지원 커뮤니티 팀 모두를 설치하는 자세한 내용을).

  2. 루트 파티션의 크기를 조정하여 위의 지침과 유사한 HFS + 파일 시스템으로 파티션을 만듭니다. 이번에는 몇 메가 바이트 더 많은 공간이 필요하므로 5MB 이하의 공간이 있다면 ESP 크기를 두 배로 늘리십시오. 플래그가 필요하지 않습니다.

  3. 파티션을 마운트하십시오 :

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    참고 : 내가 선택 $esp-mac_device하고 /mnt/esp-mac충돌을 피하기 위해.

    매개 변수 grub-install가 포함 된 명령을 실행하십시오 --removable.

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    마지막으로 Mac이 기대하는 방식으로 파티션을 설정하십시오.

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Mac의 외부 미디어에서 Ubuntu를 부팅하려면 옵션 키 또는 AltWindows 키보드를 누르고 올바른 디스크를 선택하면됩니다.

    볼륨 및 Ubuntu 로고를 표시하는 Mac 시작 관리자

파티션 플래그, 유형 코드 및 GUID 정보

가능한 정확하게 부팅 플래그는 GRUB에 중요하지 않습니다. GRUB은 기본적으로 부팅 할 올바른 파일 시스템을 찾기 위해 UUID를 검색합니다. GParted에서 부팅 플래그 또는 bios_grub 플래그를 설정하면 일반적으로 파티션의 유형 (MBR) 또는 GUID (GPT)가 설정됩니다.

올바르게 작동하는 설정 외에도 올바른 유형 또는 GUID를 설정하면 파일 파티션에 이러한 파티션이 숨겨집니다. 유형과 GUID를 확인하고 변경하는 가장 쉬운 방법은 디스크 ( gnome-disks)를 사용하는 것입니다.

gnome-disks의 드라이브 및 파티션을 보여주는 스크린 샷

gnome-disks에서 파티션 편집 대화 상자를 보여주는 스크린 샷

또는 parted 또는 gdisk를 사용할 수 있습니다.

  • 0xef는 fdisk와 함께 사용하기위한 MBR의 ESP에 대한 유형 코드입니다.
  • ef00은 gdisk와 함께 사용하기위한 GPT의 ESP에 대한 약어 유형 코드입니다.
  • ef02는 gdisk와 함께 사용하기위한 GPT의 BBP에 대한 약어 유형 코드입니다.

위키 백과의 큰 목록이 GPT에 대한 GUID를 .

매뉴얼parted따른 명령 줄 은 및 입니다.parted $device set partition esp onparted $device set partition bios_grub on


나는 세부 사항을 문서화하지 않았다. 그러나 플래시 드라이브를 gpt로 파티션하고 efi 파티션을 만들고 efi 부팅 파일을 efi 파티션으로 복사 할 수있었습니다. grub-mkimage는 파일의 특정 경로를 예상하는 grubx64.efi를 생성하므로 설치에서 / boot / grub으로 파일 구조를 복사하고 구성 파일 항목이있는 grub.cfg를 다른 / grub의 다른 grub.cfg에 추가했습니다. 폴더를 루프 마운트하여 ISO를 부팅합니다. 아마도 make 이미지로 자신 만의 grubx64.efi를 만드는 것이 더 정확하지만 복사는 효과가있었습니다.
oldfred

"MBR을 사용하여 기존 설치에 ESP 추가"부분을 수행하는 방법을 찾으려고 노력하면서 높고 낮게 검색했습니다. 나는 그것에 대해 긴장했지만 첫 번째 시도에서 작동했습니다! 좋은 답변입니다!
Mark E. Haase

답변의 MBR 부분으로 기존 설치에 ESP 추가를 사용하여 USB에 Ubuntu의 전체 BIOS / MRR 설치에 EFI 부팅 기능을 추가하려고합니다 . "오류 : 파일 /boot/을 찾을 수 없습니다"라는 메시지가 나타납니다. grub.cfg올바른 UUID에 ESP 파티션 점이다. 어떤 아이디어? 새 질문을 게시 해 드리겠습니다.
user68186

@ user68186 당신은 그것을 할 수 있었습니까?
BRabbit27

Mac의 외장 드라이브에 Ubuntu를 설치할 수있었습니다. Mac에 연결되면 Ubuntu로 올바르게 부팅됩니다. 그러나 부팅 장치에서 Windows10 컴퓨터 (xps 15 9560)에 연결하면 외부 하드 드라이브가 나타나지 않습니다. 내 직감은 UEFI 때문입니다. 누군가 내 직감이 옳고이 스레드가 Windows 시스템에서 부팅 할 수 있는지 여부를 확인할 수 있습니까?
BRabbit27
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.