Jak uruchomić z obrazów ISO na żywo innych niż Ubuntu, takich jak Fedora lub CentOS?


26

Odkryłem, że można to zrobić loopbackw następujący sposób

menuentry "Lucid ISO" {
loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}

Ale działa tylko z ubuntu lub jego pochodnymi. Jak to napisać, jeśli chcę uruchomić inne obrazy na żywo, takie jak fedora, cent, opensuse itp.?

Edycja: Znalazłem kilka innych wpisów, ale wszystkie z nich są prawdopodobnie oparte na Debianie.

menuentry "Linux Mint 10 Gnome ISO" {
 loopback loop /linuxmint10.iso
 linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash --
 initrd (loop)/casper/initrd.lz
}

menuentry "DBAN ISO" {
 loopback loop /dban.iso
 linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent --
}


menuentry "Tinycore ISO" {
 loopback loop /tinycore.iso
 linux (loop)/boot/bzImage --
 initrd (loop)/boot/tinycore.gz
}


menuentry "SystemRescueCd" {
 loopback loop /systemrescuecd.iso
 linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx
 initrd (loop)/isolinux/initram.igz
}

Edycja2: Jak ładować łańcuch grubi syslinuxod grub2?

Edycja3: Chcę uruchomić inne obrazy na żywo bez żadnych urządzeń wymiennych i używać, grub2więc potrzebuję pozycji menu specyficznych dla grub2.


1
To nie jest temat, nadal wymiana stosów unix i linux jest lepsza unix.stackexchange.com
Tachyons

@Rinzwind jak ??
Tachyons

2
Pytanie dotyczy fedora, centOS i opensuse. Nie o Ubuntu. @abcd
Rinzwind

2
Nawiasem mówiąc: Fedora nie jest w stanie tego zrobić. CentOS jest w zasadzie Fedorą. dracutma przeciwko temu żądanie funkcji i należy je w tym celu załatać. Patch można znaleźć na stronie bugzilla.redhat.com
Rinzwind

Odpowiedzi:


19

Uruchamianie z iso jest funkcją, która musi być obsługiwana przez dystrybucję, a iso-scan/filename=opcja nie będzie działać w Fedorze ani w innych. Mogą mieć inne opcje jądra dla tej funkcji lub funkcja może w ogóle nie być obsługiwana.

Znalazłem sposób na uruchomienie Fedory 16 DVD, oto poniżej.

Uruchamianie ISO Fedory 15 DVD z grub

menuentry „Fedora 15 (DVD)” {
 insmod loopback
 insmod iso9660
 set isofile = "/ Fedora-15-x86_64-DVD.iso"
 loopback loop (hd0,2) $ izofile
 linux (loop) / isolinux / vmlinuz rootfstype = auto root = live: UUID =: $ isofile ro quiet
 initrd (loop) /isolinux/initrd.img
}

Zakłada, że ​​plik ISO znajduje się w katalogu głównym drugiej partycji wewnętrznego dysku twardego.

źródło: ta strona

Możesz szukać innej dystrybucji w Google, ponieważ nie jest to funkcja niezależna od dystrybucji.

Uwaga 1: Działa również z Fedorą 16, właśnie go przetestowałem.
Uwaga 2: Wygląda na to, że metoda zadziałała po umieszczeniu pliku ISO na grubej partycji lub ext4.


Uruchamianie grml małego ISO z grub2

Grml można również uruchomić z grub2. Zauważ, że używa findisoopcji zamiast iso-scan/filenameopcji, co wskazuje, że Uruchamianie z ISO jest realizowane jako różne opcje w różnych dystrybucjach.

(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
}

Ta strona zawiera kilka przykładów innych dystrybucji bootujących z Grub2.


Uruchamianie openSUSE 13.1 Na żywo z ISO

Oto jedyne rozwiązanie, które zadziałało (wszystkie inne dały mi błąd Nie udało mi się znaleźć identyfikatora MBR i przestały działać ). W tym przykładzie iso jest umieszczane na trzeciej partycji pierwszego dysku w katalogu /home/username/.

menuentry „openSUSE_13.1_GNOME_Live” {
  load_video
  insmod gzio
  insmod part_msdos
  insmod ext2
  ustaw root = '(hd0, msdos3)'
  set isofrom_device = '/ dev / sda3'
  set isofrom_system = '/ home / nazwa użytkownika / openSUSE-13.1-GNOME-Live-i686.iso'
  ustaw moduł ładujący = „/ boot / i386 / loader”
  loopback loop $ isofrom_system
  linux (loop) $ loader / linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro ciche powitanie $ vt_handoff preloadlog = / dev / null showopts
  initrd (loop) $ loader / initrd
}

