[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
-*** Лабораторная работа: мультисистемная флешка ***-
Назначение проекта:
  • Подготовка флеш-накопителя для загрузки различных загрузчиков (BIOS/UEFI x64);
  • Наполнение подготовленного флеш-накопителя дистрибутивами (Windows/Linux), сборками (загрузочными дисками), полезными утилитами.

Представляет собой:
    Набор командных бат-файлов и вспомогательных утилит.

Краткое описание принципа работы:
  • С помощью diskpart размечает флешку;
  • Форматирует в FAT32 без ограничений на размер раздела;
  • Основным загрузчиком в MBR ставит Xorboot 0.65;

Важно!


В стартовом меню Xorboot на некоторых BIOS могут не работать клавиши "вверх-вниз".
В этом случае выбор пунктов меню нужно производить через "горячие клавиши": 1-7 и P, R, S.
  • Помещает в корневую папку подготовленного флеш-накопителя командный бат-файл zrun.cmd, с помощью которого осуществляется дальнейшее управление проектом.

Список загрузчиков:
  • Syslinux 6.03
  • Syslinux 4.07
  • Bootmgr 10
  • Bootmgr 7
  • Grub4Dos 0.4.6
  • Grub4Dos 0.4.5
  • GRUB2 2.02
Поддержка EFI SecureBoot:
    Да

SecureBoot

  • Начальным загрузчиком стоит связка preloader+grub2 с ЦП KasperskyLab;
  • Может быть заменён на связку shim+grub2 с ЦП Canonical или оригинальный от Microsoft Corp., или «Диспетчер UEFI-загрузчиков»;
  • Также реализована возможность загрузки в режиме SecureBoot самоподписанного grub2 по методу ValdikSS (требует ручной установки ЦП; см. «Управление загрузчиками»)

Дополнительно

Папка с дополнительными утилитами \boot\boot\utils:
  • компилятор загрузчика grub2 (можно собрать ядро со своими модулями и своим конфигом)
  • комплект xorboot (сам установщик и мой модуль - можно перекроить и на флешку вбить)
  • комплект wimboot с примерами для загрузчиков g4d, grub2, syslinux.

Управление


Файл zrun.cmd в корне созданной флешки - это Панель управления *** Multi-loader flash ***. При запуске предлагает меню из четырёх пунктов:
  • Управление дополнениями
  • Управление загрузчиками
  • Управление конфигурациями ("ручная" правка меню загрузчиков и их бэкап/восстановление (не рекомендуется!)
  • Управление доп.возможностями (работа с x-lets и бэкап)
* В дальнейшем, количество пунктов может расти.
Управление дополнениями
Дополнение - это файл(-ы), расширяющий(-е) возможности и функционал проекта. Это могут быть загрузочные образы, сборки, набор программ и т.п.
Дополнение можно:
  • установить
  • удалить
  • проверить целостность
  • переустановить (= удалить + установить)
Установка дополнения
Требует наличия сети Интернет, откуда происходит скачивание дополнения.
* Внимание! Все операции по сохранению, распаковке, обработке происходят по пути %TEMP%. Убедитесь, что там достаточно места.
Процесс: загружаются нужные файлы, вычисляется CRC32 для каждого, файлы переписываются на флешку. Если необходимо, добавляются пункты меню в меню соответствующих загрузчиков.
Удаление дополнения
Процесс: удаляются файлы дополнения с флешки. Если необходимо, удаляются пункты меню из меню соответствующих загрузчиков.
Проверка целостности
Позволяет отследить порчу/удаление файлов дополнения из-за деградации флешки, действий вирусов/антивирусов, перекрытия файлов дополнения другими файлами.
Процесс: согласно созданному при добавлении дополнения списку CRC32, проверяются файлы дополнения.
Переустановка дополнения
Удаляет и заново устанавливает дополнение. Обычно используется для обновления дополнения.
* Сама система также является дополнением (System Core) и может быть обновлена переустановкой.
Управление загрузчиками
Загрузчик BIOS
Основным загрузчиком является Xorboot 0.65. Он записан в начальные сектора флешки и позволяет загружать все остальные загрузчики проекта. Существует возможность сменить Xorboot на:
  • GRUB2 - полностью записывается в MBR. Загружает среду GRUB2.
  • Syslinux 6.03/4.07 - оригинальные загрузчики MBR и PBR. Загружает среду Syslinux.
  • Wee63/127 - полностью записывается в MBR. Позволяет загружать некоторые загрузчики и несжатые образы FDD.
Существует возможность сразу (без меню выбора загрузчика) загружаться в среду Grub4Dos или BOOTMGR. Для этого нужно выбрать загрузчик из секции "MBR + BOOTLDR":
  • Grub4Dos - загрузчик MBR (PBR не используется).
  • USB-HDD+ - стандартный загрузчик MBR с улучшенной поддержкой загрузки с флешки.
  • USB-ZIP+ - загрузчик MBR, позволяющий эмулировать USB-ZIP устройство.
После чего появится возможность выбора среды:
  • Grub4Dos 0.4.6
  • Grub4Dos 0.4.5
  • BOOTMGR v.10
  • BOOTMGR v.7
Примечание:
  • менять загрузчик рекомендуется только в случае проблем с загружаемостью стандартного загрузчика проекта Xorboot 0.65
  • загрузчик USB-ZIP+ необратимо "смещает" рабочий раздел флешки hd0,0 -> hd0,3
  • загрузчик MBR Grub4Dos обладает высокой загружаемостью и рекомендуется в "сложных" случаях.
  • загрузчик PBR (для MBR = USB-HDD+/USB-ZIP+) соответствует выбираемой среде G4D/BMGR
Загрузчик UEFI
Существует возможность выбора начального загрузчика для UEFI режима. Это:
  • связка preloader + grub2 с ЦП от Kaspersky (по умолчанию)
  • связка shim + grub2 с ЦП от Canonical
  • комплект от ValdikSS для обхода SecureBoot (preloader выставляет политику "разрешить всё")
  • Windows Boot Manager
  • «Диспетчер UEFI-загрузчиков» (при запуске позволяет выбрать загрузчик из перечисленных выше)

Как использовать метод «обход SecureBoot»


Можно менять версию используемого Windows Boot Manager: 10 (по умолчанию) или 7
Выбранная версия WBM будет грузиться:
  • как самостоятельный загрузчик bootx64.efi (при выборе WBM в качестве начального)
  • из меню GRUB2 (для загрузки WIM-ядер)

Работа с образами


Загрузчик Grub4Dos позволяет выполнять динамическую загрузку образов дисков. Папка \images в корне флешки используется для такого рода загрузки.
Порядок действий:
  • скопировать образ в соответствующую подпапку (см. ниже)
  • в основном меню Grub4Dos нажать клавишу "L"
Поддерживается работа с:
  • образы FDD/HDD
  • образы CD/DVD
  • загрузочные образы WIM
  • конфиги Grub4Dos
  • конфиги BCD
Назначение подпапок:
  • BCD:        конфиги BCD
  • CONFIG:    конфиги Grub4Dos
  • EFI:        efilets (см. ниже)
  • FLOPPY:    образы дисков без MBR (FDD)
  • HDD:        образы дисков с MBR (HDD)
  • ISO:        образы CD/DVD
  • LINUX:    образы CD/DVD маппируются в раздел (hd0,2). Образ должен быть дефрагментирован.
  • WIM:        загрузочные образы WIM
Загрузка образов
При загрузке образов FDD/HDD/ISO предлагаются варианты:
  • подождать 10 сек или нажать Esc: прямая загрузка образа с флешки
  • нажать Enter: предварительная загрузка образа в память
При загрузке образов WIM предлагаются варианты:
  • подождать 10 сек или нажать Esc: загрузка с помощью BOOTMGR ver.10
  • нажать Enter: загрузка с помощью BOOTMGR ver.7 (позволяет обходить проблемы с цифровыми подписями)
Работа с efilets
Папка \images\EFI может содержать:
  • файлы с расширением .EFI (будут добавлены как пользовательские утилиты)
  • текстовые файлы (будут добавлены как пользовательские меню GRUB2)
  • подпапки
Каждая подпапка должна содержать или:
  • файл BCD (в подпапку будет автоматически скопирован системный bootx64.efi)
или
  • файл bootx64.efi со вспомогательными файлами и подпапками
Для создания/обновления efilets в «Панели управления» (zrun.cmd) выбрать «Управление доп.возможностями» → «Обновление efilets»
* Примечания:
  • авторский BCD обычно расположен в папке \EFI\MICROSOFT\BOOT\
  • в подпапку с файлом BCD можно скопировать авторский bootx64.efi вместе с файлом(-ами) оформления .MUI в соответствующих подпапках
  • в подпапку можно скопировать содержимое авторской папки \EFI\BOOT\ (таким образом можно добавить, например, загрузку авторского rEFInd)
Специальные пункты меню
Пункт меню: Load images by MEMDISK... >
На некоторых BIOS загрузка образов средствами Grub4Dos не работает. В этом случае можно использовать загрузку образов через утилиту MEMDISK
Пункт меню: LINUX: clean (hd0,2)
Очистить раздел (hd0,2) после маппирования в него ISO-образа.
Пункт меню: Load images by swap FLOPPY/HDD, ISO/LINUX... >
Попробовать загрузить образ(-ы) из папки FLOPPY (образ без MBR) как HDD (образ с MBR) и наоборот.
Попробовать загрузить образ(-ы) из папки ISO (может быть фрагментирован) как LINUX раздел диска (должен быть непрерывным) и наоборот.
Полезно, если изначально способ работы с образом был выбран неверно.
* Примечания:
  • Имя и расширение файла образа может быть любым (без пробелов и русских букв). Зарезервировано только readme.txt
  • Образы FDD/HDD/ISO могут быть сжаты в GZ
  • Ограничения Grub4Dos 0.4.5:
    • при прямой загрузке с флешки требует дефрагментации образа
    • не работает с образами WIM
Советы:
Для загрузки сторонней сборки, если она использует в качестве загрузчика Grub4Dos, можно поместить menu.lst этой сборки в папку \images\CONFIG
Для загрузки сторонней сборки, если она использует в качестве загрузчика BOOTMGR, можно поместить BCD этой сборки в папку \images\BCD

Работа с x-lets

Создание wimlets
Образы из папки \images\WIM можно добавить в основное меню загрузчиков без создания дополнения. Порядок действий:
  • Скопировать загрузочный образ WIM в папку \images\WIM
  • Выполнить «Панель управления» (zrun.cmd) → «Управление доп.возможностями» → «Обновление wimlets»
  • Согласиться с добавлением образа в загрузочное меню
  • Ввести название пункта меню

Для удаления образа из основного меню загрузчиков:
  • Удалить образ WIM из папки \images\WIM
  • Выполнить «Панель управления» (zrun.cmd) → «Управление доп.возможностями» → «Обновление wimlets»

* Примечания:
  • образ WIM не должен содержать в названии пробелов и не-английских букв, должен иметь расширение .wim
  • образ будет добавлен в меню Windows Boot Manager UEFI только в том случае, если образ поддерживает разрядность х64
  • название меню можно вводить по-русски, но в меню GRUB2 будут отображаться знаки ??? вместо русских букв

-
Создание vhdlets
Можно добавлять в загрузку VHD-контейнеры. Поскольку для работы требуется NTFS, то располагаться VHD должны на сторонних разделах/дисках, которые будут присутствовать при загрузке MLF.
Порядок действий:
  • Выполнить «Панель управления» (zrun.cmd) → «Управление доп.возможностями» → «Обновление vhdlets»
  • Выбрать VHD на стороннем разделе/диске
  • Ввести название пункта меню
Для удаления пункта меню:
  • Удалить/переименовать VHD или отключить раздел/диск, на котором он расположен
  • Выполнить «Панель управления» (zrun.cmd) → «Управление доп.возможностями» → «Обновление vhdlets»
  • Согласиться с удалением
* Примечания:
  • выбор контейнера реализован через командлет powershell, он запускается довольно медленно, не паниковать
  • в меню UEFI добавляются только контейнеры с поддержкой х64
  • если при загрузке MLF раздел/диск с контейнером VHD будет недоступен, то BOOTMGR v7 будет вылетать с ошибкой, а BOOTMGR v10 не покажет пунктов меню с загрузкой VHD

Пример работы с vhdlet:
  • берём HDD в USB-Box
  • устанавливаем MLF и аддон BootItBM (сейчас является частью аддона «TeraByte Software Suite»)
  • загружаемся с него, с помощью BootItBM сжимаем первый раздел, на свободном месте создаём раздел NTFS
  • загружаемся в нормальную винду, переписываем на раздел NTFS контейнер(-ы) VHD в произвольную папку(-и)
  • выполняем инструкцию по добавлению

-
Управление efilets
Работа с efilets рассмотрена в разделе «Работа с образами»
-
Управление addlets
Addlet - это ещё один способ (наряду с Дополнениями) расширить возможности и функционал проекта. С помощью addlets можно загрузить утилиты, установочные дистрибутивы, наборы ПО, дистрибутивы Windows; зайти на интернет-ресурсы для самостоятельной загрузки необходимого ПО.
Как правило, загрузка происходит в папку \programs. Исключения:
  • набор драйверов SDI записывается в папку \drivers
  • дистрибутивы Windows записываются в папку \distros.
В отличии от Дополнений, addlets только скачивают и записывают ПО на флеш-носитель, но не позволяют управлять им в дальнейшем (то есть задачи контроля целостности информации и её удаления возлагаются на самого пользователя).
Функционал addlets выделен в отдельный модуль, который динамически подгружается из сети интернет. Поэтому расширение списка ПО, доступного для записи на флешку с помощью механизма addlets, происходит без необходимости обновления всего проекта.
* Примечания:
  • ПО, уже записанное на флешку (если это не ссылка на интернет-страницу ), помечается знаком «*» перед названием соответствующего addlet
  • ПО, которое скачивается непосредственно с сайта производителя, помечается как «online»; в остальных случаях приводится текущая версия

Бэкап: создание/восстановление

Бэкап: создание/восстановление
Создание
Выполнить «Панель управления» (zrun.cmd) → «Управление доп.возможностями» → «Создать резервную копию»
По умолчанию создаётся C:\mlf_backup.wim (можно в окне 7zG изменить путь и параметры архивации). По сути, просто создание архива всей флешки. Можно делать и самому, вручную.
Формат:    любой из поддерживаемых 7z (7z, ZIP, RAR, WIM, ISO, GZ и т. п.)
Имя:        mlf_backup.* (расширение может быть любым, в т.ч. нестандартным. Например: mlf_backup.maximum, mlf_backup.01_04_2019 и т.п.)
Восстановление:
  • Поместить архив/образ mlf_backup.* рядом с PrepFlash.cmd
  • Запустить PrepFlash.cmd и выбрать флеш-накопитель
  • После разметки флешки согласиться на восстановление из резервной копии. При этом:
    • архив будет развёрнут на флешку
    • удалён аддон System Core
    • установлен аддон System Core без обращения в Интернет.

Таким образом, для подготовки флешки нужны только два файла: system.7z (сама система MLF) и файл бекапа mlf_backup.* ранее созданной флешки со всеми аддонами и нужным ПО.

ЧаВо

В: Установил дополнение Х, но в режиме UEFI нет загрузки ядра(-ер) Windows. Почему?
О: Для запуска ядер Windows из загрузчика GRUB2 (в режиме UEFI) выберите пункт меню "Windows Boot Manager...    >"

Благодарности

dimo70, apostol, goga8686 за активное тестирование и выявление всякого.
vovan1982, AZJIO за файл справки о проекте.
[журнал]Загрузить Загрузить MLF2


Последний раз редактировалось: Ander_73 (2021-07-31 21:18), всего редактировалось 44 раз(а)

[Цитировать]

    tsuaf
  • 23947
  • Стаж: 4 года
  • Сообщений: 33
  • Репутация:0

    [+] [-]
Обновилась сборка от SergeiStrelec.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
tsuaf, а я обновил, в обед ещё.

[Цитировать]

    tsuaf
  • 23947
  • Стаж: 4 года
  • Сообщений: 33
  • Репутация:0

    [+] [-]
Ander_73, а я по привычке смотрю журнал, а там изменения датированы маем месяцем, поэтому не догадался проверить так. Ок, спасибо, обновимся.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
tsuaf, да, обленился андер, верно подмечено ah

[Цитировать]

    lowe.story
  • 16005
  • Стаж: 6 лет 11 месяцев
  • Сообщений: 57
  • Репутация:6

    [+] [-]
aa
Начальным загрузчиком стоит связка preloader+grub2 с ЦП KasperskyLab;
Может быть заменён на связку shim+grub2 с ЦП Canonical или оригинальный от Microsoft Corp., или «Диспетчер UEFI-загрузчиков»
Что за ЦП?

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
Цифровая Подпись

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73, возможно ли как то обозначить в MLF компоненты, которые устаревшие? Например сравнить по размеру папки или файлы и обозначить как то в меню, что есть новость.
Не знаю как будет проще сделать. Я так представляю, например новая версия в сети на HDDaRTs. Скрипт проверяет по дату или размеру и появляется звездочка после имени или цвет меняется?
Я знаю что уже были подобные вопросы о версии и твое мнение известно по етому вопросу, но хотя бы на наличие изменения. aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    WindR
  • 327
  • Стаж: 9 лет 1 месяц
  • Сообщений: 31
  • Репутация:3

    [+] [-]
Ander_73, добавь пожалуйста проверку свободного места на диске, куда будут распаковываться временные файлы.

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
WindR, я уже писал когда-то, что рекомендуется держать свободным удвоенный размер самого большого аддона (на сегодня это, вроде, RusLive), то есть в папке %TEMP% должно быть свободно ~16Гб.
Простейший способ - добавить в zrun.cmd в корне флешки первой строкой:
set tmp=$:\Path\to\TEMP\folder
где
$: - диск, где много места
\Path\to\TEMP\folder - путь к папке для временных файлов.
---
Да, это поломает CRC файла, но то такое...

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73, как можно реализировать загрузку XMPE.wim, или любого другого XPPE через MLF? aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
dimo70, положить WIM в нужную папку (/rdpath) и прописать запуск SETUPLDR в конфигах G4D, GRUB2, SysLinux.
Формализации запуск XPPE не поддаётся.

[Цитировать]

    Sys_Normik
  • 19298
  • Стаж: 5 лет 5 месяцев
  • Сообщений: 73
  • Репутация:1

    [+] [-]
  • Откуда: Севастополь
Здравия! Не подгружает убунту. Ошибка выходит.

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73, подтверждаю. Оба убунту сразу выходит ошибка что ресурс не найден. aa

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 1 месяц
  • Сообщений: 3586
  • Репутация:127

    [+] [-]
Sys_Normik, dimo70, камрады, не велите казнить, дайте слово молвить.
Список линуксов просто давно не обновлял. Займусь.
Проверять доступность дистров надо так:

[Цитировать]

    dimo70
  • 17296
  • Стаж: 6 лет 3 месяца
  • Сообщений: 3990
  • Репутация:26

    [+] [-]
  • Откуда: BG
Ander_73, я только решил проверить.
Обновлял сверху только. ac
Вообще не пришло в голову что надо и внизу обновлять. Кажеться в данном списке лучше нижний ряд сверху поставить. aa

_________________
Подпись отключена за нарушение правил форума

Страница 48 из 56


Показать сообщения:    

Текущее время: 28-Мар 14:29

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы