UEFI를 사용하여 단일 하드 드라이브에 두 개의 독립적 인 Ubuntu 설치를 어떻게 설치합니까?


8

보안상의 이유로 UEFI를 사용하여 단일 하드 드라이브 컴퓨터에 완전히 독립적 인 보조 운영 체제를 설치하고 싶습니다. 두 설치 모두 서로 다른 LUKS 암호화 파티션을 루트 장치 (암호 위에 LVM)로 사용할 수 있어야하며 자체 커널을 사용할 수 있어야합니다.

서로 다른 두 운영 체제로 이중 부팅하는 것은 큰 문제가 아닙니다. Ubuntu와 Fedora는 EFI 시스템 파티션을 방해하지 않으며 공유 할 수 있지만 두 개의 Ubuntu 설치는 Grub 인스턴스를 동일한 EFI 위치에 설치하기를 원하기 때문에 서로 싸우게됩니다.

  • 설치 /boot/efi/EFI/ubuntu도중 과 다른 위치에 Grub을 설치하도록 Ubuntu를 변경하는 방법이 있습니까? 패키지 업데이트와 커널 / 그루브 업데이트가 여전히 해당 경로에 설치되도록 지속적인 방법이 필요합니다. Fedora의 Grub이에 설치되는 것처럼 /boot/efi/EFI/fedora. Grub에서 해당 구성 옵션을 찾을 수 없습니다. 가능하다면 Dell UEFI 부팅 메뉴를 통해로드 할 OS를 선택할 수 있습니다. 아마도 efibootmgr과 grub-efi 사이에 접착제가 빠져있을 것입니다.

  • 또는 두 개의 Ubuntu 설치 중 하나에서 단일 Grub 설치를 사용하고 올바른 부팅 설정을 자동으로 감지 할 수 있습니까? 내 말은, 커널을 사용 os-prober하여 다른 /boot파티션을 찾을 수는 있지만 어떻게 해당 OS에 대한 올바른 부팅 매개 변수를 알 수 있습니까? 암호화되지 않은 단일 파티션 설치로는 가능하지만 /boot해당 루트 파일 시스템과 일치 할 수는 없습니다 . 그리고 암호화되면 완전히 불가능합니다. 따라서 그럽 구성 파일을 수동으로 수정해야합니다. 또한 단일 공유 부트 로더 구성의이 옵션을 싫어하여 두 운영 체제를 어느 정도 격리하지 않았습니다.

그건 그렇고, 서버 텍스트 기반 전문가 설치는 괜찮습니다. 또한 모든 커널 / Grub 업데이트에 대해 단계를 반복하지 않아도되는 일부 사용자 지정 구성.

답변:


6

두 가지 제안이 있습니다 ...

옵션 # 1 : 별도의 ESP

EFI에서 부팅 로더는 "the" EFI 시스템 파티션 (ESP)에 있습니다. 하나의 ESP로 제한되는 규칙이 없기 때문에 "the"라는 단어를 따옴표로 묶었습니다. 하드 디스크에 두 개의 ESP를 작성하는 경우 첫 번째 설치에 두 가지 ESP를 사용하고 두 번째 설치에 두 번째 ESP를 사용할 수 있습니다. 최소한 두 번째 우분투 설치에서는 파티션을 수동으로 생성해야하지만 (설치 중에 "Something Else"옵션 사용) 파티션을 수동으로 만들어야합니다.

이 접근 방식의 한 가지 문제점은 EFI 사양에 명시 적으로 원하는만큼 많은 ESP를 생성 할 수 있다고 명시되어 있지만 일부 소프트웨어는 혼동 될 수 있습니다. 이것의 대표적인 예 중 하나는 Windows 7 이상을 통한 Windows 설치 프로그램입니다 (Windows 8 이상에 대해서는 모르겠습니다). Windows 7 설치 프로그램에 두 개의 ESP가있는 디스크가 있으면 조각이 나고 이상한 일을합니다. IIRC, 자체 설치가 제대로 완료되지 않았습니다. Windows 복구 도구는 동일한 문제로 고통받을 수 있습니다. 이 시스템에서 Windows를 부팅하지 않는다면 큰 문제가되지 않습니다. 당신 있다면Windows로 부팅 할 때 문제가 발생하면 Windows 이외의 ESP의 유형 코드를 일시적으로 변경하여 쉽게 극복 할 수 있으므로 문제를 알고 있어야합니다. ESP가 여러 개인 디스크에서는 Windows가 정상적으로 부팅됩니다. 그러한 디스크에서 질식하는 설치 프로그램 일뿐입니다.

