Меню Рубрики

Grub4dos загрузка iso linux

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

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

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

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

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

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

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

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

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

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

menuentry «Заголовок пункта» <
set isofile = «Адрес ISO файла»
loopback loop Загрузочный раздел в форме записи 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=$ quiet splash
initrd (loop)/casper/initrd.lz
>

Если вы хотите запускать 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=$
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=$
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 и появились в меню загрузки:

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

sudo grub-mkconfig -o /boot/grub/grub.cfg

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

Выводы

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

Источник

Загрузка c iso образов при помощи memdisk и grub4dos

Вы наверняка слышали о таких девайсах как нетбук. И знаете, что в них не предусмотрен оптический привод (CD\DVD).
Приобретя нетбук я столкнулся с проблемой — мне необходимо было выложить еще 60$ за внешний оптический привод, что для бедного студента в условиях кризиса было немного накладно. Девайс наотрез отказался грузится с флешки с карточки (почему — до сих пор не пойму. ) и тут мне в голову пришла мысль: «А если загрузится с образа?» — так начались поиски…

Далее я предлагаю почитать как я решил проблему при помощи grub4dos и memdisk. Конечная цель — загрузить образ нетинсталла openSUSE 11.3.

Сразу оговорюсь:
Не все образы получается загрузить описанным образом (у меня так и не получилось установить WinXP).
Образ монтируется в оперативную память и поэтому большие образы описанным образом смонтировать не получится.
Это не единственный способ загрузить содержимое iso — можно скопировать ядро и все необходимые ресурсы на диск и загрузить получившуюся конструкцию, но этот способ требует понимания как работает инсталлер и не всегда осуществим.

Шаг первый: подготовка

Мне попался нетбук с предустановленной Windows XP, поэтому вся статься отталкивается от наличия установленной Win XP.
Я использовал grub4dos, хотя всё изложенное в этой статье применимо и к обычному GRUB (в данный момент всё работает на обычном).
Нам нужен один раздел с поддерживаемой загрузчиком файловой системой (любой, кроме NTFS).
*Я использовал FAT32, но подойдет и ext2\ext3.
Копируем на наш раздел образ.

Шаг второй: установка grub4dos

Читаем документацию или продолжение статьи 😉
Качаем grub4dos отсюда.
Распаковываем архив, копируем grub4dos-*\grldr в корневой каталог системного диска (обычно — C:\, далее — %sysdisk%); открываем %sysdisk%\boot.ini и дописываем в секции [operating system]
C:\grldr=»Grub4Dos»
Адрес «C:\grldr» должен быть использован даже если установленная ОС имеет другую букву диска.
*В документации описана установка на более современный загрузчик.
Получится что-то вроде:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=»Microsoft Windows XP Professional» /noexecute=optin /fastdetect
C:\grldr=»Grub4Dos»

Содержимое папки grub4dos-* складываем в %sysdisk%\Grub4Dos
Конфиг из %sysdisk%\Grub4Dos\MENU.LST перекладываем в %sysdisk%\MENU.LST
*Важно понимать, что grub4dos изначально пытается считать (hd0,0)\MENU.LST, поэтому лучше либо использовать ключ —config-file=%CONFIG% либо положить MENU.LST в корень раздела (hd0,0). Обычно это C:\ или /dev/sda1
**Важно также понимать как GRUB нумерует диски, об этом можно почитать либо в официальной, либо в переведенной документации.
***Согласно документации существует еще вариант, который предусматривает прописывание конфига в ключе —config-file=%CONFIG% следующим образом —config-file=»find —set-root /openSUSE-11.3-NET-i586.iso; kernel /memdisk iso raw; initrd /openSUSE-11.3-NET-i586.iso» но у меня почему-то он так работать не хочет (вероятно из-за того, что штатный GRUB прописан в MBR).

Шаг третий: memdisk

У вас есть 2 варианта: скачать syslinux и собрать memdisk самостоятельно или скачать собранный мной memdisk с dropbox’a.
Memdisk сохраняем на разделе с образом (для простоты).
*Вообще говоря мы можем держать образ и memdisk на разных разделах, но тогда нам придется использовать абсолютный путь до memdisk (или образа, что менее вероятно).

Источник

Установка загрузчика grub4dos на флешку из linux-консоли

Описанное мной ниже крайне просто и очевидно, но, я надеюсь, это хоть кому-то поможет сэкономить пару часов времени.

На просторах интернета можно найти много статей по созданию мультизагрузочных флешек. Все они сводятся, в основном, к использованию grub4dos и syslinux. Что может быть проще: скачать, например, grub4dos, распаковать, запустить и нажать пару кнопок? Это работает, только работает под Windows.

А что если у меня linux? Здесь возникает ситуация, когда вопросов на форумах о том, как из linux установить загрузчик в MBR чуть больше, чем ответов. Я, признаюсь, и сам мучился до сегодняшней ночи.

Всё оказалось просто

Нужно всего-то лишь:

  • Скачать и распаковать архив grub4dos;
  • На флешке создать первичный раздел и пометить его, как «загрузочный»;
  • «Залить» загрузчик при помощи утилиты dd в загрузочную запись;
  • Скопировать файл grldr из архива на раздел флешки.

Теория

В двух словах про главную загрузочную запись (MBR). Согласно Википедии, структура у неё следующая:

  • Код загрузчика — 446 байт;
  • Таблица разделов;
  • Сигнатура

Наша задача: скопировать первые 446 байт из файла grldr.mbr в начало флешки.

Практика

В чём же дело?
На ответ натолкнуло то, что файл grldr.mbr имеет размер 9 килобайт. Всё решилось копированием его остальной части туда же — в начало диска (флешки). Только таблицу разделов и сигнатуру нужно оставить; просто пропускаем 512 байт:

Вот и всё. Теперь копируем на флешку нужные файлы, ISO-образы, правим menu.lst. Благо, по этой части в интернете есть громаднейшее количество информации.

Заключение

Эту статью меня побудило написать то, что на каком-то сайте я видел способ с использованием dd, но он не работал по причине совершенно непонятного использования параметров этой утилиты.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mac os git bash
  • Mac os gif анимация
  • Mac os games top
  • Mac os fusion drive
  • Mac os free pascal