grub에서 바로 .iso 파일 라이브 부팅하기
리눅스 .iso 파일
파일을 리눅스 부트로더인 grub
의 부트 메뉴에 추가해놓고, 그 .iso 파일
을 통해 바로 라이브 부팅을 하도록 만들거에요.
그러니까, 예를 들면 이런식으로 우분투 .iso 파일
의 경로 등을 적어서 grub
부팅 메뉴에 넣어두고,
그걸 선택하면 이렇게 해당 .iso 파일을 통해 라이브 부팅이 되도록 만들거에요.
우분투 및 공통 설명
menuentry "{메뉴에 보일 내용}" {
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
예를 들어, .iso 파일이 /home/username/iso
폴더 안에 있고, 파일 이름이 ubuntu-22.04.2-desktop-amd64.iso
이며, 해당 리눅스가 첫 번째 디스크의 3번째 파티션에 있다면,
그리고 부트 메뉴에는 “Ubuntu Desktop 22.02.2 LTS Live”라는 이름으로 넣고 싶다면
menuentry "Ubuntu Desktop 22.02.2 LTS Live" {
set isofile="/home/username/ubuntu-22.04.2-desktop-amd64.iso"
loopback loop (hd0,gpt3)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
같은 방식으로 적으면 될거에요. (hd0,gpt3)
같은건 알아서 잘 찾아보세요?
grub
에서 c
키 눌러서 콘솔 창으로 나가서 ls 같은걸 치면 연결된 보조기억장치 및 파티션 목록이 저런식으로 뜰텐데, 아무튼 잘 찍어보시면 될거에요.
페도라
Fedora-Workstation-Live-x86_64-38-1.6.iso
파일이 기준이에요. 다른 파일을 사용하실거라면 능력것 버전명이나 그런거 보고 수정해보세요.
Fedora Spin
에서 받은 KDE
버전 같은 다른 데스크톱 환경인 경우에도 WS
대신 KDE
로 적는 등 수정할게 필요할거에요.
menuentry "{메뉴에 보일 내용}" {
insmod ext2
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/images/pxeboot/vmlinuz root=live:CDLABEL=Fedora-WS-Live-38-1-6 rd.live.image verbose iso-scan/filename=$isofile
initrd (loop)/images/pxeboot/initrd.img
}
칼리 리눅스
kali-linux-2023.1-live-amd64.iso
파일이 기준이에요.
menuentry "{메뉴에 보일 내용}" {
insmod ext2
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile
initrd (loop)/live/initrd.img
}
아치 리눅스
이 게시글을 참고해보세요.
만자로 리눅스
manjaro-kde-22.0.5-minimal-230316-linux61.iso
파일이 기준이에요. 아치 계열 리눅스들도 다 이런식인지는 모르겠어요.
menuentry "{메뉴에 보일 내용}" {
set isofile="{.iso 파일 경로}"
set dri="free"
search --no-floppy -f --set=root $isofile
probe -u $root --set=abc
set pqr="/dev/disk/by-uuid/$abc"
loopback loop ({파티션})$isofile
linux (loop)/boot/vmlinuz-x86_64 img_dev=$pqr img_loop=$isofile driver=$dri copytoram
initrd (loop)/boot/intel_ucode.img (loop)/boot/initramfs-x86_64.img
}
리눅스 민트 데비안 에디션 (LMDE)
우분투
가 기반인 리눅스 민트
가 아닌, 데비안
기반인 리눅스 민트 데비안 에디션
이야기에요. lmde-5-cinnamon-64bit.iso
파일이 기준이에요.
menuentry "{메뉴에 보일 내용}" {
insmod ext2
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile
initrd (loop)/live/initrd.lz
}
분명 우분투
가 기반인 리눅스 민트
도 성공했던 기억이 있는데, 다시 시도해보니 안되네요.
하모니카
hamonikr-taebaek-6.0-amd64-Lite.iso
파일이 기준이고, 싸지방 등에 보이는 그 하모니카가 맞아요. 데비안
을 기반으로 하는 우분투
를 기반으로 하는 리눅스 민트
를 기반으로 하는 하모니카
에요.
menuentry "{메뉴에 보일 내용}" {
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
티멕스 OS
개발사 측에서 독자 개발이라는 거짓말을 했지만, 사실은 데바인
기반이라 그런지 적을 내용은 LMDE
랑 별 차이가 없어요. TmaxOS-21-Beta.iso
파일이 기준
menuentry "{메뉴에 보일 내용}" {
set isofile="{.iso 파일 경로}"
loopback loop ({파티션})$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile
initrd (loop)/live/initrd.img
}
기타 추가 정보
위에서 적으라고 하는 것들은 /etc/grub.d/
폴더 안에 있는 40_custom
파일을 root
권한으로 열고 거기다가 적으시면 되는거에요.
전 그냥 텍스트 편집기 앞에 sudo
를 붙여서 실행했어요.
아무튼 수정하신 뒤에, sudo update-grub
나 sudo grub-mkconfig -o /boot/grub/grub.cfg
등을 하시면, 이런식으로 적었던 내용들이 부트 메뉴에 추가될거에요.
전전 사진 속 처럼 --class ubuntu
나 --class fedora
같은걸 적으면, 테마 적용시 아래 사진처럼 앞에 저런 아이콘이 나올거에요.
그리고, /etc/grub.d/
폴더 안에 있는 파일들 앞에 써있는 수 순서대로 실행되는 듯 해서 custom 파일 앞에 적힌 수를 적당히 바꿨더니 UEFI Firmware Settings
보다 위에 메뉴가 추가되네요.
보안 이슈
chroot
용으로 아치리눅스를 넣어둘까 생각이 들긴 했는데, 굳이 아치가 아니더라도 이걸 가만 생각해보면,
grub애서 바로 리눅스 라이브 부팅이 가능하다
= 누구나 라이브 부팅으로 내 PC를 쓸 수 있다
= 개나소나 root 권한을 가지고 내 PC를 쓸 수 있다
가 되는지라, grub
자체를 잠궈버려서 해결했어요. 가만히 놔두면 원래 깔려있던 알아서 리눅스로 부팅되는 것도 원했던지라, 일부 menuenrty
는 비밀번호 입력 없이도 실행되도록 했구요.
방법은 이 게시글을 참고하시면 될거에요.