- Загрузка дистрибутивов Linux непосредственно из файлов образов дисков формата ISO на жестком диске
- Получение образа диска дистрибутива Linux формата ISO
- Исследование содержимого файла формата ISO
- Определение номера раздела жесткого диска
- Создание элемента меню системного загрузчика GRUB2
- Linux для загрузки с диска
- Загрузка нескольких операционных систем
- Настройка загрузчика
- Восстановление загрузчика
Загрузка дистрибутивов 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) обозначается шестой раздел четвертого жесткого диска.
Вы можете использовать команду 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.
Если при попытке загрузки вашего файла образа диска формата ISO вы видите сообщение об ошибке или черный экран, вы допустили ошибку при выполнении какого-либо из описанных действий. Даже в том случае, если вы правильно указали путь к файлу образа диска формата ISO и имя дискового устройства, на котором он хранится, в рамках загружаемого файла образа диска могут использоваться отличные пути к файлам vmlinuz и initrd или отличные параметры загрузки.
Источник
Linux для загрузки с диска
Linux , установленный на жёстком диске, загружается при включении компьютера при помощи специальной программы — загрузчика. Программа-загрузчик исполняется при загрузке системы с жёсткого диска и загружает ядро ОС Linux , расположенное также на жёстком диске.
Загрузчики Linux можно также использовать для загрузки нескольких операционных систем, поскольку они позволяют выбирать при включении компьютера, какую систему нужно загрузить в этот раз. Если есть выбор из нескольких вариантов загрузки, то после некоторого времени ожидания будет загружена та система, которая выбрана по умолчанию: это не обязательно должен быть Linux , а может быть другая операционная система или специальный режим загрузки (например, восстановительный).
Например, при стандартной установке в начальном меню загрузчика ALT Linux доступны три альтернативы: ALT Linux , ALT Linux — Безопасные настройки (загрузка с минимальным количеством драйверов, что может оказаться необходимым в случае неполадок), Спасательная система . Если у вас есть установочный CD ALT Linux, вы также можете загрузиться с него: помимо установки новой системы можно загрузить уже установленный на жёстком диске Linux , который по тем или иным причинам невозможно загрузить прямо с жёсткого диска.
В нижней части экрана начального меню загрузчика располагается строка « Параметры ». В этой строке можно указать параметры, которые будут переданы ядру Linux при загрузке.
Загрузка нескольких операционных систем
Прежде всего следует отметить, что ОС Linux может быть загружена с любого жёсткого диска системы и любого типа раздела — и основного (primary), и дополнительного (secondary), с различных типов файловых систем (например Ext2 , Ext3 , ReiserFS ). При этом раздел, содержащий корневую файловую систему, не обязательно должен быть активным (иметь статус A в таблице разделов). Более того, вы можете использовать любой загрузчик, при условии, что он в состоянии передать управление на загрузочный сектор любого раздела (при этом несущественно, с какой операционной системой поставляется данный загрузчик). При наличии какого-либо стороннего загрузчика, загрузчик Linux следует устанавливать не в MBR первого жёсткого диска системы, а в загрузочный сектор корневого раздела Linux , на который впоследствии необходимо передать управление со стороны стороннего загрузчика. Подавляющее большинство UNIX -подобных систем не чувствительны к месту их размещения — главное, чтобы был способ передать управление на их программу начальной загрузки [1] .
При использовании поставляемого с дистрибутивом загрузчика LILO передача управления на загрузочный сектор любого раздела, физически доступного в момент загрузки, не вызывает проблем. В то же время специфика архитектуры некоторых нестандартных операционных систем накладывает ряд ограничений на размещение этих систем на диске. Возможна, что такая система может загружаться только с активного основного (primary) раздела на первом жёстком диске системы, в противном случае возможны самые неожиданные проблемы с загрузкой. В такой ситуации лучше полностью сохранить статус загрузочного раздела этой операционной системы.
Настройка загрузчика
Первое решение, которое нужно принять — где расположить загрузчик. Программа установки предлагает на выбор несколько позиций, где может быть размещён загрузчик. Общее правило: если устройство указано как « полный » жёсткий диск (без указания номера раздела — например, /dev/hda ), то загрузчик будет поставлен в MBR указанного диска; если устройство указано как раздел диска (в конце номер раздела), то загрузчик будет установлен в загрузочный сектор соответствующего раздела. Можно переместить загрузчик и после установки, исправив соответствующим образом конфигурационные файлы и дав команду lilo (см. ниже).
Это делается следующим образом: в файле /etc/lilo.conf для каждой операционной системы, которую потребуется загружать, нужно добавить новый раздел по аналогии со следующей записью:
Данная запись сообщает LILO о том, что на раздел /dev/hda1 установлена неизвестная ОС; в меню её надо отобразить под именем « other »; если пользователь выберет этот пункт меню — передать управление на загрузочный сектор /dev/hda1 .
После сохранения данного файла конфигурации необходимо дать команду lilo , чтобы изменения вступили в силу.
Наоборот, если общим для всех OC будет загрузчик другой операционной системы, то LILO необходимо установить на корневой раздел Linux (точка монтирования — / ). После этого необходимо сообщить общему загрузчику всех ОС о том, как передавать управление на раздел Linux . Как это сделать — смотрите в документации к используемому вами программному обеспечению.
Восстановление загрузчика
Загрузка Linux может быть нарушена, если загрузчик Linux окажется по каким-то причинам повреждён или заменён другой программой. Последнее может произойти, например, в процессе установки другой ОС, если загрузчик был установлен в загрузочный сектор диска (MBR), содержание которого будет перезаписано и заменено загрузчиком другой ОС. В этой и подобных ситуациях необходимо восстановить загрузчик Linux , и возможно, изменить его размещение на диске.
Восстановить загрузчик в той же конфигурации, в которой он был до повреждения, несложно, для этого достаточно:
любым способом загрузиться в Linux ;
смонтировать тот раздел жёсткого диска, на котором находится корневая файловая система Linux (выполнить mount раздел /mnt , где раздел — это имя соответствующего файла устройства, например, /dev/hda1 );
объявить раздел со смонтированной корневой файловой системой корневым (выполнить chroot /mnt );
выполнить команду lilo .
В случае, если потребуется изменить конфигурацию загрузчика, например, переместить его на другой диск или раздел, перед выполнением lilo нужно будет соответствующим образом исправить конфигурационный файл /etc/lilo.conf .
[1] Для очень старых BIOS действует правило 1024-го циллиндра: загрузка невозможна, если раздел, с которого загружается система, будет расположен на диске далее 1024-го циллиндра. В случае Linux — это раздел, содержащий корневую файловую систему или /boot , если он выделен на отдельный раздел.
Источник