Пользовательского поиска
Вторник, 23.10.2018, 07:15
Приветствую Вас Гость | RSS
Главная | Руководства | Регистрация | Вход
Меню Проекта
Категории каталога
Форма входа
Логин:
Пароль:
Поиск
Мы Рекомендуем:
Мнение Общественности
Что для вас предпочтительней?
1. Настроить Мультизагрузку по инструкциям.
2. Скачать готовый проект по частям.
Всего ответов: 3765
Статистика

Всего на Сайте: 1
Гостей: 1
Пользователей: 0
GreenFlash
Главная » Статьи » Основные Инструкции » Windows Системы

Совмещение нескольких LiveCD на флэш (USB-HDD) (FAT-NTFS)
Совмещение нескольких LiveCD на флэш (USB-HDD).
(совмещение нескольких папок Programs).

Данная тема уже поднималась на форуме и я предлагал решение данной проблемы здесь, но статья так и не была написана. С течением времени успел немного измениться Grub и образ моего мышления.

Большинство используемых виндовых LiveCD (далее по тексту лайв) используют папку Programs. При совмещении нескольких лайв на флеш это становиться проблемой, я предлагаю свой вариант решения этой проблемы, конечно далеко не идеальный, но все-таки менее трудозатратный чем правка этих лайвов вручную, под другие папки.

Ограничения:
1. Переключение между лайвами не работает из-под Plop. (Т.е. если вы хотите использовать Plop необходимо будет предварительно переключиться между лайвами и затем подгрузить Plop)
2. Количество совмещаемых лайвов ограничено количеством букв латинского алфавита (можно расширить еще за счет цифр, тогда еще +10, но это уже тогда будет расширяться Вами).

Преимущества перед ранее предлагавшимся вариантом:
- данное решение работает также под файловой системой NTFS!!!).
- не надо будет создавать (модифицировать) образ дискеты переключения под каждый новый лайв, теперь образ дискеты переключения – один для всех лайвов.
- в случае с USB-HDD переключение производится независимо от раздела (наблюдались проблемы если USB-HDD имел 2 основных раздела).
- можно зацеплять более 20 лайвов.

Принцип и краткое описание:
Основной принцип заключается в переименованиях папок Programs на флэшке.
Работает это следующим образом:
- в меню Grub Вы выбираете пункт переключения на требуемый лайв;
- загружается оболочка ДОС (образ дискеты);
- производится переименование папок, замена файлов меню под «правильные»;
- возврат в меню Grub;
- в меню Grub Вы выбираете пункт загрузки требуемого лайва.

Для начала немного практической теории.
Общий принцип размещения лайва на флэш:
1. Содержимое папки I386 из iso-образ лайва копируется на флэш в папку MININT (это стандартное имя, прописанное в загрузчик лайва).
2. Содержимое папки Programs, из iso-образ лайва, копируется на флэш в папку PROGRAMS (а это имя определил разработчик лайва, или его программа-конструктор, которой производилась сборка лайва).
3. Для запуска лайва в меню Grub создается пункт следующего содержания:

Code
title Загрузить LiveCd  
find --set-root /minint/setupldr.bin
chainloader /minint/setupldr.bin

При этом любой лайв запуститься и будет работать без проблем.

При размещении на диске нескольких лайвов имя папки MININT меняется, но при этом загрузчик лайва должен знать откуда ему брать нужные файлы. Т.е. необходимо модифицировать (пропатчить) файл загрузчика - setupldr.bin. Имя папки конечно можно сделать любым, но моя рекомендация – достаточно изменить всего одну букву, например MININN, это значительно сократит количество ошибок и неудачных попыток модификации загрузчика.
Редактирование файла-загрузчика setupldr.bin производится любым Hex-редактором (например WinHex). Все надо делать аккуратно и внимательно, иначе работать не будет :).
Открываем setupldr.bin, поиском находим слово minint рядом с ним в строке будет так:

Code
…\$WIN_NT$.~BT…\...notsetup.sif….\...\minint\txtsetup.sif….txtsetup.sif

здесь исправляем minint на нужное (например для NervOS у меня это будет mininn)
Ищем дальше, со следующим minint (которое мы будем править) в строке будет так:
Code
….fdisk…milti(0)disk(0)fdisk(%d)….\minint\system32\...\CMDCONS\...

здесь также правим на нужное.
Другие minint не трогаем, иначе не будет работать!!!!
На рисунке пример до правки и после правки:

На этом вводная теоретическая часть закончена, приступаем к практической – а именно к совмещению нескольких лайвов.

Здесь я выложил работоспособный, уже готовый комплект того, что вам понадобиться в дальнейшем включая эту инструкцию (в комплекте отсутствуют только сами лайвы, если хотите, можете их подложить, все будет работать). В этом приложенном примере основной и является дискета образа winlive.ima (лежит в \BOOT\diskettes). Все остальное можно добавить самостоятельно.

Если Вы не хотите разбираться с правкой образа дискеты, а просто взять готовое и использовать (в том числе добавлять свои лайвы) необходимо учесть следующие моменты:
1. Имена папок лайв имеют следующий вид:
MININ* - папка самой лайв.
PROG* - папка Programs этой лайв,
где * - любая буква латинского алфавита, для каждого лайв своя - 1 буква.
2. Файлы меню лежат в папке \BOOT\MENU и имеют следующие имена:
winlive.* (winlive_eng.*- для английского варианта, если есть)
* - та же буква что и у папок лайва
3. В той же в папке что и файлы меню (в данном случае это \BOOT\MENU) должен лежать файл grub.exe.
Образ дискеты для переключения между лайвами, лежит в каталоге \BOOT\diskettes\WINLIVE.ima. Но это не критично, и если вы переложите ее в другое место, просто не забудьте внести исправления в меню. Так же, в примере, уже приложены «пропатченные» файлы загрузчиков рассматриваемых лайвов.

В качестве примера приведены 3и лайва:
AlkidLive CD, BartPe by Vincome, NervOS by Loner.

1. AlkidLive CD версия Full - для нее я сделал папки MININF (есть еще версия Standart, поэтому я и поставил на конце букву F), PROGF и файл меню winlive.f (winlive_eng. f – для английского варианта).
Файл меню содержит в себе загрузку непосредственно самого Alkid и переключение на 2 других сборки:

Code
title Переключиться на загрузку BartPE
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT T\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Переключиться на загрузку NervOS
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT N\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Загрузить Alkid Live CD Full Edition
find --set-root /mininf/setupldr.bin
chainloader /mininf/setupldr.bin

2. BartPe by Vincome - ее папки MININT (оставил стандартное имя, во избежание лишней работы smile ), PROGT и файл меню winlive. t (winlive_eng. t – для английского варианта). Этот файл меню содержит в себе загрузку непосредственно самого BartPe и переключение на 2 других сборки:

Code
title Переключиться на загрузку Alkidz
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT F\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Переключиться на загрузку NervOS
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT N\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Загрузить BartPeRecovery LiveCd  
find --set-root /minint/setupldr.bin
chainloader /minint/setupldr.bin

3. NervOS by Loner - ее папки MININN, PROGN и файл меню winlive. n (winlive_eng. n – для английского варианта). В нем так же содержится загрузка самого NervOS и переключение на 2 других сборки:

Code
title Переключиться на загрузку Alkidz
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT F\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Переключиться на загрузку BartPE
map --mem /BOOT/diskettes/WINLIVE.ima (fd0)  
map --hook  
write --offset=0x44 (fd0)/AUTOEXEC.BAT T\
chainloader (fd0)+1  
rootnoverify (fd0)  
map --floppies=1  
boot

title Загрузить NervOS
find --set-root /mininn/setupldr.bin
chainloader /mininn/setupldr.bin

Т.е. для совмещения нескольких лайв (добавлении своих) необходимо:
1.Создать папки с именем MININX , PROGX,
2. Файл меню winlive. x (winlive_eng. x – для английского варианта), с загрузкой этого лайва и пунктами переключения на другие лайвы.
3. В пункте переключения на эту лайв так же указывается этот X:
write --offset=0x44 (fd0)/AUTOEXEC.BAT X\
Везде одна и та же буква!!!

По этому принципу добавляете свои лайвы. После того как флэш будет создана, при первом запуске будет необходимо переключиться между лайвами, чтобы файлы и каталоги переименовались как положено и все встало в рабочее положение :).
Это все!!!

Для тех, кто хочет изменить «стандартные» параметры, оговоренные выше: имена папок, пути, имена файлов меню, должны сделать следующее:

1.Извлечь из файла-образа дискеты переключения - WINLIVE.ima, файл AUTOEXEC.BAT.

2. В нем (в самом конце):

58 строка:
SET TAGFILE=\BOOT\MENU
– задает путь положения файлов меню

61 строка:
SET WINLIVE=MININ
– задает шаблон имени папки лайва (без последней буквы)

62 строка:
SET PROLIVE=PROG
– задает шаблон имени папки Programs лайва (без последней буквы)

65-66 строка:
COPY %TAGFILE%\WINLIVE.%SBOR% %TAGFILE%\WINLIVE.LST
COPY %TAGFILE%\WINLIVE_ENG.%SBOR% %TAGFILE%\WINLIVE_ENG.LST

– производят копирование с переименованием файлов меню (при переключении между лайвами), если вы будете менять имена файлов меню, необходимо будет их здесь поправить.
3. Положить исправленный AUTOEXEC.BAT в WINLIVE.ima, перепаковать образ и вернуть его на флэшку.

Ну и в любом случае в папке с меню должен лежать файл grub.exe – он необходим для возврата в меню.
Предложения по доработке только приветствуются. Обсуждение предлагаю вести в уже созданной теме.
Спасибо Taurum за тестирование!!! smile

Категория: Windows Системы | Добавил: Rusmisterr (25.12.2009) | Автор: BlackRodger
Просмотров: 29140 | Комментарии: 3 | Рейтинг: 4.2/5
Всего комментариев: 3
avatar
1
Идея очень интересная, довольно заковыристая, но рабочая. Но рабочая только на флешке.
А что если попробовать более легкий способ?
Свалить все содержимое папок Programs в одну папку biggrin
По крайней мере в указанных трех сборках большинство подпапок не пересекаются, а с теми которые пересекаются - немного пофантазировать, например, оставить более новую или подправить варианты запуска.
Надо бы попробовать на досуге это реализовать smile
avatar
2
Ну это очень просто: свалить все программы в одну папку Programs.Далее достаточно будет пропатчить setupldr.bin в каждом лив сд, и все можно загружаться.
Но мне такой вариант не нравится, сборки обновляются, софт тоже, каждый раз перелопатить весь софт с нуля это очень долго, но все же такой вариант имеет право на сушествование. happy
avatar
3
Сборки на основе win2003 после редактирования setupldr работать не будут. Там встроенная проверка контрольной суммы в загрузчике. Как решить проблему описано здесь
avatar
Copyright GreenFlash © 2018
Рейтинг@Mail.ru