또 다른 문제는 두 배포판 간을 전환하는 방법입니다. GRUB Customizer 와 같은 도구를 사용하여 설치 GRUB 설정 중 하나 또는 둘 다를 사용자 정의해야 할 수도 있습니다 . 또 다른 (호환되지 않는) 옵션은 펌웨어의 자체 부팅 관리자를 사용하여 두 개의 GRUB 설치 간을 전환하고 각각을 사용하여 자체 버전의 Ubuntu 만 부팅하는 것입니다.

옵션 # 2 : GRUB 포기 (또는 최소한 우분투 GRUB 툴)

현재 상황에서 GRUB의 문제점은 두 개의 설치가 있고 GRUB 유지 보수 도구가 해당 구성으로 인해 혼동 될 수 있다는 것입니다. 이러한 관찰은 단순히 해당 도구를 사용해서는 안되는 명백한 해결책으로 이어집니다. 있습니다 리눅스에 대한 몇 가지 다른 EFI 부트 로더, 수동으로 GRUB보다 유지하기가 더 쉽습니다 대부분은. ELILO, SYSLINUX, Fedora의 패치 된 GRUB Legacy, gummiboot 또는 rEFInd를 설정하고 두 설치를 수동으로 관리 할 수 ​​있습니다. 실제로 rEFInd는 부팅 할 때마다 커널을 감지하므로 rEFInd는 일단 설정되면 유지 관리가 필요하지 않습니다. 또는 비슷한 맥락 grub.cfg에서 GRUB 설정 스크립트에 의존하지 않고 원하는 대로 파일을 수동으로 편집 할 수 있습니다.

rEFInd 외에도 이러한 모든 도구를 사용하려면 커널을 업데이트 할 때마다 구성을 변경해야합니다. 추가 부팅 프로그램을 언제 어떻게 설치해야하는지에 대한 질문도 있습니다. 두 번째 Ubuntu 설치 후 각 설치마다 자체 GRUB 사본을 기본 부트 로더로 등록하고 해당 기본값을 무시하고 싶을 때까지 사용하지 않을 것입니다.

이 도구들 중 어느 것도 암호화 된 파일 시스템이나 LVM에서 커널을 읽을 수 없으므로 /boot각 우분투 설치에 대해 별도의 암호화되지 않은 파티션 이 필요 합니다. 이것은 내가 보았던 대부분의 지침이 암호화 된 Ubuntu 설치를 설정하는 방법이므로 디스크 암호화의 "최첨단"에서 재생하지 않는 한 큰 문제는 아닙니다.

일부 EFI 부트 로더에는 추가 특정 파티션 또는 파일 시스템 요구 사항이 있습니다. 특히 ELILO, SYSLINUX 및 gummiboot는 모두 커널이 FAT 파티션에 있어야하므로 ESP가 가장 적합합니다. 에 ESP를 마운트하여이 작업을 수행 할 수 /boot있지만 일부 패키지 업데이트에는 심볼릭 링크가 필요하기 때문에 우분투에서 iffy 솔루션입니다. 두 개의 별도의 우분투 설치에서 동일한 파일을 요구하기 때문에이 작업을 수행하는 데 어려움이 있습니다. (이 경우 "ESP"는 실제로 "부트 로더가 실행 된 파티션"을 의미하므로이 경우 하나의 ESP 만 가질 수 있습니다.) GRUB Legacy 및 rEFInd는 이에 대해 더 유연합니다.

내 추천

개인적으로, 나는 이것을 위해 rEFInd를 사용할 것입니다. 그러나 rEFInd를 유지 관리 할 때, 나는 정확하게 편견이 아닙니다. 사실, 세 개의 Ubuntu 설치간에 멀티 부팅하는 컴퓨터가 있고 rEFInd가 이들 사이에서 잘 전환됩니다. 이 특정 시스템은 암호화를 사용하지 않지만 rEFInd의 관점에서 새로운 문제가 발생하는지 의심합니다.

