Как загрузиться из файла.iso в GRUB2?
Есть ли способ сделать это?
6 ответов
Это может быть намного проще, чем впечатление, которое вы получаете от всех подробных объяснений в Интернете. Я только что сделал следующее на Ubuntu 12.04, чтобы загрузить FreeDOS .iso для обновления прошивки.
- Установите grub-imageboot
- скопируйте ваши файлы.iso в / boot / images /
- запустить update-grub2
Или скопируйте / вставьте это:
sudo -s
apt-get install grub-imageboot
mkdir /boot/images/
cp $YOUR_ISO_FILE.iso /boot/images/
update-grub2
Вот и все.
Иногда вам может потребоваться еще 2 шага, прежде чем запускать update-grub2:
Если вы никогда не делали этого раньше, вам нужно отредактировать /etc/default/grub, чтобы при загрузке вы увидели меню grub:
## To show the menu, disable the hidden_timeout, and set a timeout
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10
Для некоторых изображений.iso вам может потребоваться добавить эту опцию в /etc/default/grub-imageboot: (она мне понадобилась для моей FreeDOS .iso)
ISOOPTS="iso raw"
Если вы редактировали один из этих конфигов. файлы, вам нужно запустить update-grub2
снова.
Обновление: вот результирующий пункт меню, заданный "dma_k"
menuentry "Bootable ISO Image: SV100S2_64_128_120229" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 6ca082d0-63d0-48c3-9e5f-2ce5d7a74fe4
linux16 /boot/memdisk iso raw
initrd16 /boot/images/SV100S2_64_128_120229.iso
}
Это было для образа FreeDOS с некоторым обновлением прошивки или тому подобным.
Я предполагаю, что вы хотите добавить запись.iso в меню GRUB и загрузить ее?
Я нашел эту информацию на форумах Ubuntu
Я столкнулся с этим, потому что устал от записи множества загрузочных образов ISO 9660 и поэтому хотел использовать GRUB 2 для загрузки FreeDOS для обновления прошивки / микрокода жестких дисков Seagate. В качестве дополнения или альтернативы ответу mivk (используя memdisk
syslinux), вот что я сделал, чтобы использовать возможности GRUB 2:
- Установите пакет syslinux-common (для использования
memdisk
внутри; grub-imageboot - это несущественный пакет для перехвата) - Нажмите клавишу "c" (мнемоника для команды), чтобы активировать командную строку встроенной мини-оболочки GRUB 2 (или, точнее, минимальной BASH-подобной оболочки)
- Выполните 3 строки команд в мини-оболочке GRUB 2:
linux16 (hd0,gpt2)/usr/lib/syslinux/memdisk iso raw
initrd16 (hd0,gpt3)/myUserAccount/download/Barracuda-ALL-GRCC4H.iso
boot
# where Barracuda-ALL-GRCC4H.iso is a FreeDOS-based ISO 9660 image, and
# the mathematical 2-tuples or ordered pairs, (hd0,gpt2) and (hd0,gpt3),
# are GRUB 2's respective device notations for my rootfs partition
# (e.g., /dev/sda2) and home partition (e.g., /dev/sda3).
# NOTE: This procedure also applies to Seagate's SeaTools (based on
# FreeDOS as well); just substitute the file SeaToolsDOS223ALL.iso
# for Barracuda-ALL-GRCC4H.iso.
Информация о memdisk
syslinux находится по адресу http://www.syslinux.org/wiki/index.php/MEMDISK
Управляя командами непосредственно в мини-оболочке, эта процедура является более гибкой и простой, чем большинство из вышеперечисленных методов, поскольку вам не нужно настраивать и обновлять эти конфигурации GRUB 2 каждый раз, когда вы хотите попробовать другой дистрибутив Linux или BSD живой CD.
В настоящее время именно эти 4 строки команд можно использовать в качестве общего шаблона в мини-оболочке GRUB 2, т. Е. Последовательность loopback-linux-initrd-boot плюс некоторые аргументы, передаваемые данному ядру, например чтобы загрузить как можно больше популярных образов ISO-образов Linux (в данном случае это 3 аргумента командной строки ядра для компакт-диска System Rescue):
loopback lb (hd0,gpt3)/myUserAccount/download/systemrescuecd-x86-3.7.0.iso
linux (lb)/isolinux/rescue64 isoloop=systemrescuecd-x86-3.7.0.iso setkmap=us docache
initrd (lb)/isolinux/initram.igz
boot
NB loopback
Часть общего шаблона не является, строго говоря, обязательной для Linux, когда вы намереваетесь установить дистрибутив Linux, такой как производная Debian, без потери оптического диска.
http://ansi.interblc.com/2010/02/06/howto-boot-iso-images-via-grub2-with-ubuntu/
- Изменить на
/etc/grub.d
реж.- Добавьте ваши ISO образы, начиная с
50
Вот. Например, моя запись для обычного ISO-образа Ubuntu (50_ubuntu) выглядит так:
echo "Adding $(egrep menu[e]ntry $0 | cut -d'"' -f2)" >&2
cat << EOF
menuentry "Ubuntu 10.04 Daily Build" {
loopback loop (hd0,3)/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ansi/software_and_config/ISOs/ubuntu/lucid-desktop-i386.iso file=(loop)/preseed/ubuntu.seed quiet splash bootkbd=sg -- initrd (loop)/casper/initrd.lz
}Мои ISO-файлы хранятся в sda3 в /ansi/software_and_config/ISOs/ubuntu/. Чтобы изменить его для ваших нужд, нужно изменить 3 элемента. Строка loopback содержит ваш жесткий диск в стиле grub (hdx,y x=0->sda x=1->sdb aso) и путь. Третий элемент, который нужно изменить, находится в строке linux. Сохраните этот файл как "50_ubuntu" в "/etc/grub.d", сделайте его исполняемым с "chmod a+x 50_ubuntu" и активируйте изменения с помощью "ubdate-grub". После перезагрузки вы сможете активировать меню grub с помощью клавиши Shift и выбрать новую запись.
(Примечание: если кто-то может использовать правильное форматирование [CODE], это было бы здорово. Кажется, я не могу заставить его работать должным образом. --Tyblu)
Как сказал Марк Руни, вы можете найти отличное руководство на форумах Ubuntu.
Это позволит вам загружаться из файла ISO, но только если ISO поддерживает его. (Все последние выпуски Ubuntu должны, как и ряд других дистрибутивов).
Если вы планируете установку из live ISO, вы должны поместить этот файл в другой раздел, нежели тот, в который вы будете устанавливать (так как вы не можете записать в тот раздел, с которого запускаете). Скорее всего, установщик будет жаловаться в любом случае. Что вам нужно сделать, это вручную редактировать /etc/mtab
и удалите запись, которая соответствует разделу с файлом ISO.
Для загрузки из ISO-файла на USB-диск / флешку, вероятно, самый удобный способ - это MultiSystem: http://liveusb.info/dotclear/index.php?pages/install
Вы просто перетаскиваете мышью, чтобы большинство ISO-образов были включены в загрузочное меню вашего LiveUSB диска / флешки.