USB없이 GRUB2를 통해 ISO파일 부팅하기(DVD 없이 우분투 설치)

공대생의 팁 2021. 3. 11. 00:05

 

 불과 10년전만 해도 CD와 DVD가 쓰이곤 했었는데 어느새부터인가 데스크톱에서 조차 DVD-ROM이 탑재되지 않는 모델들이 등장하고 있습니다. 2021년 기준 32GB짜리 USB메모리를 3천원에 구할 수 있는데다 어느 컴퓨터에나 있는 USB에 꽂아 데이터를 전송하고 변경도 가능한데 굳이 공DVD를 구해 구워서 데이터를 저장할 필요가 없어진 것이지요. 그러다보니 자연스럽게 컴퓨터에 운영체제를 설치하기 위해 USB로 부팅하는 경우가 흔해지고 있습니다. 그만큼 DVD보다 데이터를 다루는 것이 편해서기 때문이겠지요?

 이번 포스팅에서는 Linux 환경에서 GRUB2를 수정하여 USB를 사용하지 않고 하드디스크만으로 ISO 파일을 부팅할 수 있도록 설정하는 방법에 대해 알아보도록 하겠습니다.

 

※Ubuntu 18.04 데스크톱을 기준으로 Ubuntu 20.04 ISO 파일을 설치하는 과정을 다룹니다.

 

1. 부팅하고자 하는 ISO 파일을 구합니다.

 

아래의 사이트를 통해 Ubuntu 설치 ISO 파일을 다운로드한 다음 원하는 폴더에 위치하도록 합니다.

http://mirror.kakao.com/ubuntu-releases/

 

Ubuntu Releases

These older Ubuntu releases are now in Extended Maintenance (ESM): We are happy to provide hosting for the following projects via the cdimage server. While th

mirror.kakao.com

2. ISO파일이 위치한 폴더의 파티션을 확인한다.

 

다음 명령어를 통해 폴더의 파티션이 어디에 속해있는지 확인할 수 있습니다.

  $ df -h

 위의 결과에서 Filesystem에서 /dev/sd~~ 라고 써있는 부분이 설치시 필요한 파티션들입니다. 혹시 자신의 파티션이 단 하나일 경우 해당 파티션에 우분투가 설치되어 있어 ISO로 부팅했을 때 해당 파티션을 잡게 되어 새로 설치하는 것이 어렵습니다. 이를 위해서는 단일 파티션을 쪼개 ISO 파일을 위치시킬 파티션을 따로 만들어주어야 합니다. 해당 방법에 대해서는 아래의 링크를 참조해주세요.

 

리눅스 파티션 설정 ( 파티션 만들기 / 파티션 나누기 )

안녕하세요 롯사입니다. 리눅스를 설치할 때 자동으로 파티션을 구성하여 설치하셨다면 이번엔 리눅스 터미널 환경에서 fdisk라는 명령어를 이용해서 수동으로 파티션을 나누어 보겠습니다. 여

wlsvud84.tistory.com

 ISO 파일을 위치시킬 파티션에 ISO파일을 옮긴 후 다음으로 진행합니다.

3.GRUB2에 ISO파일을 등록

 다음 명령어를 입력하여 GRUB2에 부팅할 ISO파일을 등록해줍니다.

  # sudo vi /etc/grub.d/40_custom

 

 해당 파일에 다음과 같은 내용을 작성해줍니다.

1
2
3
4
5
6
7
menuentry "Ubuntu 20.04.2 ISO" {
        set isofile="/<파일경로>/ubuntu-20.04.2.0-desktop-amd64.iso"
        #/dev/sda5에 설치시
        loopback loop (hd0,5)$isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
        initrd (loop)/casper/initrd.lz
}
cs

 

 만약 자신의 운영체제가 GRUB 2.04 버전을 사용하고 있을 경우 다음과 같은 내용을 작성해줍니다.

1
2
3
4
5
6
7
8
menuentry "Ubuntu 20.04.2 ISO" {
        set isofile="/<파일경로>/ubuntu-20.04.2.0-desktop-amd64.iso"
        rmmod tpm
        #/dev/sdc1에 설치시
       loopback loop (hd2,1)$isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
        initrd (loop)/casper/initrd.lz
}
cs

위의 코드를 한 줄 씩 살펴보겠습니다.

menuentry "Ubuntu 20.04.2 ISO" {

 

GRUB 첫 화면에서 메뉴 선택시 제목을 설정합니다. "Ubuntu 20.04.2 ISO"라는 제목으로 메뉴가 표출됩니다.

set isofile="/<파일경로>/ubuntu-20.04.2.0-desktop-amd64.iso"

 

ISO 파일이 위치한 경로를 선택합니다. 

 만약 여러분들이 /dev/sdb 파티션에 위치한 ISO 파일을 부팅하기를 원할 때 절대경로는 /mnt/파일명.iso이지만 /dev/sdb의 기본 주소가 /mnt 이므로 파일경로는 /mnt를 생략하고 다음과 같이 작성하면 됩니다.

set isofile="/ubuntu-20.04.2.0-desktop-amd64.iso"

 

다음으로 파티션 위치를 설정하는 방법에 대하여 설명해보도록 하겠습니다.

       loopback loop (hd0,5)$isofile

 

 위의 에서 hd0,5는 파티션 /dev/sda5에 위치한 ISO 파일을 가리키고 있습니다. /dev/sdXY에서 X는 파티션의 알파벳 부분으로 a부터 0으로 카운트되며 Y는 해당 파티션의 번호입니다. ISO 파일이 위치한 파티션을 확인하신 다음 입력하시면 되겠습니다.

 정확하게 ISO 파일이 위치한 파티션의 위치를 확인하기 위해 재부팅후 GRUB 화면으로 넘어옵니다.

 

 위 화면에서 'c' 버튼을 누르면 GRUB의 커맨드창이 나옵니다. 아래와 같이 명령어를 입력해줍니다.

 

  grub> ls -al

 

 입력후 아래와 같이 컴퓨터에 연결된 파티션 정보가 출력됨을 알 수 있습니다. 

 위의 경우 hd0에는 (hd0,msdos5) 파티션과 (hd0,msdos1) 파티션이 존재함을 확인할 수 있습니다. ISO 파일이 어떤 파티션에 있는지 확인하기 위해 다음과 같은 명령어를 입력하면 해당 파티션의 파일 구조를 확인할 수 있습니다.

 

  grub> ls (hd0,msdos5)/

 이를 통해 ISO 파일의 파일 경로를 확인후 ISO가 있는 파티션을 입력해줍니다.

4. GRUB2의 메뉴를 확인할 수 있는 대기시간을 확보합니다.

 아래의 명령어를 입력합니다.

  # sudo vi /etc/default/grub

 

 해당 부분을 다음과 같이 수정하여 GRUB2에서 메뉴를 선택할 수 있는 시간을 확보합니다. 여기서는 10초 할당하였습니다.

  GRUB_TIMEOUT=10

 

5. GRUB2의 설정을 업데이트한 다음 리셋하여 확인

 아래의 명령어를 입력하여 GRUB2의 메뉴를 업데이트합니다.

  # sudo update-grub

 

 여기까지 진행하셨다면 시스템을 리셋하여 GRUB2 메뉴에 ISO 파일 부팅이 되는 것을 확인합니다.

  # sudo reboot

300x250