Źródło jest komentarzem janeppo .


Fedora 17 Gnome Live ISO

Oto wpis grub.cfg w menu rozruchu dla Fedory 17. ISO jest umieszczone na trzeciej partycji pierwszego dysku. Zmienia się także nazwa pliku.

menu „Fedora Live” {
    loopback loop (hd0,3) /fedora.iso
    linux (pętla) / EFI / BOOT / vmlinuz0 root = live: /fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0 rd.md = 0
    initrd (hd0,3) / initrd-fromiso
}

Ostatnia uwaga: myślę, że ta odpowiedź stanowi przykład. Nie należy go bardziej szczegółowo omawiać z przykładami.


Próbowałem powyżej wpisu dla Fedory 15, ale to nie działało. Jakieś pomysły?
Rahul Virpara

mój wpis wygląda następująco pastebin.com/1ksBVu21
Rahul Virpara

3

Oto, które pliki ISO wymyśliłem do uruchomienia grub2.

Udało mi się uruchomić następujące ISO

  • Ubuntu Precise Pangolin 12.04 ISO
  • SystemRescueCd
  • Narzędzie do wykrywania sprzętu rozruchowego
  • Darmowy dos
  • Płytka rozruchowa Hiren
  • Ultimate Boot CD

Odkryłem, że jeśli chcesz uruchomić inne pliki ISO, takie jak Hiren's Boot CD itp., Możesz użyć MEMDISKnarzędzia jako jądra.

Gdzie zdobyć MEMDISK?

Pobierz Syslinux stąd . Przenieś go na pulpit.

Jak to działa?

cd ~/Desktop/
tar xvif syslinux-4.05.tar.xz 
cd syslinux-4.05/memdisk/
sudo mkdir /customboot
sudo mv memdisk /customboot/
cd /customboot/
sudo mv memdisk memdisk4.05
gksudo gedit /etc/grub.d/40_custom 

Następnie wklej poniżej wpisów w gedit. Musisz się zmienić set isofile="/path/to/iso-file.iso".

Potem problem update-grub. Uruchom ponownie i sprawdź.

Moje wpisy w 40_custompliku.

menuentry "Ubuntu Natty Narwhal 11.04 ISO" {
    set isofile="/OS/ubuntu-11.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu Precise Pangolin 12.04 ISO" {
    set isofile="/OS/ubuntu-12.04-desktop-i386.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
    initrd (loop)/casper/initrd.lz
}
menuentry "SystemRescueCd" {
    set isofile="/OS/systemrescuecd-x86-2.7.0.iso"
    loopback loop (hd0,6)$isofile
    linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
    initrd (loop)/isolinux/initram.igz
}
menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" {
    linux16 /customboot/memdisk4.05 iso
    initrd16 /customboot/hdt.iso
}
menuentry "Free Dos from iso using memdisk 4.05" {
    set isofile="/OS/fdbasecd.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Hiren's boot CD using memdisk 4.05" {
    set isofile="/OS/Hiren's.BootCD.10.1.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}
menuentry "Ultimate Boot CD iso using memdisk 4.05" {
    set isofile="/OS/ubcd511.iso"
    linux16 /customboot/memdisk4.05 iso
    initrd16 (hd0,6)$isofile
}

Wszystkie ISO są włączone sda6/OSi MEMDISKprzechowywane na partycji, na której zainstalowano Ubuntu (w katalogu głównym) i zmieniono jego nazwę, aby memdisk4.05ścieżka do niego/customboot/memdisk4.05

Uwaga: fedora nie działa z drugą podaną odpowiedzią. Wciąż próbuję uruchomić Fedorę :(.


Uwaga: podczas ładowania plików ISO za pomocą memdisk i grub initrd16, plik ISO musi być mniejszy niż 462 MB. Pokrewne komunikaty o błędach: grub: błąd: nie można znaleźć odpowiedniego celu pamięci , memdisk: MEMDISK: Nie określono obrazu ramdysku . Aby uzyskać więcej informacji, zobacz tutaj i tutaj .
gregn3

2

niestety żadne z tych zaleceń mi nie pomogło. Więc znalazłem sposób i chciałbym się z tobą podzielić. Aby na przykład uruchomić centos, potrzebujesz: Umieść obraz ISO w katalogu. jeśli katalog główny został zamontowany na / dev / sda1, to utwórz katalog / iso i umieść tam iso. przejdź do konsoli grub (gdy pojawi się menu grub, naciśnij „c”.)

Wybierz odpowiednie urządzenie - hd0 oznacza sda. Musisz wybrać ten, w którym znajduje się ISO.

loopback loop (hd0,msdos1)/iso/Redhat.iso 
linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso 
initrd (loop)/isolinux/initrd.img 
boot

I uruchom go!


1

To, o co pytasz, jest tutaj nie na temat, ponieważ wymaga znajomości tych innych systemów, aby móc skonfigurować wpisy gruba, aby je poprawnie uruchomić. Tak to mozliwe.

Jednak ... Znajdziesz Multi System kompetentnym narzędziem do posiadania bardzo wielu różnych ISO dystrybucji na jednym dużym dysku USB. Uważam, że to działa bardzo dobrze, ale będziesz musiał zainstalować go z PPA:

http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/

Używam go, aby móc mieć Gparted LiveUSB i inne narzędzia, a także Ubuntu na jednym pendrive dla InstallFests. Jako bonus umożliwia niestandardowy ekran powitalny dla menu, które ustawiłem na logo australijskiego zespołu LoCo.

Chris

Jak już wspomniano, Multisystem używa Grub2 do robienia tego, co chcesz. Ponieważ ten wątek nie na temat jest dozwolony lub przynajmniej tolerowany, oto wpis Fedory z mojego Multisystem Grub2:

 menuentry "Fedora-15-i686-Live-Desktop.iso" {
 linux /fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
 initrd /fedora1/isolinux/initrd0.img
 }

Zauważ, że nie możesz uruchomić bezpośrednio z ISO, ponieważ nie jest on obsługiwany, tak jak w przypadku dystrybucji opartych na Debianie. Będziesz potrzebował rozpakowanych plików z ISO dostępnych na twardym dysku w następujący sposób:

chris@chris-office:/media/RED8/fedora1$ ls -l
total 563972
drwx------ 2 chris chris      4096 Feb 11  2011 isolinux
-rw-r--r-- 1 chris chris     43503 May 14  2011 livecd-iso-to-disk
-r--r--r-- 1 chris chris      8192 May 14  2011 osmin.img
-r--r--r-- 1 chris chris 577449984 May 14  2011 squashfs.img

Oczywiście będziesz musiał zmienić lokalizację katalogu / fedora / i identyfikator UUID partycji, z której ładujesz Fedorę. Prawdopodobnie powinieneś także zmienić tryb montowania z ro na rw, a także wszystko inne odpowiednie, na przykład uprawnienia do squashfs.

Prawdopodobnie możesz także skonfigurować wirtualny dysk trwałości, chociaż nie widzę powodu, dla którego nie mógłbyś zamontować normalnej partycji / home. Ponownie mogę jedynie zasugerować, aby zainstalować Multidisk i sam wykonać konfigurację, aby dowiedzieć się, jak to zrobić.

Chris


pytanie brzmi: jak utworzyć wpis w istniejącym, a GRUB2nie jak zrobić bootowalny pendrive lub zewnętrzny dysk twardy mający różne dystrybucje. BTW wymaga lepszej znajomości GRUB2niż inne dystrybucje, więc w rzeczywistości jest to pytanie związane z GRUB(ponieważ niektóre dystrybucje nadal używają GRUB) lub GRUB2.
Rahul Virpara

1
Powiedziałbym, że tworzenie wpisów grub dla dystrybucji takich jak Fedora, Centos i Suse są znacznie bardziej związane z tymi dystrybucjami niż dla grub, a na pewno nie ma nic wspólnego z Ubuntu.
producent 4

1
@virpara: Nie określiłeś również, że uruchamiasz ISO z dysku twardego - najbardziej uzasadnionym powodem, dla którego chcesz uruchomić różne LiveISO, jest posiadanie urządzenia do instalacji wszystkiego. Nie jesteśmy czytelnikami ani ekspertami od innych dystrybucji. Wreszcie, jeśli faktycznie zainstalujesz i użyjesz MultiSystem do utworzenia pendrive'a w ten sposób, pokaże ci, jak to zrobić - używa grub2, aby osiągnąć pożądane rezultaty.
fabricator4

1

Wydaje się, że aby osiągnąć ten cel, 13.04 wymaga innej składni. Czy ktoś z powodzeniem uruchomił ubuntu-13.04-desktop-amd64.iso z dysku fizycznego i chciałby udostępnić składnię grub?

EDYCJA: Odpowiedziałem na własne pytanie. Musisz zmienić nazwę vmlinuz na mvlinuz.efi i to działa.

menuentry "Ubuntu-13.04-desktop-amd64.iso" --class ubuntu {
set isofile="/archives/ubuntu-13.04-desktop-amd64.iso"
loopback loop (hd1,6)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt --
initrd (loop)/casper/initrd.lz
}


0

Spróbuj użyć Multisystem, zainstaluj żądane płyty LiveCD, a następnie skopiuj pliki do / i scalając plik grub.cfgs! (Właściwie jestem ciekawy, czy to zadziała!).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.