Bagaimana cara mem-boot dari gambar ISO langsung non-Ubuntu seperti Fedora atau CentOS?

26

Saya menemukan bahwa itu dapat dilakukan dengan loopbacksebagai berikut

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
}

Tetapi hanya berfungsi dengan ubuntu atau turunannya. Bagaimana seharusnya ditulis jika saya ingin mem-boot gambar live lainnya seperti fedora, cent, opensuse dll?

Sunting: Saya menemukan beberapa entri lain tetapi semuanya mungkin berdasarkan debian.

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
}

Sunting2: Bagaimana cara chainload grubdan syslinuxdari grub2?

Sunting3: Saya ingin mem-boot gambar langsung lainnya tanpa perangkat yang dapat dilepas dan menggunakannya grub2sehingga perlu entri menu khusus untuk grub2.

Rahul Virpara
sumber
1
Ini bukan topik, masih unix dan pertukaran stack linux lebih baik unix.stackexchange.com
Tachyons
@Rinzwind bagaimana ??
Tachyon
2
Pertanyaannya adalah tentang fedora, centOS dan opensuse. Bukan tentang Ubuntu. @abcd
Rinzwind
2
Omong-omong: Fedora tidak mampu melakukan ini. CentOS pada dasarnya adalah Fedora. dracutmemiliki permintaan fitur yang menentangnya dan perlu ditambal untuk ini. Anda dapat menemukan tambalan ini di bugzilla.redhat.com
Rinzwind
2
Kemungkinan duplikat? askubuntu.com/questions/121212/…
fossfreedom

Jawaban:

19

Booting dari iso adalah fitur yang harus didukung oleh distro, dan iso-scan/filename=opsi tidak akan berfungsi di Fedora atau yang lain. Mereka mungkin memiliki opsi kernel lain untuk fitur ini atau fitur ini mungkin tidak didukung sama sekali.

Saya telah menemukan metode untuk mem-boot DVD Fedora 16, berikut ini.

Booting Fedora 15 iso DVD dari grub

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

Ini mengasumsikan file iso Anda adalah di root partisi kedua dari hard disk internal.

sumber: halaman ini

Anda dapat mencari distribusi lain di google, karena ini bukan fitur distro-independen.

Catatan 1: Ini juga bekerja dengan Fedora 16, saya baru saja mengujinya.
Catatan 2: Tampaknya metode ini berfungsi saat Anda meletakkan file iso di partisi gemuk atau ext4.


Booting grml iso kecil dari grub2

Grml juga bisa di-boot dari grub2. Perhatikan bahwa ia menggunakan findisoopsi alih-alih iso-scan/filenameopsi, yang menunjukkan bahwa Booting dari iso diimplementasikan sebagai opsi berbeda di distribusi yang berbeda.

(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 = matikan lang = us vga = 791 boot = nominasi langsung noeject noprompt -
  initrd (loop) /boot/grmlsmall/initrd.gz
}

Halaman ini memiliki beberapa contoh boot distro lain dari Grub2.


Booting openSUSE 13.1 Langsung dari iso

Ini adalah satu-satunya solusi yang berfungsi (semua yang lain memberi saya Gagal menemukan pengidentifikasi MBR dan berhenti). Dalam contoh ini iso ditempatkan di partisi ketiga disk pertama dalam direktori /home/username/.

menuentry "openSUSE_13.1_GNOME_Live" {
  memuat_video
  insmod gzio
  insmod part_msdos
  insmod ext2
  set root = '(hd0, msdos3)'
  set isofrom_device = '/ dev / sda3'
  set isofrom_system = '/ home / username / openSUSE-13.1-GNOME-Live-i686.iso'
  set loader = '/ 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 splash tenang $ vt_handoff preloadlog = / dev / null showopts
  initrd (loop) $ loader / initrd
}

Sumber adalah komentar janeppo .


Fedora 17 Gnome Live Iso

Inilah entri menu boot grub.cfg untuk Fedora 17. iso ditempatkan di partisi ketiga disk pertama. Juga nama file diubah.

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

Catatan Terakhir: Saya pikir jawaban ini berfungsi sebagai contoh. Seharusnya tidak dielaborasi lebih lanjut dengan contoh-contoh.

Anwar
sumber
Saya mencoba entri di atas untuk fedora 15 tetapi tidak berhasil. Tebak?
Rahul Virpara
entri saya terlihat seperti pastebin.com/1ksBVu21
Rahul Virpara
3

Ini adalah file iso yang saya temukan untuk di-boot menggunakan grub2.

Saya telah berhasil mem-boot ISO berikut

  • Ubuntu Precise Pangolin 12,04 ISO
  • SystemRescueCd
  • Alat Deteksi Booting Perangkat Keras
  • Dos gratis
  • CD booting Hiren
  • Ultimate Boot CD

Saya menemukan bahwa jika Anda ingin mem-boot ISO lain seperti Hiren's Boot CD, dll. Anda dapat menggunakan MEMDISKutilitas sebagai kernel.

Di mana Mendapatkan MEMDISK?

Unduh Syslinux dari sini . Pindahkan ke Desktop.

Cara membuatnya bekerja ?

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 

Kemudian rekatkan entri di bawah ini di gedit. Anda harus berubah set isofile="/path/to/iso-file.iso".

Lalu masalah update-grub. Mulai ulang dan periksa.

Entri saya dalam 40_customfile.

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
}

Semua ISO disimpan sda6/OSdan MEMDISKdisimpan di partisi tempat ubuntu diinstal (di root) dan diganti namanya memdisk4.05jadi path ke sana adalah/customboot/memdisk4.05

Catatan: fedora tidak bekerja dengan jawaban lain yang diberikan. Masih mencoba untuk mem-boot fedora :(.

Rahul Virpara
sumber
Catatan, saat memuat file ISO dengan memdisk dan grub initrd16, file ISO harus lebih kecil dari 462 MB. Pesan kesalahan terkait: grub: error: tidak dapat menemukan target memori yang sesuai , memdisk: MEMDISK: Tidak ada gambar ramdisk yang ditentukan . Untuk lebih jelasnya lihat di sini dan di sini .
gregn3
2

sayangnya tidak satupun dari rekomendasi ini tidak membantu saya. Jadi saya telah menemukan jalannya dan ingin berbagi dengan Anda. Untuk mem-boot centos misalnya, Anda perlu: Masukkan gambar iso di direktori. jika dir root Anda terpasang pada / dev / sda1, lalu buat dir / iso dan masukkan iso di sana. buka konsol grub (ketika menu grub muncul tekan 'c'.)

Pilih perangkat yang sesuai - hd0 berarti sda. Anda harus memilih satu di mana Anda berada.

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

Dan boot!

Дмитрий Бод
sumber
1

Apa yang Anda tanyakan adalah off topic di sini, karena memerlukan pengetahuan tentang sistem-sistem lain untuk dapat mengatur entri grub untuk mem-bootnya dengan benar. Ya itu mungkin.

Namun ... Anda akan menemukan Multi System alat yang kompeten untuk memiliki sangat banyak distro ISO berbeda pada satu drive USB besar. Saya merasa ini bekerja dengan sangat baik tetapi Anda harus menginstalnya dari PPA:

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

Saya menggunakannya agar saya dapat memiliki Livepart Gparted dan alat-alat lainnya, serta Ubuntu pada satu flashdisk untuk InstallFests. Sebagai bonus, ini memungkinkan layar splash khusus untuk menu, yang telah saya atur di logo untuk tim LoCo Australia.

Chris

Seperti yang dinyatakan, Multisystem menggunakan Grub2 untuk melakukan apa yang Anda inginkan. Karena utas di luar topik ini diizinkan, atau setidaknya ditoleransi inilah entri Fedora dari Multisystem Grub2 saya:

 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
 }

Perhatikan bahwa Anda tidak dapat mem-boot langsung dari ISO karena tidak didukung seperti pada distro berbasis Debian. Anda akan memerlukan file yang belum dibongkar dari ISO yang tersedia di hard drive sebagai berikut:

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

Anda tentu saja perlu mengubah lokasi direktori / fedora / dan UUID dari partisi tempat Anda mem-boot Fedora. Anda mungkin juga harus mengubah mode pemasangan dari ro ke rw, serta hal lain yang sesuai, seperti izin pada squashfs.

Anda juga mungkin dapat mengatur disk kegigihan virtual, Meskipun saya tidak melihat alasan mengapa Anda tidak dapat memasang partisi normal / home Anda. Sekali lagi, saya hanya dapat menyarankan agar Anda menginstal Multidisk dan melakukan konfigurasi sendiri untuk mempelajari cara melakukannya.

Chris

fabricator4
sumber
pertanyaannya adalah bagaimana membuat entri yang sudah ada GRUB2bukan bagaimana membuat flashdisk bootable atau hard disk eksternal memiliki distro yang berbeda. BTW itu membutuhkan pengetahuan yang lebih baik GRUB2daripada distro lain sehingga sebenarnya pertanyaan terkait GRUB(karena beberapa distro masih menggunakan GRUB) atau GRUB2.
Rahul Virpara
1
Saya akan mengatakan bahwa membuat entri grub untuk distro seperti Fedora, Centos dan Suse jauh lebih terkait dengan distro daripada distub, dan tentu saja tidak ada hubungannya dengan Ubuntu.
fabricator4
1
@virpara: Anda juga tidak menentukan bahwa Anda mem-boot ISO dari hard drive - alasan paling masuk akal untuk ingin mem-boot berbagai LiveISO adalah memiliki perangkat instal semuanya. Kami bukan pembaca pikiran, atau ahli di distro lain. Terakhir, jika Anda benar-benar menginstal dan menggunakan MultiSystem untuk membuat pendrive dengan cara ini, ia akan menunjukkan cara melakukannya - ia menggunakan grub2 untuk mencapai hasil yang Anda inginkan.
fabricator4
1

Sepertinya 13,04 memerlukan sintaks yang berbeda untuk mencapai ini. Adakah yang berhasil mem-boot ubuntu-13.04-desktop-amd64.iso dari disk fisik dan ingin membagikan sintaks grub?

EDIT: Menjawab pertanyaan saya sendiri. Perlu mengganti nama vmlinuz ke mvlinuz.efi dan itu berfungsi.

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
}
pengguna130567
sumber
0

Coba gunakan Multisystem, instal liveCD yang Anda inginkan, dan kemudian salin file ke / Anda dan gabungkan grub.cfgs! (Saya sebenarnya penasaran untuk melihat apakah itu akan berhasil!).

WindowsEscapist
sumber