grub : ISO에서 부팅 있으며 GRUB에서

GRUB에서 ISO 파일로 부팅하려면 어떻게해야합니까? ISO 파일은 reiserfs 파티션에 있으며 GRUB에서 액세스 할 수 있습니다 (이미 테스트 됨).



답변

ISO 파일을 부팅 할 때 가장 큰 문제는 부팅하도록 설계된 ISO가 거의 항상 CD에서 부팅되도록 설계되었다는 것 입니다. Grub 2 (강조 광산)에 관한 Marco의 블로그 에 설명 대로 :

GRUB은 ISO9660 ( “iso”) 이미지를 읽을 수 있습니다. 예를 들어 처음 몇 개의 섹터를로드하고 부팅 할 수 있습니다. 그러나 대부분의 사람들은“무엇입니까?” 로드 된 운영 체제는 무엇을합니까? 찾지 못할 CDROM을 찾아서 실패 할 가능성이 높습니다.

따라서 임의의 ISO 파일로 부팅하는 가장 간단한 방법 은 가상 머신 (VirtualBox, VMware 또는 Virtual PC)에 가상 CD로로드하여 부팅하는 것입니다. VM은 ISO 파일이 아니기 때문에 실제 CD 하드웨어의 실제 CD이기 때문에 거의 항상 작동해야합니다.

베어 메탈의 ISO 파일에서 부팅하는 것이 훨씬 어렵습니다. 이 작업을 수행하는 방법은 사용중인 Grub 버전에 따라 다르며 사용중인 ISO 및 부팅 구성 방법에 따라 결과가 달라질 수 있습니다. 그렇기 때문에 대부분의 boot-ISO-from-USB 도구 (Unetbootin, WinToFlash 등)는 일반적으로 드라이브에 ISO 내용을 추출 합니다. 그렇게하면 OS 부팅을 방해하지 않고 직접 액세스 할 수 있기 때문입니다.


그럽 1

… 확실하지 않다. 가능한 경우 메뉴 항목은 아마도 Grub4DOS와 비슷할 것입니다. “map –hook” 명령은 Grub4DOS 향상 이라고 생각합니다 . 장점은 Grub이 Grub4DOS보다 파일 시스템을 더 광범위하게 지원한다는 것입니다.

reiserfs (확인되지 ​​않은)가있는 Grub 에 대한 메모는 ” notail작동하기 위해 파티션을 마운트해야 함”을 나타냅니다 .

Memdisk는 옵션입니다. 아래를 참조하십시오.


Grub4DOS

Grub4DOS 는 일부 ISO에서 작동하는 실험적인 “CD 에뮬레이션” 을 제공합니다. 불행히도 Grub4DOS는 FAT32 / NTFS 파일 시스템 만 읽습니다. Grub4DOS를 다운로드하십시오.

다음은 샘플 항목 ( source )입니다.

title fdfullcd.iso (0xFF)
  find --set-root /fdfullcd.iso
  map /fdfullcd.iso (0xFF)
  map --hook
  root (0xFF)
  kernel /isolinux/data/memdisk
  initrd /isolinux/data/fdboot.img

이 항목 으로 Win7 ISO를 부팅 할 수 있습니다 .

title Windows 7
  map (hd0,0)/win7.iso (hd32)
  map --hook
  chainloader (hd32)

다른 ISO는 Memdisk 로 부팅 할 수 있습니다 :

title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
  kernel /memdisk iso
  initrd /hdt.iso

PenDriveLinux의 MultiBootISOs.exe 와 같은 메뉴 구성 자를 사용할 수도 있습니다 . 플래시 드라이브에 ISO를 배치하고 유틸리티를 실행하여 부트 로더를 설치하고 부트 메뉴를 구성하십시오.

다음은 Grub4DOS 설치에 관한 Hak5 에피소드 입니다.


그럽 2

다음은 몇 가지 예제 Grub2 항목입니다. chainloader는 이러한 항목 (1)를 사용한다, 그래서 현재의 ISO를 부팅 작동하지 않습니다 루프백 으로는 “마운트”는 ISO와 같은 (2) 추가 뭔가 iso-scan에서 또는 findiso 받는 리눅스 라인이 지정 ISO 파일.

불행히도이를 수행하는 일반적인 방법은 없습니다. 각각의 다른 부팅 항목은 대상 ISO의 내용에 맞게 사용자 정의해야합니다. 대부분의 Linux LiveCD는 ISOLINUX를 부트 로더로 사용합니다. isolinux.cfg를 찾아 부팅 항목을 검사하여 일반적으로 부팅되는 항목을 확인하십시오.

예제 항목 ( source ) :

menuentry "Ubuntu Live 9.10 32bit" {
 loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

menuentry "Grml small 2009.10" {
  loopback loop /boot/iso/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}

Linux 이외의 LiveCD를 부팅하려는 경우 운이 좋지 않을 수 있습니다. 다시, Memdisk가 도움이 될 수 있습니다 .

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}

답변

터미널에서 dd를 사용하여 iso 파일을 파티션에 쓸 수 있습니다. dd를 잘못 사용하면 모든 것을 지울 수 있습니다. 다음과 같이 보일 것입니다 : dd if = Desktop / LinuxCDFile.iso of = / Path / To / Partition


답변