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

26

Я обнаружил, что это можно сделать 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.

Рахул Вирпара
источник
1
Это не по теме, до сих пор Unix и обмен стека Linux лучше unix.stackexchange.com
Тахионы
@ Rinzwind как ??
Тахион
2
Вопрос о fedora, centOS и opensuse. Не об Убунту. @abcd
Rinzwind
2
Кстати, Fedora на это не способна. CentOS - это в основном Fedora. dracutимеет запрос на функцию против него, и это должно быть исправлено для этого. Вы можете найти этот патч на bugzilla.redhat.com
Rinzwind
2
Возможный дубликат? askubuntu.com/questions/121212/…
fossfreedom

Ответы:

19

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

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

Загрузка Fedora 15 DVD iso из grub

menuentry "Fedora 15 (DVD)" {
 возвратный шлейф
 insmod iso9660
 set isofile = "/ Fedora-15-x86_64-DVD.iso"
 loopback loop (hd0,2) $ isofile
 linux (loop) / isolinux / vmlinuz rootfstype = автоматический root = live: UUID =: $ isofile ro quiet
 initrd (цикл) /isolinux/initrd.img
}

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

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

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

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


Загрузка grml маленький 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 = отключение питания lang = us vga = 791 boot = live Nome noeject noprompt -
  initrd (цикл) /boot/grmlsmall/initrd.gz
}

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


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

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

пункт меню "openSUSE_13.1_GNOME_Live" {
  load_video
  Инсмод Гцио
  insmod part_msdos
  insmod ext2
  установить 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 (цикл) $ loader / linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro тихий всплеск $ vt_handoff preloadlog = / dev / null showopts
  initrd (цикл) $ loader / initrd
}

Источник - комментарий Джанеппо .


Fedora 17 Gnome Live Iso

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

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

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

Анвар
источник
Я попробовал выше запись для Fedora 15, но это не сработало. Есть предположения?
Рахул Вирпара
моя запись выглядит так: pastebin.com/1ksBVu21
Rahul Virpara
3

Вот какие iso файлы я выяснил для загрузки с помощью grub2.

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

  • Ubuntu Precise Pangolin 12.04 ISO
  • SystemRescueCd
  • Средство обнаружения загрузочного оборудования
  • Бесплатные Dos
  • Загрузочный CD Hiren
  • Ultimate Boot CD

Я обнаружил, что если вы хотите загрузить другие ISO-образы, такие как Hiren's Boot CD и т. Д., Вы можете использовать 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 :(.

Рахул Вирпара
источник
Обратите внимание, что при загрузке файлов ISO с помощью memdisk и grub размер initrd16файла ISO должен быть меньше 462 МБ. Связанные сообщения об ошибках: grub: error: не удалось найти подходящую цель памяти , memdisk: MEMDISK: Не указан образ виртуального диска . Для более подробной информации смотрите здесь и здесь .
gregn3
2

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

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

И загрузи это!

Дмитрий Бод
источник
1

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

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

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

Я использую его для того, чтобы у меня могли быть установлены 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
источник
Вопрос в том, как создать запись в существующем, а GRUB2не в том, как сделать загрузочный Pendrive или внешний жесткий диск с разными дистрибутивами. Кстати, это требует лучшего знания, GRUB2чем другие дистрибутивы, так что на самом деле это вопрос, связанный с GRUB(потому что некоторые дистрибутивы все еще используют GRUB) или GRUB2.
Рахул Вирпара
1
Я бы сказал, что создание записей grub для таких дистрибутивов, как Fedora, Centos и Suse, гораздо больше связано с этими дистрибутивами, чем для grub, и, конечно, никак не связано с Ubuntu.
fabricator4
1
@virpara: Вы также не указали, что загружаете ISO-образы с жесткого диска - наиболее разумная причина для того, чтобы загружать различные LiveISO, - это иметь установочное устройство, которое все делает. Мы не читатели ума или эксперты по другим дистрибутивам. Наконец, если вы на самом деле устанавливаете и используете MultiSystem для создания pendrive таким способом, он покажет вам, как это сделать - он использует grub2 для достижения желаемых результатов.
fabricator4
1

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

РЕДАКТИРОВАТЬ: ответил на мой собственный вопрос. Нужно переименовать 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
источник
1

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

grantbow
источник
0

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

WindowsEscapist
источник