Jak mogę uruchomić do pliku ISO w GRUB? Plik ISO znajduje się na partycji reiserfs i GRUB może uzyskać do niego dostęp (już to przetestował).
Jak mogę uruchomić do pliku ISO w GRUB? Plik ISO znajduje się na partycji reiserfs i GRUB może uzyskać do niego dostęp (już to przetestował).
Odpowiedzi:
Największy problem z uruchamianiem pliku ISO polega na tym, że pliki ISO zaprojektowane do rozruchu prawie zawsze są zaprojektowane do rozruchu z dysku CD . Jak wyjaśniono na blogu Marco dotyczącym Grub 2 (moje podkreślenie):
GRUB może odczytywać obrazy ISO9660 („iso”). Może na przykład załadować kilka pierwszych sektorów i uruchomić go. Ale większość ludzi nie zdaje sobie sprawy, że „co wtedy?”. Co zrobiłby załadowany system operacyjny? Najprawdopodobniej wyszuka CDROM, którego nie znajdzie i zawiedzie.
Tak więc najprostszym sposobem na uruchomienie z losowego pliku ISO jest załadowanie go na maszynę wirtualną (VirtualBox, VMware lub Virtual PC) jako wirtualną płytę CD i uruchomienie tam. To prawie zawsze powinno działać, ponieważ dla VM nie jest to plik ISO - to prawdziwa płyta CD na prawdziwym sprzęcie CD.
Ładowanie z pliku ISO na goły metal jest znacznie trudniejsze. To, jak to zrobisz, zależy od używanej wersji Gruba, a wyniki mogą się różnić w zależności od używanego ISO i tego, jak został skonfigurowany do rozruchu. Właśnie dlatego większość narzędzi rozruchowych ISO z USB (Unetbootin, WinToFlash itp.) Zwykle wyodrębnia zawartość ISO na dysk - ponieważ w ten sposób można uzyskać do nich bezpośredni dostęp, bez mylenia uruchamianego systemu operacyjnego.
... niepewny. Jeśli to możliwe, pozycje menu prawdopodobnie będą wyglądać bardzo podobnie do Grub4DOS, chociaż myślę, że polecenie „map --hook” jest rozszerzeniem Grub4DOS. Na plus, Grub ma szersze wsparcie systemu plików niż Grub4DOS.
Uwaga na temat Grub z reiserfs (niepotwierdzona) wskazuje, że „musisz zamontować partycję notail
, aby działała”.
Memdisk jest opcją; patrz poniżej.
Grub4DOS oferuje eksperymentalną „emulację CD”, która działa z niektórymi ISO. Niestety, Grub4DOS odczytuje tylko systemy plików FAT32 / NTFS. Pobierz Grub4DOS.
Oto przykładowy wpis ( źródło ):
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
Podobno Win7 ISO można uruchomić za pomocą tego wpisu :
title Windows 7
map (hd0,0)/win7.iso (hd32)
map --hook
chainloader (hd32)
Inne ISO można uruchomić za pomocą Memdisk :
title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
kernel /memdisk iso
initrd /hdt.iso
Możesz także użyć konfiguratora menu, takiego jak MultiBootISOs.exe z PenDriveLinux . Umieść pliki ISO na dysku flash i uruchom narzędzie, aby zainstalować program ładujący i skonfigurować menu rozruchu.
Oto odcinek Hak5 na temat instalowania Grub4DOS.
Oto kilka przykładowych wpisów Grub2. Chainloader nie działa obecnie w celu uruchomienia ISO, więc wpisy te muszą (1) używać pętli zwrotnej do „montowania” ISO i (2) dodawać coś takiego jak iso-scan lub findiso do linii linux , która określa plik ISO.
Niestety nie ma ogólnego sposobu na zrobienie tego. Każdy inny wpis rozruchowy musi być dostosowany do zawartości docelowego ISO. Większość płyt LiveCD z systemem Linux używa ISOLINUX jako programu ładującego; znajdź plik isolinux.cfg i sprawdź ten wpis rozruchu, aby zobaczyć, co zwykle uruchamia się.
Przykładowe wpisy ( źródło ):
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
}
Jeśli próbujesz uruchomić dysk LiveCD inny niż Linux, możesz mieć pecha. Ponownie Memdisk może pomóc :
menuentry "Boot Hardware Detection Tool from iso" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Możesz użyć dd z terminala, aby zapisać plik ISO na partycji. Bądź ostrożny, jeśli źle użyjesz dd, możesz wyczyścić wszystko. Powinno to wyglądać mniej więcej tak: dd if = Desktop / LinuxCDFile.iso of = / Path / To / Partition