타사 소프트웨어 없이 Linux에서 완전히 Linux 배포용 멀티부팅 USB를 생성할 수 있습니까?
참고: 이것은 스스로 대답하는 질문입니다. 나는 내 접근 방식을 Linux 커뮤니티와 공유하고 싶습니다.
답변1
호스트 운영 체제로 Linux Mint 19 64비트를 사용합니다. 유사한 배포판과 배포판(예: Ubuntu)이 동일하게 작동할 것이라고 가정하는 것이 상당히 안전합니다.
우리는 다음이 필요합니다:
- 최소 8GB USB(2개의 Linux ISO 이미지는 현재 4GB USB에 맞지 않음)
- Linux용 ISO 이미지. 이 경우,우분투19.04그리고데비안 10. 이 이미지는 예시일 뿐입니다. Clonezilla 또는 GParted와 같은 도구를 포함하여 다른 배포판이나 버전이 이 가이드에 적합합니다.
프로세스
GRUB EFI 호환성을 설치합니다
grub-efi-amd64
.sudo apt install -y grub-efi-amd64
msdos
파티션 테이블을 사용하여 USB를 포맷합니다. 파티션은 FAT 형식이어야 합니다. 파티션을 부팅 가능으로 표시하십시오.USB를 설치합니다. 참고: 어떤 장치가 ie
/dev/sdc1
이고 해당 장치가 설치된 경로가 ie 입니다/media/foo/USB/
. 이제부터 이 두 가지 예를 지침으로 사용하겠습니다.GRUB 설치:
dirs=(bin dev etc lib lib64 proc sbin sys usr) for dir in "${dirs[@]}"; do mkdir /media/foo/USB/$dir && sudo mount --bind /$dir /media/foo/USB/$dir done sudo chroot /media/foo/USB/ # chroot environment # first we install grub efi grub-install --force --removable --target=x86_64-efi --efi-directory=/ /dev/sdc1 # now we install grub i386 grub-install --force --removable --target=i386-pc --boot-directory=/ /dev/sdc # exit the chroot exit
경고하다! ! 예매우 조심스럽다바인딩된 디렉터리를 삭제하고 시스템에 해를 끼칠 수 있으므로 다음 명령을 사용하십시오. 경로를 입력하는 대신 탭 완성을 사용하세요.
for dir in "${dirs[@]}"; do
sudo umount /media/foo/USB/$dir && rm -rf /media/foo/USB/$dir
done
ISO를 마운트하고 파일을
/boot/grub/grub.cfg
에 복사합니다/media/foo/USB/boot/grub
. 이름을 변경합니다ubuntu.cfg
.debian.cfg
ISO를 USB에 복사합니다.
GRUB 구성:
/media/foo/USB/grub
해당 파일 아래에 생성grub.cfg
하고 다음 내용을 거기에 넣습니다.set root='(hd0,1)' configfile /boot/grub/grub.cfg
/media/foo/USB/boot/grub
해당 파일 아래에 생성grub.cfg
하고 다음 내용을 거기에 넣습니다.menuentry 'Ubuntu 19' { configfile /boot/grub/ubuntu.cfg } menuentry 'Debian 10' { configfile /boot/grub/debian.cfg }
구성분투.cfg
파일을 편집 /media/foo/USB/boot/grub/ubuntu.cfg
하고 맨 위에 다음 줄을 추가합니다.
set iso_path=/ubuntu-19.04-desktop-amd64.iso # the name of the ISO
loopback loop $iso_path
문자열의 모든 항목을 /casper/
다음으로 바꿉니다.(loop)/casper/
문자열의 모든 항목을 vmlinuz
다음으로 바꿉니다.vmlinuz iso-scan/filename=$iso_path
구성된ebian.cfg
파일을 편집 /media/foo/USB/boot/grub/debian.cfg
하고 맨 위에 다음 줄을 추가합니다.
set iso_path=/debian-live-10.2.0-i386-lxqt+nonfree.iso # the name of the ISO
loopback loop $iso_path
문자열의 모든 항목을 /live/
다음으로 바꿉니다.(loop)/live/
문자열의 모든 항목을 /d-i/
다음으로 바꿉니다.(loop)/d-i/
이제 USB가 작동하는지 테스트할 준비가 되었습니다. USB가 연결된 상태에서 컴퓨터를 부팅하면 됩니다. BIOS/EFI에 따라 BIOS 또는 EFI 부팅 중에서 선택하거나 USB 시스템에서 이전 부팅을 부팅할 수 있는 다양한 옵션이 제공됩니다.
단순화를 위해 그리고 이 방법은 상당히 발전되었기 때문에 사용자가 분류할 수 있을 것으로 예상되는 많은 세부 사항을 생략했습니다. 어떤 경우에도 제안, 비판, 개선을 환영합니다. 요청하는 경우 이 답변을 편집하여 다른 Linux 시스템에 대한 GRUB 구성을 추가할 수 있습니다.