2017-11-30

Установка Easy2Boot из ОС Linux

В предыдущей статье про Easy2Boot (далее E2B), была рассмотрена установка данной системы из операционной системы Windows. Сегодня, мы рассмотрим установку E2B из ОС Linux.

Все действия будут выполняться на виртуальной машине VirtualBox, с подключенной флешкой в качестве USB устройства, и с загруженным SystemRescueCd, в качестве Linux дистрибутива. Сделано так, из-за отсутствия данной ОС на моем ПК. Поэтому, прошу просто не обращать на это внимание, все проделанные действия ниже равнозначны как для виртуальной, так и для реальной машины.



Всю установку E2B на флешку из ОС Linux, можно разделить на четыре этапа.

Этап 1й, разметка флешки, т.е. создание разделов.
Этап 2й, форматирование созданного раздела в одну из файловых систем поддерживаемых загрузчиком Grub4Dos.
Этап 3й, запись MBR Grub4Dos на флешку.
Этап 4й, распаковка файлов E2B.

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

Внимание! Хочу сразу предупредить, дальнейшие действия приведут к полной потере данных на вашей флешке. Поэтому позаботьтесь об их сохранности.


Создание разделов


Итак, перед нами загруженная ОС Linux. Подключенный USB Flash Drive в USB порт системного блока. Открытое окно терминала, с запущенным командным интерпретатором от имени пользователя root.


Выведем список дисков и разделов которые доступны в системе, чтобы определить под каким обозначением устройства скрывается наша флешка. Для этого вводим команду fdisk -l.


Из полученного вывода, можно определить, что флешка представлена устройством /dev/sda (исходя из размера). Так же, в данном выводе присутствует устройство /dev/sda1 которое является разделом на данной флешке.

Дополнительно убедиться в достоверности данной информации можно командой  lshw -short.


Узнав имя устройства вводим команду fdisk /dev/sda. Тем самым, мы попадем в интерактивный режим программы fdisk (предназначена данная программа как раз для разметки дисков).


В интерактивном режиме программа просит у нас ввести команду, либо ввести букву m для вывода списка возможных команд. Вводим m и нажимаем ENTER.


Перед нами появится список возможных действий и приглашение ввода необходимой команды. На данный момент нам нужно создать пустую таблицу разделов DOS на флешке, поэтому вводим команду o и нажимаем ENTER.


Программа сообщит, что создан новый дисковый заголовок с указанием его идентификатора (идентификатор уникальное значение). Теперь создадим разделы, вернее раздел, так как он будет у нас один. Для этого вводим команду n и нажимаем ENTER.


Программа попросит выбрать, какой раздел следует создать, первичный, команда p, или расширенный, команда e. Нам нужен первичный, поэтому вводим p и нажимаем ENTER.

Хочу обратить ваше внимание на то, что в скобках обычно бывает указан выбор по умолчанию. В данном примере, приглашение ввода команды выглядит так - Select (default p):, это означает что, если просто нажать ENTER. не вводя никакой команды, будет автоматически выбран вариант p.


Теперь нужно выбрать номер первичного раздела, возможные варианты от 1 до 4. Вводим цифру 1 и нажимаем ENTER.


Программа попросит указать смещение раздела от начала диска, в секторах, указываем 2048 и нажимаем ENTER.


После чего, нужно будет указать последний сектор раздела, или же его дисковый объем с указанием соответствующего суффикса (размер + K, M , G, T, P). К примеру если указать 100M, это будет означать, что объем созданного раздела будет равен 100 Мб.

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


Программа сообщит, что раздел под номером 1 с типом Linux успешно создан, и мы снова попадем в главное меню программы fdisk.

Теперь нам нужно поменять тип раздела с Linux на HPFS/NTFS/exFAT. Для этого вводим команду t и нажимаем клавишу ENTER.


Программа попросит указать новый тип раздела, или же ввести букву L для вывода списка всех возможных типов разделов. Вводим букву L и нажимаем клавишу ENTER.


На экране появится список типов разделов с их числовыми кодами (код задается шестнадцатеричным числом от 0 до ff), программа при этом, так же, будет ожидать ввода типа раздела. Из данного списка видно, что нужный нам тип отмечен цифрой 7. Вводим цифру 7 и нажимаем клавишу ENTER.


Программа выдаст сообщение, что тип раздела сменен с Linux на HPFS/NTFS/exFAT, и переведет нас в главное меню fdisk'а. И последнее, нужно сделать созданный раздел загрузочным, или активным. Для этого вводим команду a и нажимаем ENTER.


Программа сообщит, что раздел теперь является загрузочным.

