Как загрузиться из не-Ubuntu живых образов ISO, таких как Fedora или CentOS?

22

Я обнаружил, что это можно сделать с помощью loopback следующим образом

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
}

Но он работает только с ubuntu или его производными. Как это должно быть написано, если я хочу загружать другие живые изображения, такие как fedora, cent, opensuse и т. Д.?

Изменить: я нашел несколько других записей, но все они, вероятно, основаны на 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
}

Edit2: Как загружать grub и syslinux из grub2 ?

Edit3: Я хочу загружать другие живые изображения без каких-либо съемных устройств и использовать grub2 , поэтому нужны записи меню, характерные для grub2 .

    
задан virpara 25.05.2012 в 06:19
источник

7 ответов

18

Загрузка из iso - это функция, которая должна поддерживаться дистрибутивом, а опция iso-scan/filename= не будет работать в Fedora или других. У них могут быть другие опции ядра для этой функции, или функция может вообще не поддерживаться.

Я нашел способ загрузки Fedora 16 DVD, ниже.

Загрузка Fedora 15 DVD iso из 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
}

Предполагается, что ваш файл iso находится в корне второго раздела внутреннего жесткого диска.

источник: эта страница

Вы можете искать другое распространение в google, так как оно не является независимой от дистрибутива функцией.

Примечание 1: Он также работал с Fedora 16, я только что протестировал его.
Примечание 2: Кажется, что этот метод работал, когда вы помещаете iso файл в жирном или ext4 разделе.

Загрузка grml small iso из grub2

Grml также можно загрузить с grub2. Обратите внимание, что вместо опции findiso используется опция iso-scan/filename , что указывает на то, что загрузка из iso реализована как разные параметры в разных дистрибутивах.

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

Эта страница содержит несколько примеров загрузки других дистрибутивов из Grub2.

Загрузка openSUSE 13.1 Live из iso

Вот единственное решение, которое сработало (все остальные дали мне Не удалось найти MBR-идентификатор и остановились). В этом примере iso помещается на третий раздел первого диска в каталоге /home/username/ .

menuentry "openSUSE_13.1_GNOME_Live" {
  load_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 quiet splash $vt_handoff preloadlog=/dev/null showopts
  initrd  (loop)$loader/initrd
}

Источник комментарий janeppo .

Fedora 17 Gnome Live Iso

Вот загрузочное меню grub.cfg для Fedora 17. iso помещается в третий раздел первого диска. Также изменяется имя файла.

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
}

Последнее примечание: Я считаю, что этот ответ служит примером. Это не следует более подробно описывать с примерами.

    
ответ дан Anwar 27.05.2012 в 11:26
3

Вот какие файлы iso, которые я решил загрузить, используя grub2 .

Я успешно загрузил следующие ISO

  • Ubuntu Precise Pangolin 12.04 ISO
  • SystemRescueCd
  • Инструмент обнаружения загрузочного оборудования
  • Free Dos
  • Загрузочный компакт-диск Hiren
  • Конечный загрузочный компакт-диск

Я обнаружил, что если вы хотите загружать другие ISO, такие как загрузочный компакт-диск Hiren, и т. д., вы можете использовать утилиту MEMDISK в качестве ядра.

Где взять MEMDISK?

Загрузите Syslinux из здесь . Переместите его на рабочий стол.

Как заставить его работать?

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 

Затем вставьте ниже записи в gedit. Вам нужно будет изменить set isofile="/path/to/iso-file.iso" .

Затем выпустите update-grub . Перезагрузитесь и проверьте.

Мои записи в файле 40_custom .

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
}

Все ISO хранятся на sda6/OS , а MEMDISK хранится на разделе, где ubuntu установлен (в корневом каталоге) и переименован в memdisk4.05 , поэтому путь к нему равен /customboot/memdisk4.05

Примечание: Fedora не работает с другим ответом. Все еще пытается загрузить Fedora :(.

    
ответ дан virpara 09.06.2012 в 16:43
1

Что вы спрашиваете, здесь нет темы, так как для этого требуется знание этих других систем, чтобы они могли настраивать записи grub для правильной загрузки. Да, это возможно.

Однако ... Вы найдете Multi System компетентным инструментом для того, чтобы на одном большом USB-накопителе было очень много разных ISO-дисков. Я считаю, что это работает очень хорошо, но вам нужно будет установить его из PPA:

Ссылка

Я использую его, чтобы у меня были Gparted LiveUSB и другие инструменты, а также Ubuntu на одном pendrive для InstallFests. В качестве бонуса он позволяет настраивать экран заставки для меню, которое я установил для логотипа для австралийской команды LoCo.

Крис

Как указано, Multisystem использует Grub2 для выполнения того, что вы хотите. Поскольку этот поток вне темы разрешен или, по крайней мере, переносится, вот запись Fedora из моего 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
 }

Обратите внимание, что вы не можете загрузиться непосредственно из ISO, поскольку он не поддерживается, как это происходит с дистрибутивами на основе Debian. Вам понадобятся распакованные файлы из ISO, доступные на жестком диске, следующим образом:

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

Конечно, вам необходимо будет изменить расположение каталога / fedora / и UUID раздела, на котором вы загружаете Fedora. Вероятно, вы также должны изменить режим монтирования от ro до rw, а также все что угодно, например разрешения на squashfs.

Возможно, вы также можете настроить виртуальный жесткий диск, хотя я не вижу причин, по которым вы не могли бы установить свой обычный / домашний раздел. Опять же, я могу только предложить установить Multidisk и самостоятельно настроить его, чтобы узнать, как это сделать.

Крис

    
ответ дан fabricator4 27.05.2012 в 11:13
1

Похоже, что для достижения этого для 13.04 требуется другой синтаксис. Кто-нибудь успешно загрузил ubuntu-13.04-desktop-amd64.iso с физического диска и хотел бы поделиться синтаксисом grub?

EDIT: Ответил мой собственный вопрос. Вам нужно переименовать vmlinuz в mvlinuz.efi, и он работает.

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
}
    
ответ дан user130567 27.04.2013 в 15:03
0

Попробуйте использовать Multisystem, установив нужные вам liveCD, а затем скопировав файлы и / или слияние grub.cfgs! (Мне действительно интересно узнать, будет ли это работать!).

    
ответ дан WindowsEscapist 30.05.2012 в 00:23
0

Я нахожу использование loopback grub2 бесценным для тестирования новых isos без необходимости использования USB-накопителя или записи на CD. Есть ошибки, связанные с Fedora, чтобы сделать что-то подобное. Отслеживание текущего состояния занимает немного времени.

ответ дан grantbow 15.05.2013 в 23:58
0

К сожалению, ни одна из этих рекомендаций мне не помогла. Поэтому я нашел способ и хотел бы поделиться с вами. Например, для загрузки centos вам необходимо: Поместите изображение iso в каталог. если ваш корневой каталог установлен на / dev / sda1, тогда создайте dir / iso и поставьте iso. перейдите в консоль grub (при отображении меню grub нажмите «c».)

Выберите подходящее устройство - hd0 означает sda. Вам нужно выбрать тот, где вы находитесь.

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

И загрузи его!     

ответ дан Дмитрий Бод 23.08.2017 в 21:48