즉, 별도의 ESP도 제대로 작동해야하며 GRUB Customizer를 사용하여 해당 GRUB 복사본 중 하나 이상의 설정을 조정해야한다는 경고가 있습니다.


아주 좋은 제안, 감사합니다! 사양에 따라 여러 개의 ESP를 가질 수 있다고 확신하지만 Dell Latitude UEFI 구현도 지원합니다. 개별 단일 드라이브별로 경로를 탐색 할 수 있습니다. 그래도 실제로 시도해야합니다.
gertvdijk

Dell의 EFI 구현이 너무 어려서 여러 ESP를 처리 할 수없는 경우,이를 상점에 반품하여 환불해야합니다. 진지하게; 그런 종류의 나쁜 것은 펌웨어가 가장 기본적인 작업을 수행한다고 믿지 않을 그런 끔찍함을 나타냅니다. 실제로는 그렇게 나쁘지 않다고 생각합니다. 여러 ESP를 처리 할 수없는 EFI에 대해 들어 본 적이 없습니다.
로드 스미스

1

다음은 이전에 Rod Smith가 권장 한 옵션 # 2를 사용하여 UEFI가있는 단일 하드 드라이브에서 두 개의 LUKS 암호화 Ubuntu 시스템으로 이중 부팅하는 데 사용한 단계입니다. 이것은 Ubuntu 18.04.1-desktop과 관련이 있습니다. eCryptfs의 안정성과 유지 관리에 대한 우려가 있으므로 설치 중에 홈 디렉토리 암호화가 더 이상 옵션으로 제공되지 않습니다. 대신 LUKS를 사용하는 것이 좋습니다. 따라서 여러 사용자가 암호화 된 홈 파티션을 사용하는 것이 가장 좋습니다.

    1. Live USB로 부팅합니다. ISO를 다운로드하고 Startup Disk Creator를 사용하여 USB 드라이브를 포맷하고 설정했습니다.
    1. GParted를 사용하여 디스크를 분할하십시오. 이것은 https://help.ubuntu.com/community/ManualFullSystemEncryption의 권장 사항을 기반으로 하며 전체 디스크의 디스크 암호화를 선택할 때 Ubuntu 설치 프로그램에서 설정 한 일부 기본값을 사용합니다.
      • EFI 시스템 파티션 / 512MiB / FAT32 / 부팅, esp (플래그)
      • 부팅 시스템 # 1 / 732MiB / EXT4
      • 부팅 시스템 # 2 / 732MiB / EXT4
      • 데이터 암호화 # 1 / [원하는 크기] / 삭제
      • 데이터 암호화 # 2 / [원하는 크기] / 삭제
    1. Live USB로 다시 부팅
      • 우분투 설치
      • 설치 환경 설정을 선택하십시오.
      • 파티션 디스크 레이아웃 및 설치를위한 해당 파티션 구성에서 "다른 방법"을 선택하십시오.
        • 하단 메뉴에서 부트 로더로 "EFI 시스템 파티션"을 선택하십시오.
        • "데이터 암호화 # 1"을 선택하고 "암호화 물리 장치"를 선택한 다음 파티션에 사용할 암호화 문구를 입력하십시오.
        • EXT4로 새로 작성된 파티션을 선택하고 마운트 지점을 "/"로 변경하십시오.
        • "Boot System # 1"을 선택하고 마운트 지점이 "/ boot"가되도록합니다.
      • 계속 설치
    1. 새 설치로 재부팅
      • "apt-get install refind"를 통해 "refind"를 설치하고 ESP "EFI 시스템 파티션"에 자동으로 설치하십시오.
    1. 라이브 USB로 다시 부팅
      • 두 번째 Ubuntu 설치를 설치하는 # 2 부트 시스템 및 데이터 암호화 # 2 파티션에 대해 3 단계와 4 단계를 반복하십시오.
    1. 필요에 따라 각 설치를 구성하고 업그레이드하십시오.

1

단일 ESP와 함께 다음 방법을 사용합니다.

각 OS에 대해 추가 부트 로더를 만들었습니다.

sudo grub-install --bootloader-id=ID

ID운영 체제마다 다른 것을 사용합니다 .

예:

Ubuntu 16.04 및 Ubuntu 18.04가 설치되어 있습니다. 우분투 16.04로 부팅하고 실행합니다.

sudo grub-install --bootloader-id=Ubuntu1604

그런 다음 우분투 18.04로 부팅 한 후

sudo grub-install --bootloader-id=Ubuntu1804

UEFI 시작 - 설정에서 나는 이름으로 새 부트 항목을 참조 Ubuntu1604하고 Ubuntu1804첫 번째 장소에 새 항목 세트 하나에 부팅 순서를 재 배열.

ESP에서이 이름의 폴더를 볼 수도 있습니다.

시스템 업그레이드에 새로운 버전의 grub이 제공되면 ubuntuESP 의- 폴더에 새로운 grub 인스턴스를 다시 설치하며 , 직접 만든 부트 로더에는 영향을 미치지 않지만 부트 순서를 다시 정렬해야합니다. 는 AS ubuntu-entry 부팅 순서에서 첫 번째 장소에 푸시됩니다.

이것이 efibootmgr -v내 구성에 표시되는 것입니다.

~ $ efibootmgr -v
부팅 전류 : 0001
타임 아웃 : 0 초
부팅 주문 : 0001,0002,0004,0000,0003,0005
Boot0000 * 우분투 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (\ EFI \ ubuntu \ shimx64.efi)
Boot0001 * US1804 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (\ EFI \ US1804 \ grubx64.efi)
Boot0002 * US1604 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (\ EFI \ US1604 \ grubx64.efi)
Boot0003 * UEFI OS HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (\ EFI \ BOOT \ BOOTX64.EFI)
Boot0004 * US1904 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (\ EFI \ US1904 \ shimx64.efi)
Boot0005 * 우분투 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / 파일 (EFI \ Ubuntu \ grubx64.efi)

여전히 나를 위해 일하지 않았다. / etc / default / grub에서 기본값을 배포로 변경하고 grub을 GRUB_DISTRIBUTOR="Bionic_18_04"다시 설치하면 UEFI 기본 ID로 사용됩니다. 그러나 매번 새로운 /EFI/bionic_18_04/grub.cfg가 아닌 기본 위치로 /EFI/ubuntu/grub.cfg를 사용하여 부팅 할 때마다.
oldfred

@oldfred 나에게 이것은 트리플 부팅을 실행하는 몇 년 동안 잘 작동합니다.
mook765

/ etc / default / grub의 이름을 바꾸는 대신 명령을 시도했습니다. 차이가 없습니다. UEFI는 기본 부팅 새 항목으로 설정되어 있습니다. 그러나 새로운 / EFI / ubuntu1804 폴더에 grub이 아닌 Disco를 기본 부팅으로 사용하여 / efi / ubuntu를 사용하여 부팅했습니다. 차이를 만드는 것은 UEFI가 아니라 그럽이라고 생각합니다.
oldfred

@oldfred efibootmgr -v내 답변에 추가 한 결과를 살펴보십시오 . 효과가있다. 추가 변경 사항이있을 수 있습니다. 내가 설명한 것은 작동하도록하는 유일한 방법입니다.
mook765

efibootmgr -v를 확인했는데 새 항목으로 설정되었지만 / EFI / ubuntu에서 grub을 부팅했습니다. 내 /EFI/ubuntu1804/shimx64.efi를 부팅 중입니다. grubx64.efi 또는 shimx64.efi를 사용하고 있습니까? 보안 부팅이 해제되어 있지만 기본적으로 첫 번째 ubuntu1804 항목으로 shim으로 설정되어 있습니다. 어느 시점에서 나는 / EFI에 너무 많은 UEFI 항목이나 폴더가 생겨 부팅에 문제가 있었고 다른 드라이브에서 rEFInd를 사용하여 부팅해야했습니다. 따라서 / EFI 폴더 또는 UEFI의 항목이 너무 많지 않습니다.
oldfred
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.