Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS и GNU GRUB (часть 2)

Модерирует : gyra, Maz

gyra (06-12-2016 03:18): GRUB4DOS и GNU GRUB (часть 3)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

dialmak



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bootfile входит в пакет  TeraByte OSD Tool Suite Pro (TBOSDTS). Есть версия DOS/Linux и Windоws. Там же есть и скудные доки.
 
Пару слов как работает запуск образов через bootfile.
Кто откроет мой файл выше run_ifd.bat - тот найдёт строки запуска образа.

Код:
"%~dp0bootfile" "%~dp0ifd.bin" /keep /noui /retry /delay
if %errorlevel% NEQ 0 (
"%~dp0bootfile" "%~dp0ifd.bin" /retry /delay
)

Почему записано так, а не иначе я напишу в конце.  Сейчас важно понять, что для запуска образа достаточно в принципе одной строчки:

Код:
"путь\bootfile" "путь\ifd.bin"

 
Должен отметить, что наш образ имеет два "секрета".  
 
Секрет 1. Размер файла образа на 512 байт больше, чем занимает сам образ.  
 
   
 
Размер образа согласно UltraISO 4096*512=2097152, истинный размер файла 2097664.
Естественный вопрос - зачем эти 512 байт?  
В данную область файла bin 512 байт будет записан нулевой сектор диска при запуске образа. Запишет это всё автоматом bootfile. Кто в курсе - в нулевом секторе диска расположен код MBR и таблица разделов.
Как они делаются - эти 512 байт.  
Вообще то есть спец-аргумент /B для этого в команде ADD VIRTDRV из TBOSDT Pro (который входит в  пакет TBOSDTS) при создании FAT/FAT32 виртуального диска.  
 
   
 
НО. Если ФС нужна другая или образ уже готов? Это можно сделать тривиальной командой copy. Нужно подготовить в НЕX редакторе файл-пустышку 512.bin размером 512 байт и выполнить
Код:
copy /b my.img + 512.bin my.bin

 
Секрет 2. В образ нужно добавить файл bootfile для соответствующей ОС. И где-то должна быть команда bootfile /restore. Что это и зачем - напишу позже.
 
Теперь, когда мы узнали о секретах - можно проследить и кратко логику работы.
 
1. После запуска из винды "путь\bootfile" "путь\мой образ" утилита bootfile проверяет образ на резервную область 512 байт (секрет 1) и если не находит - заканчивает работу с соответствующим сообщением.
2. Далее проверяется, что образ непрерывен, если образ фрагментирован - утилита bootfile заканчивает работу с соответствующим сообщением.
3. Далее проверяется, что запуск произведён из HDD, а не из сьёмных устройств - если из сьёмных устройств утилита bootfile заканчивает работу с соответствующим сообщением..
4. Производится копирование нулевого сектора диска в последний сектор образа! Это бекап.
5. Наконец проверяется есть ли  ключ /keep.  Если ключ есть - код MBR текущего диска переписывается на простейший, в таблицу разделов добавляется новый основной активный раздел с координатами начала и конца образа. Если добавление нового основного активного раздела невозможно - утилита bootfile заканчивает работу с соответствующим сообщением.
6. Кто внимательно смотрел на код run_ifd.bat, тот увидел, что вначале я пробую запустить образ с ключём /keep, но если это невозможно (например это невозможно для GPT дисков или для MBR дисков с 4 основными разделами), то будет запуск БЕЗ ключа /keep. В таком виде запустится по-любому. Bootfile код MBR текущего диска переписывает на простейший, старую таблицу разделов обнуляет и в таблицу разделов добавляется новый один основной активный раздел с координатами начала и конца образа.  
7. Перегрузка и запуск из MBR. Так как активный раздел - это раздел образа, то он и запустится.
8. И последнее. Нужно ведь когда-то вернуть родной код MBR и родную таблицу разделов (для GPT диска возвращается фиктивный наследственный/protective MBR). Обычно это делается первой командой после загрузки образа  bootfile /restore. То есть данная команда возьмёт бекап нулевого сектора и восстановит его взад. НО. Не всегда это выгодно делать сразу же первой командой. В некоторых случаях это удобнее сделать перед выключением и перегрузкой. Смотря от образа.
 
Примеры образов для запуска из bootfile
 
Running Image for DOS Without a Boot Disk
Running Image for Linux Without a Boot Disk
Image for Windоws для запуска из bootfile делается просто из 3 пункта меню TBWinRE Builder
 
   

Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 15:33 19-10-2014 | Исправлено: dialmak, 16:36 19-10-2014
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » GRUB4DOS и GNU GRUB (часть 2)
gyra (06-12-2016 03:18): GRUB4DOS и GNU GRUB (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru