Linux загрузка с iso образами

Загрузка дистрибутивов Linux непосредственно из файлов образов дисков формата ISO на жестком диске

Оригинал: How to Boot Linux ISO Images Directly From Your Hard Drive
Автор: Chris Hoffman
Дата публикации: 26 сентября 2014 г.
Перевод: A.Панин
Дата перевода: 16 октября 2015 г.

Системный загрузчик Linux под названием GRUB2 позволяет загружать файлы образов дисков дистрибутивов Linux формата ISO непосредственно с жесткого диска. Благодаря этой возможности вы можете загружать Live CD Linux или даже устанавливать дистрибутивы Linux на другой раздел жесткого диска без необходимости записи образа диска на оптический диск или на накопитель с интерфейсом USB и последующей перезагрузки системы.

Мы проверили работоспособность данного механизма с помощью образа диска дистрибутива Ubuntu 14.04 и выяснили, что дистрибутив Ubuntu и основывающиеся на нем дистрибутивы полностью поддерживают его. Другие дистрибутивы Linux должны загружаться аналогичным образом.

Получение образа диска дистрибутива Linux формата ISO

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

Скачайте файлы образов дисков формата ISO, которые вы планируете использовать, и разместите их на одном из разделов жесткого диска, используемых установленной системой Linux; системный загрузчик GRUB2 должен поддерживать большинство систем Linux. Если вы желаете использовать Live-окружение без установки дистрибутива на жесткий диск, следует скачать версии «Live CD» каждого из файлов формата ISO. Многие загрузочные диски с окружением на основе Linux должны также отлично работать.

Исследование содержимого файла формата ISO

Вам придется заглянуть внутрь файла формата ISO для того, чтобы выяснить, где именно размещены определенные файлы. Вы можете открыть файл формата ISO, например, с помощью такого приложения с графическим интерфейсом, как Менеджер архивов/File Roller, которое поставляется в составе дистрибутива Ubuntu и других дистрибутивов с окружениями рабочего стола, основанными на технологиях проекта GNOME. Для этого следует выбрать файл формата ISO в файловом менеджере Nautilus, нажать правую кнопку мыши и выбрать пункт «Открыть с помощью «Менеджер архивов»».

В файле формата ISO вам придется найти файлы ядра и образа initrd. Если вы используете файл образа диска формата ISO дистрибутива Ubuntu, вы можете обнаружить эти файлы в директории casper — файл vmlinuz является файлом ядра Linux, а файл initrd — файлом образа initrd. Информация о расположении этих файлов в рамках файла образа диска формата ISO понадобится позднее.

Определение номера раздела жесткого диска

Системный загрузчик GRUB использует схему именования разделов жестких дисков, отличную от той, что используется в Linux. В системе Linux файл устройства /dev/sda0 соответствует первому разделу первого жесткого диска — буква a соответствует первому жесткому диску, а цифра 0 — его первому разделу. В GRUB запись (hd0,1) эквивалентна /dev/sda0. Цифра 0 соответствует первому жесткому диску, а цифра 1 — первому разделу на нем. Другими словами, в схеме именования дисковых устройств системного загрузчика GRUB нумерация дисков начинается с 0, а нумерация разделов — с 1; да, это не очень логично. Например, с помощью записи (hd3,6) обозначается шестой раздел четвертого жесткого диска.

Читайте также:  Управление bluetooth устройствами windows

Вы можете использовать команду fdisk -l для получения необходимой информации о дисковых разделах. В случае использования Ubuntu для получения данной информации следует открыть терминал и выполнить в нем следующую команду:

В результате вы увидите список путей к файлам дисковых устройств Linux, которые несложно преобразовать в имена дисковых устройств системного загрузчика GRUB. Например, на иллюстрации ниже несложно обнаружить системный раздел, представленный файлом устройства /dev/sda1, который в рамках системного загрузчика GRUB будет обозначаться как (hd0,1).

Создание элемента меню системного загрузчика GRUB2

Простейший способ добавления пользовательского элемента меню системного загрузчика связан с редактированием файла сценария /etc/grub.d/40_custom. Данный сценарий предназначен для автоматического добавления пользовательских элементов в меню системного загрузчика. После редактирования этого файла данные из файла /etc/defaults/grub будут комбинироваться с данными от сценариев из директории /etc/grub.d/, в результате чего будет генерироваться файл конфигурации системного загрузчика /boot/grub/grub.cfg; при этом вы не должны редактировать последний файл вручную. Файл конфигурации системного загрузчика в любом случае должен генерироваться автоматически на основе данных, добавленных в другие файлы.

