Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 8

Как загрузиться с ISO-образа на жестком диске используя загрузчик GRUB2

Есть не так уж много вариантов использования нескольких дистрибутивов Linux на одной машине. Вы можете установить их все на жесткий диск, на виртуальную машину или сохранить в виде ISO образа и загружаться в реальном времени.

Первый и второй способы не очень выгодны так как требуют очень много места на жестком диске, с другой стороны, для третьего способа нужно иметь CD диск или USB флешку для хранения образа и загрузчика. Но есть еще один вариант — хранить ISO образ на жестком диске, и загружаться с него по мере надобности. Здесь не нужно столько дискового пространства как при установке, и не нужен внешний носитель информации. В этой статье будет рассмотрена загрузка с iso образа в Grub.

Что нам понадобится

В этой статье мы будем использовать загрузчик Grub, впрочем, он и так используется в большинстве дистрибутивов Linux. Также нам понадобится ISO образ, с которого будем загружаться и вы должны знать какой раздел диска у вас загрузочный. Чтобы узнать выполните:

Загрузочный раздел будет помечен знаком * в колонке Boot. Например, у меня /dev/sda1 или как пишется в Grub hd0,1 — загрузочный.

15174383814_a92a4eda3e_z.jpg

Разделы /dev/sda2 и /dev/sdb3 будут называться в Grub hd0,2 и hd1,3 соответственно. В синтаксисе Grub именование дисков начинается с нуля, а именование разделов с единицы.

Загрузка с iso образа в Grub

Сначала откройте файл /etc/default/grub и закомментируйте там эту строку если она там есть:

GRUB_HIDDEN_TIMEOUT=0

Перед строчкой должна стоять решетка. Сохраните изменения, а затем откройте файл /etc/grub.d/40_custom. Здесь мы добавим пункт для загрузки с образа, синтаксис выглядит следующим образом:

menuentry«Заголовок пункта»{ setisofile=«Адрес ISO файла» loopbackloop Загрузочный раздел в форме записи Grub$isofileДругие параметры }

Например, запись для загрузки Ubuntu будет выглядеть вот так:

menuentry "Ubuntu 14.04 (LTS) Live Desktop amd64" { set isofile="/boot/ubuntu-14.04-desktop-amd64.iso" loopback loop (hd0,1)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash initrd (loop)/casper/initrd.lz }

15608510369_ff50b28f5e_z.jpg

Если вы хотите запускать Gparted:

menuentry "GParted Live amd64" { set isofile="/boot/gparted-live-0.18.0-2-amd64.iso" loopback loop (hd0,1)$isofile loopback loop $isofile linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=${isofile} initrd (loop)/live/initrd.img }

Или даже Fedora Linux:

menuentry "Fedora 20 Live Desktop x86_64" { set isofile="/boot/Fedora-Live-Desktop-x86_64-20-1.iso" loopback loop (hd0,1)$isofile loopback loop $isofile linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-Desktop-x86_64-20-1 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 iso-scan/filename=${isofile} initrd (loop)/isolinux/initrd0.img }

Обратите внимание, что опции будут меняться в зависимости от дистрибутива и расположения в нем загрузочных файлов. Кроме того, важно то где размещен ISO образ, если ваш домашний каталог зашифрован лучше его хранить на загрузочном разделе, как в примерах выше.

Хотите больше? Можно загрузится с ISO для автоматического выполнения каких-либо действий. Например, если вы параноик и хотите иметь возможность быстро стереть свой жесткий диск можно использовать DBAN. Но будьте осторожны так как это сотрет все данные без возможности восстановления.

menuentry "Darik's Boot and Nuke" { set isofile="/boot/dban.iso" loopback loop (hd0,1)$isofile linux (loop)/dban.bzi nuke="dwipe" silent }

Или:

menuentry "Darik's Boot and Nuke" { set isofile="/boot/dban.iso" loopback loop (hd0,1)$isofile linux (loop)/dban.bzi }

Есть еще много вещей, которые можно сделать с помощью загрузки ISO образа в Grub, неважно хотите ли вы очень быструю Live систему или иметь возможность уничтожить все кончиком пальца.

Загрузка windows с iso образа в Grub

Если вам нужна загрузка windows с iso образа grub, то это делается тоже не очень сложно, но немного по другому. Сначала нужно скачать syslinux и извлечь оттуда memdisk в папку /boot/. Это должна быть папка, куда установлены файлы Grub. Дальше добавьте в конфигурационный файл 40-grub.conf такие строки:

menuentry "Boot Windows" { search -f "--set-root /Winblows.iso" insmod memdisk linux16 /boot/memdisk iso initrd16 /Winblows.iso }

Образ Windows должен лежать в корне одного из разделов и называться Windows.iso, дальше команда search автоматически найдет этот раздел и установит его в качестве корня. Потом останется только загрузка windows с iso образа grub.

Завершение настройки Grub

Мы все подготовили, теперь остается обновить конфигурацию загрузчика Grub, чтобы новые пункты добавились в /boot/grub/grub.cfg и появились в меню загрузки:

В других дистрибутивах может понадобится команда:

Затем можно перезагрузиться и посмотреть что получилось:

15795905012_47968033f7_z.jpg

Выводы

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

Источник: http://xmodulo.com/boot-iso-image-from-grub.html

Если у вас есть iso-образ установочного диска Ubuntu и есть уже установленная система, то для того, чтобы загрузить установщик Ubuntu, имеющийся iso даже не обязательно записывать на cd-диск — вы можете загрузиться и произвести установку непосредственно из iso-образа. Для этого вам потребуется установленный загрузчик GRUB2, через который мы и будем загружаться.

Сложность состоит в том, что загрузочное устройство с образом должно быть примонтировано как отдельный носитель. Если жёсткий диск только один, и нет ни cdrom, ни флешки, то решить проблему можно двумя способами, описанными ниже:

  • Использовать утилиту UNetbootin, которая особым образом распакует содержимое образ в корень жёсткого диска и создаст пункты меню Grub.
  • Попытаться создать виртуальный диск в оперативной памяти, с помощью утилиты MemDisk.

Если же есть другой жёсткий диск, то используйте третий способ.

Загрузка утилитой UNetbootin

Утилита UNetbootin (Universal Netboot Installer) имеет простой GUI-интерфейс. Она особым способом распаковывает содержимое образа в корень жёсткого диска и создаёт пункты меню Grub. Установка:

sudo apt-get install unetbootin

Запустить и задать способ установки:

  • По сети, выбрав «Дистрибутив» и его «Версию»
  • С образа диска, выбрав «Образ диска» и путь к образу iso/img.

В пункте «Тип» выбираем «Жёсткий диск». Далее нажать «OK» и перезагрузить компьютер. В меню Grub появятся пункты, из них верхний «UNetbootin» будет загружать заданный образ.

При повторном запуске утилиты она спросит, удалить ли установленный в корне диска образ. (В текущей версии утилита может удалить не всё, оставив в корне диска пустые папки.)

Загрузка с образов Alternate или Desktop

В прежних версиях Ubuntu было разделение установочных дисков на Alternate и Desktop, ниже приведём способы для них.

Загрузка с образа Alternate

В этом разделе описывается загрузка с образа установочного диска Alternate. Для Desktop-диска данный способ не работает.

В нашем примере iso-образ будет называться «ubuntu-9.10-alternate-i386.iso» и лежать в папке ~/iso, которая находится на отдельном home-разделе. Приступим!

Перезагрузите компьютер и дождитесь появления загрузочного меню grub2. Если вместо меню обычно отображается надпись «grub loading…» — нажмите в этот момент Esc. Попав в меню, нажмите C, чтобы перейти в консоль grub2. Здесь мы и будем орудовать.

Монтирование iso-образа производится командой

loopback loop (hd0,6)/username/iso/ubuntu-9.10-alternate-i386.iso

самое интересное здесь — (hd0,6). Первая цифра обозначает номер жесткого диска, где 0 — первый жесткий диск (/dev/sda в Linux), 1 — второй (/dev/sdb) и т.д. вторая цифра обозначает номер раздела на диске, здесь нумерация начинается с единицы. То есть «hd0,6» соответствует разделу номер 6 на первом жестком диске (или же /dev/sda6). Дальше следует полный путь к файлу, начиная от корня файловой системы.

Если честно, hd0 будет именоваться тот жесткий диск, с которого производилась загрузка. Разобраться во всем этом поможет команда ls, которая выведет список найденных разделов. Кроме того, для лучшего понимания grub2 почитайте статью о нем.

После монтирования iso-образа можно для проверки выполнить команду

ls

среди всего прочего должно появиться устройство (loop). Если оно есть — установим его в качестве корневого раздела, т.к. именно с него мы будем загружаться:

set root=(loop)

Данная операция завершится не сразу, т.к. размер установочного iso-образа тоже не мал. По завершении появится сообщение о том, что задан корневой раздел (loop) с файловой системой iso9660. Теперь осталось совсем немного. загрузите ядро такой командой:

linux /install/vmlinuz file=/preseed/ubuntu.seed

Теперь нужно загрузить initrd-образ, содержащий в себе сам установщик и все необходимое для его работы:

initrd /install/initrd.gz

Если все хорошо — даем команду на загрузку:

boot

После этого замелькают строчки загрузки и через несколько секунд вы увидите знакомый синий экран alternate-установщика. Если все прошло успешно — установщик найдет нужные файлы без лишних вопросов. Если же все остановится на этапе «поиск и монтирование cdrom» — где-то что-то не получилось 🙂

P.S. Несмотря на кажущуюся сложность, все весьма просто и логично. И времени занимает даже меньше, чем прожиг болванки. А отсутствие постоянных обращений к приводу сильно облегчит последнему жизнь.

P.P.S. Поскольку содержимое iso-образа распаковывается в оперативную память, рекомендуется наличие как минимум гигабайта таковой.

Загрузка с образа Desktop

Данная инструкция работает для iso образов Lucid Desktop и более новых и предположительно должна работать для Karmic

Сначала скачайте куда-нибудь образ Ubuntu Desktop. Я загрузил Ubuntu Lucid amd64 Desktop образ, переименовал его в ubuntu.iso и положил в корень sda7 раздела. Главное запомните полный путь до образа от корня раздела и номер этого самого раздела. Можно перезагружаться.

Если вы хотите устанавливать Ubuntu с запущенного таким вот образом iso, то учтите две вещи:

  1. Ваш iso образ не должен лежать на винчестере, на который вы будете устанавливать Ubuntu и который является загрузочным. Иначе ничего не получится. И не важно, на какой вы положите его раздел. Это ограничение можно обойти, смотрите способы в соседних разделах.
  2. После запуска Ubuntu с iso зайдите в терминал, наберите mount и удостоверьтесь, что в выводе действительно нет разделов, удовлетворяющих п.1.

На самом деле проще всего положить образ Ubuntu на флешку, которая определиться в GRUB как (fd0). Но в этом случае возможно разумней будет сделать Live Flash из iso образа с помощью встроенной в Ubuntu утилиты создания загрузочных флешек.

При загрузке компьютера когда появится меню GRUB нажмите клавишу C. Вы попадёте в консоль GRUB. Наберите

ls

Появится список всех ваших разделов. Найдите там нужный, в моём случае он будет называться (hd0,7). hd0 — это обычно sda, hd1 — sdb, и т.д.1)

Теперь выполните

loopback loop (hd0,7)/ubuntu.iso

Поставив нужный вам диск и полный путь до iso образа ubuntu. Если всё успешно сработало, то пишем

set root=(loop)

Далее грузим ядро Linux командой

linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noprompt

Не забудьте поменять путь до образа!

В новых версиях, таких как 13.04, может встретиться ошибка ‘/casper/vmlinuz file not found’, тогда необходимо указать расширения файла .efi

linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso noprompt

Потом initrd:

initrd /casper/initrd.lz

Всё, можно загружаться. Даём команду

boot

и ждём, пока загрузится LiveCD Ubuntu.

Загрузка с помощью grub-imageboot и MemDisk

Есть способ загружать образ имея лишь один жёсткий диск, за счёт того, образ будет смонтирован на виртуальный диск, созданный в памяти.

Способ требует объёма памяти, соответствующего размеру образа, и в большинстве случаев не работает по непонятным причинам. Также требуется тестирование настроек.

Поэтому рекомендуется использовать другой простой способ с утилитой UNetbootin, описанный в соседнем разделе.

Для работы пригодится утилита grub-imageboot:

sudo apt-get install grub-imageboot

Она ищет файлы образов в папке, указанной в конфиге /etc/default/grub-imageboot.conf (по умолчанию «/boot/images»). Обновление меню Grub запускается командой

sudo update-grub

У этого способа вполне вероятны проблемы с загрузкой. Можно попробовать в /etc/grub.d/40_custom в строке «linux /memdisk iso» поменять параметр «iso» на «raw» или «bigraw». Смотрите справку по MemDisk и рецепты в интернет.

  • http://ubuntuforums.org/showthread.php?t=1195275
  • http://lubuntu.ru/viewtopic.php?t=178

1)См. device.map в /boot/grub

Возможностью запуска среды устранения неполадок Windows, в её версии 7 вызываемой клавишей F8 на старте системы, Microsoft ещё во времена разработки Windows 8 пожертвовала в угоду более быстрому запуску компьютера. В Windows 8.1 и 10 мы не запустим среду восстановления этой клавишей. Только на отдельных устройствах может сработать комбинация Shift+F8, но далеко не на всех. Среда восстановления запускается с установочного носителя Win8.1 и Win10.

Но как сделать так, чтобы в среду восстановления можно было попасть без него? Это возможно при условии активации меню выбора вариантов загрузки, которое появляется при установке второй Windows. Его также можно реализовать, добавив возможность запуска с ISO-образа аварийного LiveDisk’а. Как это делается, рассмотрим ниже.

1. Возможности меню запуска нескольких Windows

Итак, меню выбора нескольких установленных на компьютере Windows. В Win7 оно позволяет нам войти в среду устранения неполадок путём нажатия клавиши F8, пока идёт отсчёт таймера запуска системы по умолчанию.

img_1-2.jpg

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

img_2.jpg

В меню выбора нескольких Windows в современном формате, устанавливаемом версиями 8.1 и 10, можем попасть в среду восстановления. Кликаем опцию изменения значений, выбираем «Выбрать другие параметры».

img_3-1.jpg

Далее – «Поиск и устранение неисправностей».

img_4.jpg

И здесь уже разбираемся, с каким восстановительным функционалом нам лучше поработать.

img_5.jpg

2. Добавление ISO-образа LiveDisk’а в меню загрузки

Но, как упоминалось, чтобы иметь возможность доступа к системным аварийным средствам, не обязательно ставить на второй раздел или второй диск другую Windows. Меню выбора операционных систем может появиться, если мы добавим в него запись о загрузке ISO-образа любого LiveDisk’а. Добавленные LiveDisk’и будут дополнительным аварийным средством, и с них, возможно, именно в вашем случае будет больше толку, чем с системных аварийных сред. Это могут быть LiveDisk’и с антивирусным ПО, различные сборки для системщиков, среды работы вне системы для программ резервного копирования или разметки дискового пространства и т.п.

Как добавить LiveDisk в меню загрузки Windows? Это возможно с помощью программы EasyBCD. Это мультисистемный редактор загрузчика, он, в частности, умеет делать так, чтобы мы могли запуститься с LiveDisk’а без установочного носителя, а прямо с жёсткого диска, используя ISO-образ LiveDisk’а. Вот только EasyBCD по большей части заточена под работу с MBR-дисками. И она никак нам не поможет, если мы будем дело иметь с GPT-дисками. Всё показанное ниже работает только для MBR-разметки и, соответственно, для MBR-загрузчика.

Итак, как добавить ISO-образ LiveDisk’а в меню загрузки? Запускаем программу EasyBCD. Идём в раздел «Добавить запись». Здесь нам нужна часть окна внизу, в ней переключаемся на вкладку «ISO». Далее в графе «Путь» указываем путь расположения ISO-образа LiveDisk’а на жёстком диске. Важный момент: если в имени ISO-образа есть пробелы, их необходимо убрать, заменив, к примеру, нижним подчёркиванием. Далее в графе «Имя» указываем название LiveDisk’а – так, как оно будет значиться в меню загрузки. В графе «Режим запуска», смотрим, чтобы стояло значение «Запуск с диска». И в итоге жмём зелёную кнопку в виде плюсика.

img_6-1.jpg

По этому же принципу добавляем второй, третий, четвёртый и т.д. ISO-образ LiveDisk’а.

img_7.jpg

Далее можем заглянуть в раздел программы «Редактировать меню загрузки». Здесь при необходимости можно перестроить порядок пунктов загрузки, переименовать их, установить иное значение таймера отсчёта и т.п. Внесённые изменения сохраняем.

img_8-1.jpg

Всё — можем перезагружаться и тестировать запуск добавленных LiveDisk’ов.

img_9.jpg

***EasyBCD – бесплатная в условиях некоммерческого использования программа.

Скачать её можно здесь: https://neosmart.net/EasyBCD

Используемые источники:

  • https://losst.ru/zagruzka-s-iso-obraza-v-grub
  • https://help.ubuntu.ru/wiki/загрузка_ubuntu_с_iso
  • https://www.white-windows.ru/kak-dobavit-iso-obraz-livedisk-a-v-menyu-zagruzki-windows/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации