순수 Linux 멀티부팅 USB - 타사 소프트웨어 없음

순수 Linux 멀티부팅 USB - 타사 소프트웨어 없음

타사 소프트웨어 없이 Linux에서 완전히 Linux 배포용 멀티부팅 USB를 생성할 수 있습니까?

참고: 이것은 스스로 대답하는 질문입니다. 나는 내 접근 방식을 Linux 커뮤니티와 공유하고 싶습니다.

답변1

호스트 운영 체제로 Linux Mint 19 64비트를 사용합니다. 유사한 배포판과 배포판(예: Ubuntu)이 동일하게 작동할 것이라고 가정하는 것이 상당히 안전합니다.

우리는 다음이 필요합니다:

  • 최소 8GB USB(2개의 Linux ISO 이미지는 현재 4GB USB에 맞지 않음)
  • Linux용 ISO 이미지. 이 경우,우분투19.04그리고데비안 10. 이 이미지는 예시일 뿐입니다. Clonezilla 또는 GParted와 같은 도구를 포함하여 다른 배포판이나 버전이 이 가이드에 적합합니다.

프로세스

  1. GRUB EFI 호환성을 설치합니다 grub-efi-amd64.

    sudo apt install -y grub-efi-amd64
    
  2. msdos파티션 테이블을 사용하여 USB를 포맷합니다. 파티션은 FAT 형식이어야 합니다. 파티션을 부팅 가능으로 표시하십시오.

  3. USB를 설치합니다. 참고: 어떤 장치가 ie /dev/sdc1이고 해당 장치가 설치된 경로가 ie 입니다 /media/foo/USB/. 이제부터 이 두 가지 예를 지침으로 사용하겠습니다.

  4. 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
  1. ISO를 마운트하고 파일을 /boot/grub/grub.cfg에 복사합니다 /media/foo/USB/boot/grub. 이름을 변경합니다 ubuntu.cfg.debian.cfg

  2. ISO를 USB에 복사합니다.

GRUB 구성:

  1. /media/foo/USB/grub해당 파일 아래에 생성 grub.cfg하고 다음 내용을 거기에 넣습니다.

    set root='(hd0,1)'
    configfile /boot/grub/grub.cfg
    
  2. /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 구성을 추가할 수 있습니다.

Windows 설치 프로그램의 경우 동일한 방법을 사용하십시오..

관련 정보