Метка «grub»

Зачем?

В моем случае мне понадобилось перевести домашний сервер с Ubuntu на Fedora и было лень нести его к компьютеру, подключать к монитору, записывать установочный образ на флешку. Не менее лень было поднимать TFTP-сервер и разбираться с PXE. Способ подходит в принципе и для некоторых других дистрибутивов, но с Fedora и Centos он немного проще, поскольку содержимое установочных дисков доступно по HTTP. Если надо установить любой другой дистрибутив, использующий инсталлятор Anaconda, то можно скачать его образ, смонтировать и переписать содержимое в папку, доступ к которой можно получить по FTP/HTTP. Например, это относится к RedHat и Oracle Linux.
Читать полностью »

Xen mascot PV-GRUB (не путать с заведомо костыльным pygrub) является основанным на GRUB 0.9x загрузчиком для паравиртуальных машин Xen, позволяющим загружать ядро ОС непосредственно из DomU (гостевого) окружения, что добавляет процессу запуска гостевой системы существенной независимости от хост-системы. Одним на наиболее крупных внедрений можно считать облачный хостинг Amazon EC2, также использующий гипервизор Xen и предоставляющий клиентам возможность с помощью PV-GRUB загружать любые кастомизированые ядра (Use your own kernel with Amazon EC2) для паравиртуальных систем.

В данном вопросе всё было бы исключительно позитивно, если бы не вполне обычная для свободного ПО проблема: разработка данной ветки GRUB уже как несколько лет полностью остановлена в пользу GRUB2, а сообщество разработчиков Xen, судя по всему, в ближайшие годы основанной на актуальной версии GRUB замены PV загрузчику предоставить не готово. Сам PV-GRUB, несмотря на то, что является, в общем-то, частью официального дистрибутива Xen, в настоящее время уже исключён как минимум из соответствующих пакетов в репозиториях Debian и Ubuntu, а пользователи, привыкшие к удобствам, между тем требуют (Debian bug #588839: Include pv-grub to securely boot guest kernels) и требуют (Ubuntu bug #798583: xen-utils-4.1 does not have pvgrub)… Хотя лично для меня не очень понятна мотивация мейнтейнеров Xen пакетов, ссылающихся на некие невнятные проблемы с зависимостями, в то время как пакеты с GRUB 0.97 всё ещё доступны и работоспособны, да и к существующему функционалу претензий нет.

Здесь я постараюсь описать, пожалуй, наиболее приемлемое в настоящий момент решение насущной проблемы — самостоятельную сборку PV-GRUB и необходимую настройку DomU для его использования, благо никаких сверхъестественных усилий для этого не требуется.
Читать полностью »

Как запустить программу без операционной системы: часть 2

В первой части нашей статьи мы рассказали о том, каким образом можно получить простую программу “Hello World”, которая запускается без операционной системы и печатает сообщение на экран.

В этой части статьи, хочется развить получившийся в первой части код таким образом, чтобы он мог быть отлажен через GDB, компилировался через оболочку Visual Studio и печатал на экран список PCI устройств.

! ВАЖНО!: Все дальнейшие действия могут успешно осуществляться только после успешного прохождения всех 6-ти шагов описанных в первой части статьи).

Читать полностью »

Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).

В интернете существует огромное количество описаний и туториалов о для того как написать собственную мини-ОС, даже существуют сотни готовых маленьких хобби-ОС. Один из наиболее достойных ресурсов по этой тематике, который хотелось бы особо выделить, это портал osdev.org. Для дополнения предыдущей статьи про PCI (и возможности писать последующие статьи о различных функциях, которые присутствуют в любой современной ОС), мы опишем пошаговые инструкции по созданию загрузочного диска с привычной программой на языке С. Мы старались писать максимально подробно, чтобы во всем можно было разобраться самостоятельно.

Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего на всего печатает на экране компьютера классический “Hello World”.

Читать полностью »

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

В качестве минимальной базы для работы с PCI-устройствами будем использовать ядро, поддерживающее спецификацию Multiboot. Так удастся избежать необходимости писать собственный загрузочный сектор и загрузчик (loader). Кроме того, этот вопрос и так отлично освещен в интернете. В качестве загрузчика будет выступать GRUB. Грузиться мы будем с флэшки, так как с нее удобно загружать и виртуальную, и реальную машину. В качестве виртуальной машины будем использовать QEMU. В качестве реальной машины должна выступать машина с обычным BIOS-ом (не UEFI), поддерживающим загрузку с USB-HDD (обычно присутствует опция Legacy USB support). Для работы понадобятся Ubuntu Linux со следующими программами: expect, qemu, grub (их можно легко установить при помощи команды sudo apt-get install). Используемый gcc должен компилировать 32х битный код.
Читать полностью »

image
Я постоянно работаю в линуксе. Но бывают случаи, когда нужно перезагрузиться в винду. Просто так это сделать трудно, нужно подождать когда выскочит Grub и выбрать нужный пункт. Поэтому, сходить поесть, посрать или покурить во время ребута вам не получится, сидите перед монитором. Попробуем облегчить страдания и сделать хоть что-нибудь.
Читать полностью »

image
Сегодня я расскажу, как подружить загрузчик от программы шифрования Truecrypt и никсовский загрузчик Grub 2. Такая необходимость может возникнуть (и неотвратимо возникает) при попытке установить рядом на одном жёстком диске ОС Windows, зашифрованную бесплатной программой Truecrypt, и unix-образную операционную систему, например Ubuntu.

Основная проблема заключается в том, что Grub не умеет работать с ключами truecrypt и не может расшифровать виндошный раздел, а truecrypt loader не [всегда] умеет загружать другие операционные системы. Существует два основных подхода к решению задачи.Читать полностью »

Существует немало ситуаций, когда воспользоваться винчестером бывает невозможно: несовместимость ATA режимов HDD и IDE-тракта, разрушение загрузчика или таблицы разделов, утеря паролей, нарушение целостности файловой системы после аппаратных сбоев или вирусной атаки и т.д. и т.п.

Системы, предназначенные для преодоления подобного рода трудностей, обычно называют «спасательными» (rescue) или аварийными. До недавнего времени основным носителем таких систем были дискеты со всеми их недостатками. Как то: малый объём, низкая надёжность, «неприлично» низкая, по нынешним временам, скорость доступа. Не секрет, что «флоппики» нынче умирают, а потребность в rescue-системах всё ещё существует. Вот и приходят на смену дискетам CD и flash-карты.Читать полностью »

Добрый день! Недавно возникла острая необходимость удаленно перезагрузиться в другую операционную систему на рабочем компьютере. Если в случае с перезагрузкой из linux в windows все просто — достаточно поправить файл /etc/default/grub и обновить сам загрузчик, то наоборот из Windows загрузиться в Linux чуточку сложнее, но можноЧитать полностью »