- Create the bootable media¶
- How to make a bootable USB stick¶
- In Linux Mint¶
- In Windows, Mac OS, or other Linux distributions¶
- How to make a bootable DVD¶
- In Linux¶
- In Windows¶
- In Mac OS¶
- Загрузка дистрибутивов Linux непосредственно из файлов образов дисков формата ISO на жестком диске
- Получение образа диска дистрибутива Linux формата ISO
- Исследование содержимого файла формата ISO
- Определение номера раздела жесткого диска
- Создание элемента меню системного загрузчика GRUB2
- Загрузка Linux с VHD на компьютере с BIOS
- Установка Linux на VHD
- Подготовка Linux к загрузке с VHD
- Настройка grub4dos
- Настройка загрузчика bootmgr
- Что делать, если не грузится?
- А как же UEFI?
Create the bootable media¶
The easiest way to install Linux Mint is with a USB stick.
If you cannot boot from USB, you can use a blank DVD.
How to make a bootable USB stick¶
In Linux Mint¶
Right-click the ISO file and select Make Bootable USB Stick , or launch Menu ‣ Accessories ‣ USB Image Writer .
Select your USB device and click Write .
In Windows, Mac OS, or other Linux distributions¶
Download Etcher, install it and run it.
Click Select image and select your ISO file.
Click Select drive and select your USB stick.
How to make a bootable DVD¶
Optical discs are slow and burning to disc is prone to errors.
To prevent issues, burn at the lowest possible speed.
Burn the content of the ISO onto the DVD, not the ISO file itself. When finished, your DVD should contain directories such as boot and casper , it shouldn’t be an empty DVD containing an .iso file.
In Linux¶
Install and use xfburn .
In Windows¶
Right-click the ISO file and select Burn disk image .
To make sure the ISO was burned without any errors, select Verify disc after burning .
In Mac OS¶
Right-click the ISO file and select Burn Disk Image to Disc .
© Copyright 2017, Linux Mint Revision 11740971 .
Источник
Загрузка дистрибутивов 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 с VHD на компьютере с BIOS
Загрузка Linux с VHD может пригодиться в различных сценариях, например, когда на компьютере установлена Windows и есть необходимость в Linux, но WSL или виртуальной машины с Linux недостаточно, а разбивать диск на разделы нет желания. Microsoft позволяет грузить Windows с VHD «из коробки» начиная со старших редакций Windows 7. Но что делать, если возникла необходимость загрузить таким способом Linux?
На форумах часто можно встретить мнение, что загрузить Linux с VHD либо нельзя, либо очень сложно. Полезной информации в интернете на эту тему действительно мало. Базовая идея, как это осуществить, описана тут. Суть в следующем:
Необходимо убедиться в поддержке NTFS на всех этапах.
Необходимо убедиться в поддержке loop-устройств.
Добавить в загрузочные скрипты ОС команду монтирования loop-устройства.
Убедиться, что все необходимые утилиты добавлены в образ, обновить initramfs внутри VHD.
В случае legacy-зарузки (BIOS) и использования штатного загрузчика Windows добавить grub4dos в меню bootmgr, а в меню grub4dos добавить пункт для загрузки с VHD.
Практическое применение этой идеи для Arch Linux описано тут. В этой статье я проведу аналогичный эксперимент с Debian. Предполагается, что читатель имеет представление о работе с консолью в Windows и в Linux, умеет работать со стандартными системными утилитами, с ПО для виртуализации и т.п. — элементарные вещи подробно не расписаны.
Процесс загрузки будет выглядеть так: bootmgr -> grub4dos -> initramfs -> debian. Рассмотрим подготовку каждого этапа справа налево.
Установка Linux на VHD
Для начала необходимо создать пустой образ VHD с фиксированным размером. Если нужно минимизировать размер образа, то для экспериментов с CLI достаточно создать диск объемом
1,5 Гб. Для рабочей системы с GUI можно ограничиться объемом 10 Гб (с условием хранения пользовательских данных вне VHD).
Создадим VHD с помощью diskpart.exe:
Далее необходимо установить Debian на VHD. Я для этого воспользовался VirtualBox 6.1, устанавливал debian-10.8.0-amd64-netinst.iso. Параметры виртуальной машины — по умолчанию, новый диск создавать не надо, достаточно подключить ранее созданный debian.vhd.
Установка Debian стандартна, обращу внимание только на некоторые моменты.
При разметке диска я создал один загрузочный раздел ext4. Раздел подкачки на VHD я делать не стал, после установки можно разместить файл или раздел подкачки в удобном месте.
При выборе дополнительного ПО для установки я оставил только SSH-сервер и стандартные системные утилиты. Всё остальное можно поставить потом, по необходимости. GRUB установлен в MBR. Если при установке была выбрана русская локаль, то после установки можно добавить локаль en_US командой dpkg-reconfigure locales .
Подготовка Linux к загрузке с VHD
В установленную систему необходимо добавить поддержку NTFS и утилиту partprobe, которая позволяет сообщить ядру ОС о необходимости повторного чтения таблицы разделов жёсткого диска.
Затем надо подготовить скрипты для initramfs.
initramfs — это начальная файловая система в оперативной памяти, которая содержит утилиты и скрипты, требуемые для монтирования файловых систем перед вызовом init, располагающегося в корневой файловой системе.
Скрипты для initramfs созданы на основе документации. Наши дополнения для initramfs мы будем размещать в следующих каталогах.
/etc/initramfs-tools/hooks/ — здесь размещаются скрипты, которые запускаются при генерации initramfs-образа. Тут мы разместим скрипт для добавления в initramfs утилиты partprobe с необходимыми библиотеками.
/etc/initramfs-tools/scripts/local-top/ — после выполнения этих скриптов загрузчик считает, что root-устройство смонтировано. Т.е. здесь будет скрипт для монтирования VHD.
Скрипт для добавления partprobe в initramfs возьмем из этой статьи с добавлением еще одной библиотеки. Надо создать файл partcopy и сделать его исполняемым:
Скрипт для монтирования VHD сделан на основе скрипта для Arch Linux с учетом особенностей выбранного дистрибутива Linux. Скрипт необходимо сохранить под именем loop_boot_vhd и сделать исполняемым:
Немного подробнее поясню логику работы скрипта. Обработка prereqs рекомендована в документации. В переменную cmdline попадает строка инициализации из grub4dos, например, root=/dev/loop0p1 loop_file_path=/debian.vhd loop_dev_path=/dev/sda2 . Далее идет разбор этой строки и из нее определяется номер партиции на loop-устройстве, а в переменные loop_dev_path и loop_file_path сохраняются путь к устройству, на котором хранится VHD-файл, и путь к VHD-файлу на устройстве. Если данные для этих переменных не переданы, то скрипт прекращает работу и система пытается загрузиться в обычном режиме. Если переменные определены, то загружается модуль ядра для подержки loop-устройств с указанием в параметрах максимального количества loop-устройств и максимального количества таблиц разделов на loop-устройстве. Затем командой blkid определяется тип файловой системы диска, на котором хранится VHD-файл. Если VHD лежит на NTFS, то монтирование производится с помощью команды ntfs-3g , иначе — командой mount . Монтирование производится в каталог /host (который при необходимости предварительно создается). После этого VHD подключается в систему командой losetup , а затем partprobe сообщает ядру о новом диске.
После размещения скриптов в нужные каталоги ( /etc/initramfs-tools/scripts/local-top/loop_boot_vhd и /etc/initramfs-tools/hooks/partcopy ) необходимо пересобрать initramfs командой:
Для дальнейшей настройки надо запомнить номер версии ядра: /boot/initrd.img-4.19.0-14-amd64 и /boot/vmlinuz-4.19.0-14-amd64.
На этом образ готов к запуску на реальном железе, можно выключать виртуальную машину и приступать к подготовке загрузчика. Готовый образ debian.vhd надо скопировать в корень диска C:, дальнейшие скрипты написаны исходя из предположения, что VHD находится в корне NTFS-раздела.
Настройка grub4dos
Для начала надо скачать актуальную версию grub4dos. Работа с этой утилитой в различных источниках описана достаточно подробно. Настройка сводится к следующему:
необходимо найти раздел, в корне которого лежит VHD-файл, и сделать его корневым для всех команд в текущем пункте меню (команда find —set-root );
затем загрузить образ жесткого диска (команды map . vhd и map —hook );
далее подключенный образ указать как корневое устройство (команда root );
и указать параметры запуска Linux ( kernel и initrd ).
Получается файл menu.lst с таким содержимым:
Тут надо обратить внимание на один момент: в команде kernel инициализируются переменные, которые передаются в initramfs и используются в ранее созданном скрипте loop_boot_vhd .
В моем примере переменные заполнены исходя из моей конфигурации компьютера: один диск с Windows, разбитый на два раздела (загрузочный «System Reserved» и основной NTFS), а внутри VHD — один раздел ext4.
Настройка загрузчика bootmgr
Обратите внимание: в зависимости от версии Windows и особенностей установки ОС возможны незначительные отличия.
Первое, что надо сделать, — подключить скрытый раздел с bootmgr, в примере ниже я подключаю скрытый раздел «System Reserved» в каталог C:\mnt (каталог должен быть предварительно создан). Команды выполняются в diskpart.exe:
После этого надо распаковать в каталог C:\mnt\ файлы из архива с grub4dos: grldr и grldr.mbr . В этот же каталог надо скопировать файл menu.lst , созданный на предыдущем шаге. После этого раздел можно отключить в diskpart.exe:
Чтобы настроить отображение пункта меню при загрузке Windows, надо сделать следующее:
В ответ будет сообщен GUID нового пункта меню. Полученный GUID используется в следующих командах:
Тут подробно не останавливаюсь, все команды очевидны и хорошо описаны в документации. Ну, и чтобы не переключаться лишний раз между графическим и текстовым режимами:
На этом всё: можно перезагрузить компьютер, выбрать в меню загрузки grub4dos, затем Debian, после чего должен загрузиться Linux.
Что делать, если не грузится?
В этом случае, скорее всего, неверно указаны параметры с путями к устройству, на котором находится VHD-файл, или раздел на loop-устройстве. Если загрузка останавливается на уровне grub4dos, то в консоли надо последовательно вводить команды, перечисленные в menu.lst , и смотреть на результаты, в зависимости от которых правильно указать параметры для загрузки Linux. Если загрузка останавливается в initramfs, то надо проверить доступность необходимых устройств на этом этапе. Проверить можно, последовательно вводя команды из скрипта loop_boot_vhd (основное: смонтировать нужные разделы, найти VHD, подключить его, проверить присвоенный номер партиции с Linux, в моем примере — loop0p1).
А как же UEFI?
Это немного другая история, надеюсь, позже найду время и проведу аналогичный эксперимент с UEFI.
Источник