GParted , CloneZilla , Boot-Repair , Ubuntu 14.04 32 bit … 와 같은 라이브 ISO 파일이 많이 있습니다 . … /opt
이전 BIOS 시스템 에서 다운로드 한 다음 grub 메뉴에 추가하고 부팅 할 수있었습니다. . 🙂
이제 UEFI 시스템이 있으며 찾을 수있는 모든 정보는 BIOS 시스템에 대한 것입니다.
grub에서 이러한 ISO 파일을 부팅하는 단계는 무엇입니까?
나는 단지 내가 필요로하는 막대기를 결코 찾을 수 없기 때문에 나는 항상 USB 막대기에 이것들을 “굽는”것에 질려서 피곤하다. 반면 내 컴퓨터 자체는 내 주위의 혼란에 빠지기 훨씬 힘들다면 … ) 🙁
답변
grub 2.04 에는 버그 가 있으므로 이전 버전 이상이 있는지 확인하십시오.
grub에 ISO 파일을 추가하는 기본 사항은 UEFI에서 BIOS 시스템과 동일합니다. 파일을 편집 /etc/grub.d/40_custom
하고 menuentry
파일 맨 아래에 항목 (이 예에서는 GParted가 사용됨)을 추가합니다.
menuentry "GParted Live ISO" {
}
이제 ISO를 저장 한 디렉토리를 포함하는 변수를 추가 할 것입니다 (지금까지는 BIOS 시스템과 아무런 차이가 없음).
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
}
나는 /opt
내 컴퓨터의 루트에 디렉토리를 만드는 것을 싫어하고 선택적 소프트웨어가 있어야하는 Linux 파일 시스템 계층 에 따라 디렉토리를 저장 하는 데 사용 하고 있습니다 .
loopback
변수 를 추가하기 전에 파일이 저장된 하드 디스크를 찾아야하므로 a :를 수행하고 df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso | tail -1
내 컴퓨터의 출력 은 다음 과 같습니다 /dev/sdb2
.
그러나 용도 (GRUB hdX,Y
) 표기법을하고 이 UEFI와 BIOS 기계의 차이는 어디에서 오는 것입니다! 이제 컴퓨터를 재부팅 하고 grub 메뉴로 이동하여 다음 을 누르십시오 C. 이렇게하면 다른 명령 을 사용하여 grub 명령 프롬프트가 표시 되지만 필요한 유일한 명령 은 다음과 같습니다 ls
..
내 컴퓨터에서 출력은 다음과 같습니다.
(hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) ... (hd3) ...
응? 4 개의 드라이브? 나는 단지 3을 가지고있다! 그리고 그것은 (hd1,4)
BIOS가 아니라 (hd1,gpt3)
UEFI에 있으며 (hd0)
파티션이 전혀 없습니다!
NVRAM의 일부가 스토리지로 사용될 (hd0)
때 드라이브 번호를 1에서 시작해야 할 때 나타납니다 . ISO 파일 부팅에 대한 모든 정보는 0부터 번호를 시작해야한다고 말하지만 (BIOS 머신에서는 항상 사실이지만 , 일부 UEFI 머신에서는 반드시 그런 것은 아닙니다 !)
의 값이 그래서 loopback
하게 (hd2,gpt2)$GPartedISOFile
내 컴퓨터에서 ISO 파일로했다 /dev/sdb2
(두 번째 드라이브 hd2
, 두 번째 파티션 gpt2
) :
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
}
또 다른 차이점은 것입니다 linux
및 initrd
BIOS 시스템에서가 호출 linuxefi
하고 linuxefi
우리에게 우리의 최종 결과를 제공 UEFI 시스템에 :
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$GPartedISOFile ip=frommedia toram=filesystem.squashfs union=overlay username=user
initrdefi (loop)/live/initrd.img
}
이제 해당 파일을 저장하고 다음을 사용하여 grub을 업데이트하십시오.
update-grub
위의 모든 작업을 마친 후 재부팅 하고 grub 메뉴로 이동하여 선택 GParted Live ISO
하면 USB 스틱을 다시 찾지 않고도 ISO를 쉽게 부팅 할 수 있습니다!
🙂
CloneZilla Live 예제 ( 이 질문에 대한 )
menuentry "CloneZilla ISO" {
set ISOFile="/opt/Live-ISOs/clonezilla-live-20170905-zesty-amd64.iso"
loopback loop (hd2,gpt2)$ISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$ISOFile ip=frommedia toram=filesystem.squashfs union=overlay
initrdefi (loop)/live/initrd.img
}
답변
대안은 다음과 같이 구성 파일을 40_custom에 추가하는 것입니다.
menuentry 'Live ISOs on SSD' {
configfile (hd0,3)/ISO/livecdimage.cfg
}
menuentry 'Live ISOs on HDD (boot on SSD)' {
configfile (hd1,3)/ISO/livecdimage.cfg
}
ISO를 업데이트 할 때 항상 실행하는 것을 잊어 버립니다 sudo update-grub
. 위의 항목은 변경할 필요가 없으며 40_custom과 동일한 형식이지만 헤더 행이없는 livecdimage.cfg를 편집 할 수 있으며 ISO 파티션의 / ISO 폴더에 있습니다.
다른 부트 매개 변수로 toram을 추가하고 Nvidia add nomodeset 부팅 매개 변수가있는 시스템에서 toram을 추가합니다. 그러나 여전히 / isodevice를 마운트 해제해야합니다.
isodevice를 마운트 해제 할 수 없습니다. ISO 마운트 해제
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1155216
sudo umount -l -r -f /isodevice
그리고 이것은 내 livecdimage.cfg 파일의 일부입니다
# livecdimage.cfg
# Add this to 40_custom to load this file:
# menuentry 'Live ISOs' {
# configfile (hd1,3)/iso/livecdimage.cfg
#}
# Add iso names to livecdimage.cfg
#for i in `ls *.iso`;do echo "# "$i>>livecdimage.cfg; done;
menuentry "Ubuntu 16.04.4 xenial amd64" {
set isofile="/ISO/ubuntu-16.04.4-desktop-amd64.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile toram
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu 18.04 Bionic amd64" {
set isofile="/ISO/bionic-desktop-amd64.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile toram
initrd (loop)/casper/initrd.lz
}
# spacer line
menuentry " " {
set root=
}
menuentry "Reboot" {
reboot
}
menuentry "Halt" {
halt
}
답변
mkusb 멀티 부팅 해킹
Mkusb는 BIOS와 UEFI 기능을 모두 갖춘 맞춤형 부팅 드라이브 프로젝트를위한 훌륭한 기반을 제공합니다.
이 핵은 Windows 설치 프로그램을 포함하여 여러 ISO 파일을 부팅하며 grub2 메뉴가 있습니다.
대부분의 OS에 대한 Grub2 메뉴 항목은 Google 검색을 통해 사용할 수 있으며이 답변 범위를 벗어납니다.
영구 USB 드라이브를 작성할 때 mkusb 기본값을 사용하십시오.
확실하지 않으면 파티션 크기를 나중에 조정할 수 있지만 시간이 걸리는 경우 mkusb 지속성 기본값을 사용하십시오.
설치 후 DUS 콘솔.
파티션 수정 전 GParted.
수정 후 구분-지속성 파일 용 FAT32 파티션으로 sdb4, ISO9660 OS 파티션 및 sdb5, ext2 casper-rw 파티션을 덮어 씁니다.
지속성 파티션-각 OS에 대해 고유 한 이름의 폴더를 만듭니다 (지속성이 필요함)
지속성 폴더-casper-rw 파일 및 선택적 home-rw 파일을 각 지속성 폴더에 추가하십시오. casper-rw 파일의 이름을 바꾸어 home-rw 파일을 만들 수 있습니다. home-rw 파일은 전체 설치시 별도의 홈 파티션과 같으며 버전 업그레이드 후 재사용 할 수 있습니다.
NTFS usbdata 파티션에 ISO 파일 용 폴더를 만듭니다.
ISO 폴더에 ISO를 추가하십시오.
grub.cfg 위치
ISO 파일을 루프 마운트하려면 grub.cfg를 편집하십시오. persistent persistent-path=/<persistent-folder-name>/
지속성을 원한다면 포함하십시오 .
편집 18.04+ grub에서 vmlinuz가 아닌 vmlinuz.efi를 지정 하고 initrd가 initd가 아닌 initrd를 지정하십시오.
sudo parted -ls / dev / sdb
sudo lsblk -f / dev / sdb
Windows 설치 프로그램이 필요한 경우 mkusb “Windows 설치 프로그램 추출”기능으로 시작하는 것이 가장 쉽습니다 (Windows ISO를 TAR로 수동으로 추출해야 함).
설치 후 ISO 폴더를 작성하고 필요한 경우 지속성을위한 폴더를 작성하십시오 (위의 절차와 유사).
/boot/grub/grub.cfg를 편집하여 ISO를 루프 마운트하고 지속성 폴더를 지정하십시오.
(Windows ISO 파일을 루프 마운트하는 방법을 찾지 못했습니다).
위의 내용을 USB 스틱으로 사용하면 Windows 전용 컴퓨터에 저장된 ISO를 부팅하는 데 사용할 수 있습니다. 내장 드라이브에는 그럽이 필요하지 않습니다.
답변
쉬운 3 단계
grub 메뉴에 ISO를 추가하고 부팅합니다.
먼저 설치 grml-rescueboot
터미널을 열고 다음을 입력하십시오.
sudo apt install grml-rescueboot
둘째, iso 파일을 /boot/grml/
동일한 터미널에서 다음을 입력하십시오.
sudo mv ~/Downloads/<filename.iso> /boot/grml/
셋째, 그룹 업데이트
동일한 터미널에서 다음을 입력하십시오.
sudo update-grub
필요에 따라 두 번째 및 세 번째 단계를 반복하십시오.
에서 사용되지 않는 ISO 파일을 삭제하는 것을 잊지 마십시오 /boot/grml
.
참조 : Grub2 ISO 부팅에 대한 Ubuntu 도움말
도움이 되었기를 바랍니다
답변
멀티 부트 USB-QEMU
번거롭지 않고 ISO 파일을 부팅하려는 경우 지속성이 필요하지 않은 경우 MultiBootUSB에는 QEMU 옵션이 포함됩니다.
-
MultiBootUSB를 시작하고 Boot ISO / USB 탭을 선택하십시오.
-
이미지 선택 공간에서 ISO를 끌어다 놓습니다.
-
RAM 크기를 선택하고 Boot ISO 버튼을 누르십시오.
grub.cfg를 편집하거나 로그 아웃 할 필요가 없습니다.
답변
간단한 mkusb ISO 멀티부터
다중 지속성이 필요하지 않은 경우 mkusb 플래시 드라이브에서 운영 체제 ISO를 멀티 부팅하기 쉽습니다.
mkusb를 사용하여 원하는 기본 OS ( https://help.ubuntu.com/community/mkusb)를 사용하여 영구 USB 드라이브를 만드십시오.
usbdata 파티션 sdx1에 ISO라는 이름의 폴더를 만듭니다.
이 폴더에 부팅 할 ISO를 추가하십시오.
ISO를 루프 마운트하려면 /sdx3/boot/grub/grub.cfg에 메뉴 항목을 추가하십시오.
견본:
menuentry "Ubuntu-18.04 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/ubuntu-18.04-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile splash --
initrd (loop)/casper/initrd.lz
}
menuentry "GParted 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live union=overlay username=user config components noswap noeject toram=filesystem.squashfs ip='' nosplash findiso=$isofile splash --
initrd (loop)/live/initrd.img
}
menuentry "Clonezilla 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/clonezilla-live-2.5.5-38-amd64.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live live-config nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile splash --
initrd (loop)/live/initrd.img
}