Вам придется получить привилегии пользователя root для редактирования файла сценария /etc/grub.d/40_custom. В случае использования дистрибутива Ubuntu вы можете открыть окно терминала и выполнить следующую команду:

Разумеется, вы можете использовать ваш любимый текстовый редактор для редактирования рассматриваемого файла сценария. Например, вы можете заменить в команде «gedit» на «nano» для редактирования файла с помощью консольного текстового редактора Nano.

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

С помощью данной секции вы можете загрузить дистрибутив Ubuntu или другие основанные на Ubuntu дистрибутивы, располагая лишь файлом образа диска формата ISO. Мы проверили работоспособность данной секции с помощью файла образа диска версии дистрибутива Ubuntu 14.04:

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

(В том случае, если вы используете отдельный раздел жесткого диска для хранения директории /home с данными пользователей и разместили в этой директории образ диска формата ISO, вам придется убрать префикс /home из пути к файлу образа диска аналогичным образом: set isofile= » /name/Downloads/$ » ).

Важное замечание: В различных дистрибутивах Linux необходимо использовать различные описания элементов меню системного загрузчика с различными параметрами загрузки ядра ОС. На сайте проекта GRUB Live ISO Multiboot приводятся примеры множества описаний элементов меню системного загрузчика для различных дистрибутивов Linux . У вас не должно возникнуть сложностей при адаптации этих примеров к файлам образов дисков формата ISO, которые вы желаете загружать. Также вы можете воспользоваться поисковой системой для поиска в сети примера описания элемента меню системного загрузчика на основе имени и версии дистрибутива, который вы желаете загрузить, добавив в строку поиска «boot from ISO in GRUB» для получения дополнительной информации.

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

После того, как вы закончите добавление секций, сохраните файл. Сразу же после этого перейдите в окно терминала и выполните следующую команду:

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

Читайте также:  Файловая система windows ntfs это

Если при попытке загрузки вашего файла образа диска формата ISO вы видите сообщение об ошибке или черный экран, вы допустили ошибку при выполнении какого-либо из описанных действий. Даже в том случае, если вы правильно указали путь к файлу образа диска формата ISO и имя дискового устройства, на котором он хранится, в рамках загружаемого файла образа диска могут использоваться отличные пути к файлам vmlinuz и initrd или отличные параметры загрузки.

Источник

Как смонтировать файл образа ISO в Linux

How to Mount ISO File on Linux

В этом руководстве мы объясним, как монтировать файлы ISO в Linux.

Файл ISO — это архивный файл, который обычно содержит полный образ CD или DVD. Например, большинство операционных систем, таких как Windows, Linux и macOS, распространяются как образы ISO.

Файлы ISO могут быть извлечены с использованием популярных архивных программ, смонтированы на петлевом устройстве и записаны на флэш-накопитель USB или чистый компакт-диск.

Как смонтировать файлы ISO с помощью командной строки

Команда mount позволяет прикреплять (монтировать) файлы ISO в определенной точке монтирования в дереве каталогов.

Инструкции в этом разделе должны работать с любым дистрибутивом Linux, включая Ubuntu, Debian и CentOS.

Начните с создания точки монтирования, это может быть любое место, которое вы хотите:

Смонтируйте файл ISO в точку монтирования, введя следующую mount команду:

Здесь важен -o loop вариант. Он сообщает команде для сопоставления устройства цикла с указанным файлом ISO и монтирует это устройство в указанной точке монтирования.

Не забудьте заменить /path/to/image.iso путь к файлу ISO.

Чтобы просмотреть содержимое ISO-образа, используйте ls команду:

Вы также можете открыть файловый менеджер для просмотра содержимого ISO.

Размонтируйте файл ISO с помощью umount команды, за которой следует каталог, куда был смонтирован образ:

Если файловая система используется, umount команда не сможет отсоединить файловую систему.

Монтирование файлов ISO с помощью Gnome

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

Найдите файл ISO, который вы хотите смонтировать, и щелкните по нему правой кнопкой мыши. В контекстном меню выберите опцию «Открыть с помощью образа диска».

После того, как образ смонтирован, на рабочем столе должен появиться значок устройства. Дважды щелкните по нему, и откроется файловый менеджер Gnome.

Чтобы демонтировать файл ISO, щелкните правой кнопкой мыши значок устройства и выберите «демонтировать».

Вывод

В Linux вы можете монтировать файлы ISO с помощью mount команды. Пользователи настольных компьютеров могут использовать графические инструменты, такие как Gnome Disk Image Mounter.

Источник

