Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

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

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

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

Системный загрузчик 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 понадобится позднее.

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

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

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

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

sudo fdisk -l

В результате вы увидите список путей к файлам дисковых устройств 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 вы можете открыть окно терминала и выполнить следующую команду:

sudo gedit /etc/grub.d/40_custom

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

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

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

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

menuentry "Ubuntu 14.04 ISO" {
set isofile="/home/name/Downloads/ubuntu-14.04.1-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
}

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

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

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

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

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

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

sudo update-grub

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

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

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