Проверим все ли верно, отобразив проделанные изменения вводом команды p.


Убедившись что все так как нужно, вводим команду w и нажимаем на клавишу ENTER.

Важно! Замечу, что все изменения которые вы проводили до команды w, являются виртуальными.


Созданная разметка успешно записана на диск. При этом произойдет выход из программы fdisk.


Форматирование разделов


Форматирование, по сути является всего лишь процедурой создания файловой таблицы на указанном разделе. Я рассмотрю форматирование в файловые системы FAT. NTFS и EXT. Данные файловые системы успешно поддерживаются загрузчиком Grub4Dos.

Определить раздел необходимый для форматирования поможет команда fdisk -l.


В моем случае, необходимый раздел представлен устройством /dev/sda1. Приступим к форматированию.

Для форматирования созданного нами ранее раздела sda1 в файловую систему FAT32, нужно выполнить команду mkfs.vfat -F 32 -n BOOTDEV /dev/sda1.


Текущие параметры раздела можно посмотреть выполнив команду blkid.


Для форматирования раздела sda1 в файловую систему NTFS выполняем команду mkfs.ntfs -f -I -L BootDev /dev/sda1.


Для форматирования раздела sda1 в файловую систему EXT4 выполняем команду mkfs.ext4 -L BootDev /dev/sda1.



Для дальнейших действий, я оставлю последнюю файловую систему, а именно EXT4. Но, более предпочтительным выбором будут все же FAT32 либо NTFS. Так как, данные файловые системы поддерживаются всеми операционными системами.


Запись MBR Grub4Dos

Записывать загрузочную запись в текущую MBR флешки придется вручную (из файла), так как в Linux нет специализированной для этой задачи консольной программы. Файл с загрузочной записью загрузчика Grub4Dos можно достать из его дистрибутива.

Скачать последнюю версию дистрибутива можно по этой ссылке http://grub4dos.chenall.net/categories/downloads/.


Скачиваем дистрибутив с последней версией, на момент написания этих строк это был архив grub4dos-0.4.6a-2017-11-18.7z.


После скачивания, возвращаемся в консоль и переходим в директорию в которую был скачан дистрибутив Grub4Dos. В моем случае это директория /root/Downloads. Переход по указанному пути осуществляется командой cd /root/Downloads. Выведем содержимое данной папки командой ls -l, чтобы убедиться в наличии скачанного файла.


Теперь выполним распаковку скачанного архива в папку G4D. Создадим папку командой mkdir G4D. Теперь командой 7z x -oG4D grub4dos-0.4.6a-2017-11-18.7z распакуем скачанный архив в созданную ранее папку.


Теперь перейдем в папку G4D и выведем список файлов в ней. Для этого выполняем команды cd G4D и следом ls -l.


В созданной нами папке G4D, после распаковки архива, появилась папка grub4dos-0.4.6a. Перейдем в нее (cd grub4dos-0.4.6a) и посмотрим ее содержимое (ls -l).


Из полученного списка файлов, отметим следующие bootlace.com, bootlace64.com и grldr.mbr.

Первые два являются исполняемыми файлами, а точнее консольными программами, и могут выполняться в Linux среде. Предназначены они для осуществления записи MBR Grub4Dos на указанное устройство.

Последний файл, является бинарной копией загрузочной записи загрузчика Grub4Dos. Использовать его можно для ручной записи MBR Grub4Dos через консольную программу dd.

Разберем оба способа записи MBR Grub4Dos.

Способ первый, с помощью программы bootlace(64).com. В зависимости от разрядности системы необходимо использовать соответствующую версию программы bootlace, а именно, для 32-битных систем bootlace.com, а для 64-битных bootlace64.com. Итоговая команда для записи MBR Grub4Dos, в моем случае будет выглядит так ./bootlace.com /dev/sda.


Результат загрузки на данный момент с флешки будет следующим.


Как видим загрузчик работает, так как он пытается найти файл grldr на разделах флешки. Данный файл является основным исполняемым файлом загрузчика Grub4Dos.

Способ второй, с помощью файла grldr.mbr и консольной программы dd. Данный способ будет интересен тем кто любит работу на низком уровне. Так же, небольшая порция информации для понимания последующих действий.

MBR, если коротко, это загрузочная запись диска, располагающаяся в его начале, в первом секторе. В ней содержится код загрузчика (первые 446 байт), информация о разделах (четыре раздела по 16 байт, в общем 64 байта данных), и сигнатура конца загрузочной записи (а именно 2 байта - 55AAh).


В сумме получается 512 байт данных для MBR.

Но если посмотреть внимательно, файл grldr.mbr не равен 512 байтам, он гораздо больше. А именно 8192 байта. Это вовсе не означает, что с данным файлом что то не так.  Все из-за того, что весь код загрузчика Grub4Dos, определяющий его богатый функционал, не может уместиться в 446 байта, отведенных в MBR области диска. Поэтому пришлось разделить загрузчик на несколько частей.


Конкретно в MBR области, располагается код, задача которого запустить на исполнение другой участок кода, более функциональный по своим возможностям. Располагаемый за областью MBR записи. То есть, после первых 512 байт на диске.


Исходя из этого, нам потребуется записать из файла grldr.mbr, на диск, сначала первые 446 байт файла. После чего, записать на диск остаток содержимого данного файла с 513 байта и до его конца. Делается именно так, для того, чтобы не повредить текущую разметку флешки. Выполняются такая двух этапная запись следующими командами:

dd if=grldr.mbr of=/dev/sda bs=446 count=1
dd if=grldr.mbr of=/dev/sda seek=512 skip=512 bs=1


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

Проверим результат загрузки с флешки после выполнения второго способа.


Как можно заметить, вывод немного изменился. Если после первого варианта, присутствовал таймер обратного отсчета, то после ручной записи загрузчика в MBR, таймер отсутствует. Что говорит о том, что версии загрузчика устанавливаемые bootlace.com, и та что находится в файле grldr.mbr отличаются. Собственно, это не особо важно, так как основное ядро загрузчика находится в бинарном файле grldr, который должен располагаться в одном из разделов флешки.


Установка E2B


Весь смысл установки E2B, на данном этапе, сводится к простой распаковке содержимого установочного дистрибутива в корень флешки. Получить его можно на официальном сайте проекта E2B, по ссылке http://www.easy2boot.com/download.


Скачиваем установочный дистрибутив по указанной выше ссылке. Пусть вас не пугает тот факт, что мы скачиваем дистрибутив для операционной системы Windows (sfx архив), и что на сайте нет дистрибутивов для других ОС. В этом нет ошибки.

По завершении скачивания, возвращаеся в консоль и очищаем экран от всех предыдущих наших действий, командой clear. После переходим в папку со скачанным дистрибутивом E2B (cd /root/Downloads).  Выведем ее содержимое командой ls -l.


Создадим папку E2B командой mkdir E2B, и выполним в нее распаковку SFX архива Easy2Boot_v1.96A.exe командой unzip -d E2B Easy2Boot_v1.96A.exe.



Перейдем в папку E2B (cd E2B) и просмотрим ее содержимое (ls -l). Чтобы убедиться, что распаковка прошла успешно.


Создадим папку для монтирования файловой системы флешки. В моем случае, это будет папка /mnt/usbflash. Выполняем команду mkdir /mnt/usbflash.


Теперь смонтируем файловую систему флешки по созданному выше пути. Выполняем для этого команду mount /dev/sda1 /mnt/usbflash.


Небольшое отступление. Если раздел флешки отформатирован в файловую систему NTFS, то команда монтирования будет иметь следующий вид mount -t ntfs-3g /dev/sda1 /mnt/usbflash. А в случае с файловой системы FAT32, команда будет такой  mount -t vfat /dev/sda1 /mnt/usbflash.

Убедится, что наша флешка смонтирована корректно. Выполним для этого команду mount | grep sda1.


И последний шаг, скопируем файлы распакованного дистрибутива E2B на смонтированную флешку. Выполним для этого команду cp -rfv /root/Downloads/E2B/* /mnt/usbflash/.



Проверим содержимое флешки (ls -l /mnt/usbflash).


Просмотрим так же информацию о занятом пространстве после выполнения копирования. Команда df -h /dev/sda1.


Как видно из результатов, после копирования файлов E2B, свободное пространство флешки уменьшилось на 556МБ.  Осталось размонтировать нашу флешку, и проверить ее загрузившись с нее.

Размзмонтирование выполняется с помощью команды umount /dev/sda1.


Проверяем результат загрузившись с флешки 😍.



Итог


Несмотря на размер статьи, вся установка занимает максимум 15 минут, неспешных действий. Конечно данный метод не сравнится с установкой в ОС Windows, в плане удобства. Но, на мой взгляд, в полностью ручной установке, а именно она здесь и рассмотрена, есть свой особой интерес. Отмечу, я не рассматривал действия по загрузке ISO образов. Данный процесс абсолютно схож с действиями проделанными в предыдущей статье про E2B.

Надеюсь данный материал был полезен для вас. А на этом ручную установку E2B можно считать законченной 😅.

Комментариев нет :

Отправить комментарий