최근에 내 하드 드라이브에 불량 섹터가 생겼습니다. 불과 며칠 전 데이터가 손상되었습니다. 그래서 내 하드 드라이브의 수명이 다한 것 같습니다.
따라서 한 가지 옵션은 새 하드 디스크를 구입하는 것이었지만 향후 5~6개월 후에 노트북을 교체할 것이므로 비용을 추가하고 싶지 않았습니다. 그래서 외장하드에 우분투를 설치했는데, 우분투를 설치하니 외장 우분투가 내장하드의 EFI 파티션을 바꿔버렸습니다. 이제 부팅을 위해 외장하드를 연결해야 합니다.
두 EFI 파티션을 모두 분리하고 싶습니다. 외부 드라이브 없이 내부 하드 드라이브 우분투를 열 수 있는 EFI 파티션을 원하고 내부에 장애가 발생하면 외부에서 부팅하고 싶습니다. 그래서 저는 내부에 하나, 외부에 하나라는 두 개의 서로 다른 EFI를 원합니다.
내부 우분투에서 update-grub을 실행해 보았습니다. 그것은 외부의 우분투뿐만 아니라 내부의 창도 감지할 수 있다는 것을 보여주었습니다. 그러나 EFI 파티션은 수정되지 않습니다. 또한 외장 드라이브에 별도의 EFI 파티션을 어떻게 구성합니까? 이미 외장 드라이브에 200MB의 EFI fat32 파티션을 만들었습니다. 전체 EFI를 내부에서 외부로 복사했습니다. BIOS에서 생성한 사용자 정의 항목에서 부팅 여부를 테스트했습니다. 이제 내부 하드 드라이브에서 내부 grub을 부팅하는 방법과 /etc/default/grub의 EFI 경로 이외의 변경 사항을 알고 싶습니다. 모든 것이 작동하려면 외부에서 수행해야 합니다.
답변1
Launchpad 버그 #1396379(설치 중에 부트로더 위치에 대한 사용자 입력이 무시되고 발견된 첫 번째 EFI가 사용됨)가 이러한 종류의 문제의 원인입니다. "이것이 나에게 영향을 미치나요?"라는 질문에 자신을 추가하세요. 두 번째 디스크에 설치한 경우 버그에 대해 알아보세요. 설치 프로그램 외부에서 grub은 잘 작동하며 적절한 옵션과 함께 사용하여 설치 위치를 지정할 수 있습니다.
두 번째 디스크에 설치하면 첫 번째 디스크의 EFI가 업데이트되고 여전히 grub이 부팅되지만 이제 grub의 추가 파일은 두 번째 디스크에 위치하게 됩니다. 이는 두 번째 디스크가 연결되어 있는 한 작동합니다. 두 번째 디스크가 연결되지 않으면 grub은 부팅을 계속하는 데 필요한 파일을 찾을 수 없습니다. 첫 번째 디스크의 EFI 파일을 두 번째 디스크의 EFI에 복사하면 두 번째 디스크가 제대로 부팅됩니다. 부팅하려면 부팅 순서에서 디스크를 첫 번째로 선택/넣으세요.
첫 번째 EFI에 대한 수정 사항은 EFI/ubuntu/grub.cfg 파일(단 몇 줄)을 편집하여 디스크/파티션 참조를 다시 첫 번째 디스크로 변경하고 UUID(에서 sudo blkid를 실행하여 제공됨)를 사용하는 것입니다. 터미널) 첫 번째 디스크의 Ubuntu용입니다. 이 변경을 통해 grub은 첫 번째 디스크에서 부팅할 수 있습니다. 필요한 유일한 변경 사항은 Windows 부트로더를 장치의 기본값으로 복원하는 것입니다. /EFI/Boot/bootx64.efi 파일은 원래 Windows 부트로더였지만 아마도 /EFI/Boot/bckbootx64.efi(또는 bootx64.efi.bup)로 이름이 바뀌었을 것입니다. /EFI/Microsoft/Boot/bootmgfw.efi에서 Windows 부트로더의 크기를 확인하여 bckbootloader.efi가 실제로 Windows 부트로더인지 확인하세요. 그런 다음 해당 파일(또는 /EFI/Microsoft/Boot/bootmgfw.efi)을 다시 /EFI/Boot/bootx64.efi에 복사하세요. 부팅 순서에 장치 또는 /EFI/Microsoft/Boot/bootmgfw.efi 두 번째를 입력하면 두 번째 디스크가 연결되지 않은 경우 두 번째 항목이 부팅됩니다.