Интересная фича Grub2: загрузка из ISO-файла

Собственно, захотелось мне посмотреть на Unity. По картинкам и видео – вроде ничего. Да вот беда. В виртуальной машине его не запустишь — 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть.

Ок. Качаю образ Natty, прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение.

Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.

Читайте также:  Настройка шлюза удаленных рабочих столов windows server 2016

Ну, приступим. Первым делом добавляем новый пункт меню в Grub2. Для этого правим /etc/grub.d/custom_40, добавляя в конец файла следующие строки:

menuentry «Ubuntu Live» <
set root=(hd0,7)
loopback loop /ubuntu-11.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-11.04-desktop-amd64.iso noeject noprompt —
initrd (loop)/casper/initrd.lz
>

И что же мы тут наворотили:
В “set root” указываем раздел, в котором находится образ iso
В “loopback loop” создаем loop-устройство, к которому монтируем файл нашего iso (посмотрите, например, мануал mount, раздел “Loop Device”, если не знаете, что это за устройство loop).
Две следующие строчки указывают нахождение ядра и образа initrd относительно корня loop устройства (путь к файлам ядра и initrd внутри ISO-образа).

Если кто попытается повторить, имейте в виду:

1. В set root=(hd0,7) следует заменить 7 на номер раздела на вашей машине, в котором находится iso-шный образ системы. Например, если Вы загрузили ubuntu-11.04-desktop-amd64.iso в раздел /dev/sda1, строчка изменится на set root=(hd0,1).
2. Я загрузил ISO в корень своего home-раздела (коим является (hd0,7). Если у Вас образ окажется в какой-нибудь папке, указывайте полный путь к образу относительно корня.

Обновляем конфигурационный файл grub2:
update-grub

Собственно далее я создал новый раздел для будущей второй системы при помощи fdisk, и перезагрузился.

Как и ожидалось, в меню загрузки появился новый пункт “Ubuntu Live”, который и был незамедлительно выбран. При загрузке никаких приключений не произошло, однако вместо Unity меня встретил Gnome 🙂 Дрова для моей nvidia в дистр не включены.

Самое время начать установку. Жму install. После выбора разделов для /, swap и /home меня ждал очередной фейл. Ubiquity на отрез отказался продолжать, аргументируя тем, что у меня есть подмонтированный раздел. Для того, чтобы создать loop-устройство с нашим образом Ubuntu, grub2 сначала смонтировал раздел, на котором находился этот самый образ. И не важно, что этот раздел никак не фигурировал среди претендующий на какую бы то ни было модификацию при установке, инсталлятор Ubiquity был непреклонен и установку продолжать отказывался.

После непродолжительного поиска в гугле оказалось, что я не первый, кто с этим столкнулся. Проблема решалась удалением строчки с примонтированным разделом (в моем случае это был /dev/sda7) из /etc/mtab. Сделать это нужно было до начала установки. После ее удаления все пошло как по маслу. Установка завершилась успешно, я поставил драйвер видеокарты и после перезагрузки… TA-DA.

После успешного опыта с Ubuntu, я решил посмотреть насколько универсален данный метод загрузки. Вынужден сообщить, что у многих дистрибутивов с ним не все так гладко.
Во-первых, в основной системе (в той, чьим загрузчиком мы пользуемся), должен быть установлен grub2. Grub и остальные загрузчики не умеют грузить систему из ISO на диске.

Проблема так же в том, что разработчики дистрибутива, который мы загружаем данным методом, должны явно предусмотреть вариант загрузки из ISO-файла. В Ubuntu, если вы глянете на сточку конфигурационного файла grub2, в которой указывается путь к ядру, увидите, что ядру передается специальный параметр iso-scan/filename, который явно указывает, что система грузится из ISO-файла.

Работает загрузка из ISO-файла в дистрибутивах основаных на Ubuntu (Mint, Kubuntu, Mythubuntu, BackTrack. ). Есть поддержка загрузки из ISO-файла в Gentoo, SystemRescueCD, нескольких менее именитых дистрибутивах: Sidux, Grml, Xbmc. Так же этим методом можно пользоваться для загрузки маленьких дистрибутивов, которые после распаковки initrd полностью помещаются в память и не используют файлы в образе. Например, у СentOS, Debian (да наверное и у многих других дистрибутивов) есть так называемые “netinstall”-образы, которые содержат только минимум и все пакеты устанавливаются по сети.

Fedora пока не “умеет” загружаться этим методом (хотя баг в их багтрекере висит и работа в этом направлении идет). Так же этот метод пока не работает в Arch и Debian.

Источник

Оцените статью