예전에 이글루스에 썼던 글을 가져왔다.
며칠 전에 여러 배포판을 한 개 USB Drive 에서: MultiBootUSB 라는 글을 쓴 적이 있었다.
MultiBootUSB 는 뭔가 좀 문제가 많았다. UEFI 문제도 있고.. Flash 드라이브에 배포판 설치가 쉽다는 게 장점인데, 그게 다였다고 할까.
그냥 그런가보다..하고 포기하려다가, rEFInd 를 사용해서 이런 걸 만들 수 있지 않을까? 하는 생각을 하게 되었다.
반나절 동안 꽃삽질을 하다가, 제작자에게 문의해서 즉각 답을 얻어낼 수 있었다. 역시.. 모르면 물어보는게 제일인 것을. 쓸데없는 고집은 피워서..
제작자가 제안한 방법은 다음과 같다. 단, 이 방법으로는 MS 윈도우 설치 디스크는 사용 불가능하다.
간단하게만 정리한다.
Flash Drive 를 Gpt 형식으로 파티션을 만들고, 200MB 정도로 ESP 파티션을 생성한다. GUI 도구를 사용해도 되고, 터미널에서 명령어를 사용해도 된다. 명령어 사용 방법은 아치리눅스 설치 문서를 참고한다. 이 파티션은 FAT32 로 포맷까지 완료해야 한다.
그 후, 리눅스 배포판이 설치될 파티션을, 원하는 갯수만큼 설치한다. 공간은 배포본 이미지 크기에 따라 다른데, 그 파일 크기보다는 좀 더 크게 줘야 한다. 대략 2GB 정도면 충분하다. 파티션은 리눅스 파티션(8300)으로 하고, 포맷은 필요없다.
이 디스크를 /dev/sdc
라고 가정하면, rEFInd 및 각 리눅스 배포판 설치는 다음과 같이 할 수 있다.
아래 작업은 리눅스 OS 에서, rEFInd 가 이미 설치되어 있어야 완료할 수 있다.
refind 가 설치되어 있지 않아도 아래 작업을 수동으로 할 수는 있으나, 지식이 없다면 헷갈리고 번거롭다. (사실은, 그냥 파일만 몇 개 ESP 로 복사해주면 되는 건데, 모르면 어려울 수 밖에.) 굳이 어려운 작업을 애써 할 이유도 없다.
$ sudo refind-install --usedefault /dev/sdc1 $ sudo dd if=image.iso of=/dev/sdcX bs=1024 && sync
dd 작업은 설치를 원하는 OS 수 만큼, 각각 다른 파티션(sdc1, sdc2, sdc3 …)으로 해줘야 한다.
그리고 /dev/sdc1
을 /mnt
(또는 적당한 다른 디렉토리)로 마운트 한 후, ISO-9660 드라이버를 복사한다.
ISO-9660 말고도, 기타 ext4 나 btrfs 등, (앞으로 사용하기 원하는) 파일시스템 드라이버를 복사해놓는 게 좋다.
$ sudo mount /dev/sdc1 /mnt $ sudo cp /usr/share/refind/refind/drivers_x64/iso9660_x64.efi /mnt/EFI/BOOT/drivers_x64
작업 완료.
이 디스크로 부팅하면 각각 다른 배포판을, 하나의 디스크에서 부팅/설치할 수 있다.
게다가 더 좋은 점은, 부트 관리자가 rEFInd 이기 때문에, ubiquity -b
로 설치한 뒤, 후속작업을 깜빡했을 때도, 이 USB 드라이브를 사용해서 무리없이 부팅을 할 수 있다는 장점이 있다.
우분투 일파(우분투/쿠분투/우분투 버지)와 아치리눅스는 설치/실행에 전혀 문제가 없었다.
아마도 대부분 리눅스 배포판은 별 문제가 없을 듯 하다.
기타, Secure 부트 문제 등등은 제작자가 올려 주신 글을 참고할 것.