На что можно записать multiboot сборку
Минимальный multiboot загрузчик
Обзор
Когда вы включаете компьютер, он загружает BIOS из специальной флэш памяти. BIOS запускает тесты самопроверки и инициализацию аппаратного обеспечения, затем он ищет загрузочные устройства. Если было найдено хотя бы одно, он передаёт контроль загрузчику, который является небольшой частью запускаемого кода, сохранённого в начале устройства хранения. Загрузчик определяет местоположение образа ядра, находящегося на устройстве, и загружает его в память. Ему также необходимо переключить процессор в так называемый защищённый режим, потому что x86 процессоры по умолчанию стартуют в очень ограниченном реальном режиме (чтобы быть совместимыми с программами из 1978).
Мы не будем писать загрузчик, потому что это сам по себе сложный проект (если вы действительно хотите это сделать, почитайте об этом здесь). Вместо этого мы будем использовать один из многих испытанных загрузчиков для загрузки нашего ядра с CD-ROM. Но какой?
Мультизагрузка
К счастью, есть стандарт загрузчика: спецификация мультизагрузки. Наше ядро должно лишь указать, что поддерживает спецификацию и любой совместимый загрузчик сможет загрузить его. Мы будем использовать спецификацию Multiboot 2 (PDF)
вместе с известным загрузчиком GRUB 2.
Field | Type | Value |
---|---|---|
магическое число | u32 | 0xE85250D6 |
архитектура | u32 | 0 для i386, 4 для MIPS |
длина заголовка | u32 | общий размер заголовка включая тэги |
контрольная сумма | u32 | -(магическое число + архитектура + длина заголовка) |
тэги | variable | |
завершающий тэг | (u16, u16, u32) | (0, 0, 8) |
В переводе на x86 ассемблер это будет выглядеть так ( Intel синтаксис):
Если вы не знаете x86 ассемблер, то вот небольшая вводная:
Загрузочный код
Чтобы загрузить наше ядро, мы должны добавить код, который сможет вызвать загрузчик. Давайте создадим файл boot.asm :
Здесь есть несколько новых команд:
После сборки, просмотра и дизассемблирования мы можем увидеть опкоды процессора в действии:
Создание исполняемого файла
Для создания самого ELF исполняемого кода мы должны связать объектные файлы. Будем использовать кастомный скрипт для связывания, называемый linker.ld :
Переведём что написано на человеческий язык:
Давайте создадим ELF объектные файлы и слинкуем их, используя вышеуказанный линкер скрипт:
Примечание: команды ld и objdump платформо-зависимы. Если вы работаете не на x86_64 архитектуре, вы нуждаетесь в кросс компиляции binutils. После этого воспользуйтесь x86_64‑elf‑ld и x86_64‑elf‑objdump вместо ld и objdump соответственно.
Создание ISO-образа
Теперь мы можем создать загружаемый образ, используя следующую команду:
[loomaclin@loomaclin a_minimal_multiboot_kernel]$ yaourt xorriso
1 extra/libisoburn 1.4.8-2
frontend for libraries libburn and libisofs
==> Enter n° of packages to be installed (e.g., 1 2 3 or 1-3)
==> — ==> 1
[sudo] password for loomaclin:
resolving dependencies…
looking for conflicting packages.
Packages (3) libburn-1.4.8-1 libisofs-1.4.8-1 libisoburn-1.4.8-2
Total Download Size: 1.15 MiB
Total Installed Size: 3.09 MiB
Загрузка
Пришло время загрузить нашу ОС. Для этого воспользуемся QEMU:
Появится окно эмулятора:
Обратите внимание на зелёный текст OK в верхнем левом углу. Если у вас это не работает, посмотрите секцию комментариев.
Резюмируем, что произошло:
Вы также можете протестировать это на настоящем железе. Необходимо записать получившийся образ на диск или USB накопитель и загрузиться с него.
Автоматизация сборки
Сейчас необходимо вызывать 4 команды в правильном порядке каждый раз, когда мы меняем файл. Это плохо. Давайте автоматизируем этот процесс, с помощью Makefile. Но для начала мы должны создать подходящую структуру директорий чтобы отделить архитектурно-зависимые файлы:
Makefile должен иметь следующий вид:
Теперь мы можем вызвать make и все обновлённые файлы ассемблера будут скомпилированы и скомпонованы. Команда make iso также создаёт ISO образ, а make run в дополнение запускает QEMU.
Что дальше?
В следующей статье мы создадим таблицу страниц и проведем некоторую конфигурацию процессора для переключения в 64-битный long-mode режим.
Multiboot, UEFI, NTFS или почти рецепт счастья
Пост написан по мотивам публикации «Живительная флешка».
Предисловие
Доброго времени суток, Хабр. Совсем недавно, читая Хабр, наткнулся на статью Живительная флешка, где был описан способ создания мультизагрузочной флешки с набором полезных утилит, разнообразных систем и т.д. И все бы ничего, да вот и тут зарыта собака — обратим внимание на эту ветку комментариев, в которой обсуждается работоспособность мультизагрузки в системах с UEFI. Таким образом я начал собственное расследование искать универсальный способ решения этой проблемы.
Далеко ходить не пришлось — еще со времен безумной популярности сборки Windows XP Zver Edition ее разработчики использовали набор утилит под названием RMPrepUSB для записи сборки на USB-накопитель. Сборка ушла из памяти людей, ну а сам проект пакета утилит продолжает развиваться и крепнуть. Ну а сама основа — проект Easy2Boot. Изучая их сайт я нашел универсальный способ создания мультизагрузочной флешки, которая может содержать в себе любой дистрибутив, LiveCD или образы дискет, которые Вы только захотите добавить. Итак, приступим к созданию такой чудо-флешки.
Начинаем
Идем на сайт и качаем последний архив с Install_RMPrepUSB_Full в названии. Распаковываем и устанавливаем.
Внимание: для любителей переносимости — можно открыть установочник в 7-zip (к примеру) и распаковать его в папку без установки.
Далее идем на сайт Easy2Boot и качаем архив с самим E2B, распаковываем в любую папку на ПК.
Подготовка флешки
Заходим в папку с E2B и запускаем файл _ISO\docs\Make_E2B_USB_Drive.cmd.
Внимание: если Вы не устанавливали, а распаковывали RMPrepUSB, то на первом же этапе Вас попросят указать путь в папке RMPrepUSB.
Нас попросят указать номер накопителя из приведенного списка, спросят, действительно ли мы хотим форматировать накопитель и попросят выбрать ФС.
И вот тут внимание! Выбираем FAT32 — грузимся в UEFI без проблем, но нет поддержки файлов >4 Гб, и наоборот — NTFS без UEFI, но с поддержкой больших файлов. Если Ваши образы весять меньше 4 Гб каждый, то смело выбирайте FAT32. С NTFS немного сложнее, а именно — флешка в UEFI не загрузится, но если загрузить ее на обычном биосе, а потом выбрать образ для UEFI (об этом ниже), то Easy2Boot перепишет MBR флешки и она будет загружаться в UEFI, при условии, что в том образе есть его поддержка (наличие файлов efi\bootia32.efi и efi\boot\bootx64.efi)
Идем по сложному пути — пишем N (то есть форматируем в NTFS), вылезет окошко с подтверждением, жмем ОК и ждем. После форматирования будут скопированы файлы E2B и на зеленом фоне появится надпись «Нажмите любую клавишу».
Структура папок или куда же класть образы?
Далее запускаем RMPrepUSB, выбираем накопитель в списке и жмем Ctrl+F2, соглашаемся и ждем пару секунд. Программа пошаманит с файлами и можно грузиться с флешки.
Постой, а как же UEFI?
Как все это выглядит?
Грузимся в биосе, выбираем нужный UEFI образ, переключаем UEFI обратно и получаем флешку с одним разделом, содержащим файлы этого образа. Соответственно, если данный образ поддерживает загрузку в UEFI — он появится в списке устройств, с которых можно загрузиться.
Внимание! Если Вы загружались с образов, подготовленных для UEFI, то Вы заметите, что при следующей загрузке с накопителя будет меню загрузки с того самого образа. А где же все те, что мы набросали на флешку? Да и файлы на флешке не те… Тут два варианта — из загрузчика выбрать верхний пункт EASY2BOOT или в ОС запустить с флешки скрипт e2b\RestoreE2B (run as admin).cmd.
В сухом остатке
Без минусов не обошлось и тут — приходится переключаться в биос для того, чтобы подключить нужный образ. Зато функционал данного набора утилит закрывает все мыслимые и немыслимые потребности в мультизагрузочной флешке.
Софт для создания multiboot диска.
Приветствую на своем сайте. Сегодня хочу рассказать о программах которые я использую для создания multiboot дисков и флешек. Возможно коснусь некоторых нюансов в создании носителя с множеством программ и дистрибутивов.
На все программы будут даны ссылки на их официальный сайт, а так же, если программа распространяется как бесплатная, для личного не коммерческого использования, будет ссылка для скачивания с моего яндекс диска.
В самом начале определяемся с носителем. Не важно переносной HDD или USB флешка будет использоваться для вашего multiboot. Далее форматируем носитель и делаем его загрузочным. Можно это сделать из командной строки, а можно воспользоваться различными программами, коих множество в интернете.
Для создания live сборок с несколькими дистрибутивами linux, а так же если вы используете операционную систему Linux, то вам необходима программа multibootusb.
Там же на сайте программы вы найдете версии программы для всех операционных систем и подробные инструкции. Для перевода на русский язык можно воспользоваться переводчиком, например встроенным в браузер гугл или яндекс.
При создании multiboot носителя в windows:
Как правило при создании универсального установщика или загрузчика операционных систем с несколькими версиями систем — все манипуляции и действия производят в ОС Windows.
Под windows существует множество программ как для записи отдельных образов на флешку, так и для создания сборников.
Для записи, создания носителя с одной операционной системой, использую популярную Rufus. Интерфейс этой программы интуитивно понятен и прост, есть поддержка русского языка.
Для создания универсального носителя я использую сборку MultiBoot USB, там же можно найти инструкцию по использованию этой сборки программ по созданию носителя.
В дополнение я еще использую более свежую версию с сайта cpec-comp.com.
Процесс работы с приложениями описывать не буду внутри архива содержится обе версии MultiBoot USB, а также утилиты которые понадобятся. Соответственно, подробная инструкция содержится в текстовом файле Multiboot.old, там же в архиве.
Скачать программы и инструкцию одним архивом с яндекс диска.
Для редактирования загрузочного меню загрузчика операционных систем boot я использую программу EasyBCD.
Программа EasyBSD позволяет пользователям самостоятельно настраивать меню загрузки операционных систем. Так, например, если у вас установлено сразу несколько ОС, вы можете создать меню выбора, указать систему по умолчанию и назначить таймер автоматического выбора.
Основной функционал заключается в возможности создания меню выбора операционных систем, и настройки этого меню:
какая операционная система установлена как основная;
сколько времени даётсяпользователю на выбор ОС;
добавление других функций в меню.
Скачать последнюю версию можно с официального сайта совершенно бесплатно.
Для редактирования exe файлов, изменения их значков на свои я использую программу ResourceHacker.
Скачать программу можно с официального сайта.
Русифицированная портативная (не требующая установки) версия 5.1 — скачать с яндекс диска.
Команды которые использованы в файлах menu.lst для подключения linux минт дистрибутивов
Основная часть кода для запуска того или иного дистрибутива берется из файла loopback.cfg. Файл расположен в самом образе linux в папке Boot.
Так же извлеките из образа файлы vmlinuz, initrd.lz — поместите их вместе с iso образом в одну директорию.
Подключаем образ Kaspersky Rescue Disk 18.
Самое первое это скачиваем образ с сайта Касперского.
Распаковываем образ при помощи архиватора 7zip, в папку kasper на вашем носителе.
Папку kasper предварительно создаете на вашей флешке.
Теперь открываете файл menu.lst и добавляете туда следующие строки:
Для обновления скачайте свежий образ и распакуйте его в папку kasper, предварительно удалив все ее содержимое.
О создании multiboot носителя в Linux читайте в этой статье.
Sibir-Omsk.ru
Поддержка проекта
MultiBoot USB HDD Utility and OS Windows & Linux CRUTCH (18.03.2021) (Light version)
MultiBoot USB HDD Utility and OS Windows & Linux CRUTCH (18.03.2021) (Light version)
Сообщение волчара » 18 мар 2021, 16:51
Название:MultiBoot USB HDD Utility and Windows & Linux CRUTCH (Light version)
Год выпуска: 2020
Платформа: х86/х64
Язык интерфейса: Русский
Активация для Windows 7/8.1/10: Требуется/Отсутствует
Системные требования
Операционная система: Windows XP/Vista/7/8/8.1/10
Процессор: Pentium III 1 ГГц
Память: 1024 МБ
Видеокарта: Графическое устройство DirectX 9 с драйвером WDDM версии 1.0 или выше
Свободное место на USB HDD: 45Gb
Свободное место на USB Flash: 45Gb
Microsoft Windows 7 SP1 version 6.1 (build 7601.24553) (13in2)
Образ Windows 7 с интегрированными обновлениями по 15.05.2020
Интегрированы обновления исключительно средствами DISM.
Никаких незаконных изменений нет.
Образы Windows 8.1 version 6.3 (build 9600.19697) (24in2)
Образы Windows 8.1 с интегрированными обновлениями по 19.05.2020
Интегрированы только обновления исключительно средствами DISM.
Никаких незаконных изменений нет.
Примечание: версии Embedded Industry Enterprise и Embedded Industry Pro идут без приложений.
Все сделано только средствами DISM, никакого ручного вмешательства.
Примечание: версии Embedded Industry Enterprise и Embedded Industry Pro идут без приложений.
Образ Windows 10 (x86/x64) Версия 2004 (Сборка ОС 19041.264) (60in2)
Образ Windows 10 с интегрированными обновлениями по 14.05.2020
Интегрированы обновления исключительно средствами DISM.
Никаких незаконных изменений нет.
Все сделано только средствами DISM, никакого ручного вмешательства.
MultiBoot USB HDD Utility and OS Windows & Linux CRUTCH (18.03.2021) (Light version).torrent | ||
Добавлен: | 20 мар 2021, 10:15 | |
Статус: | Обновлён | |
Размер: | 39.56 ГБ (42 477 637 869 байт) | |
Проверка: |