Делаем usb флешку-терминатора: ventoy + netboot.xyz + bitlocker
Обновлено 23.02.2024
Приветствую!
Недавно я запостил опрос в телеграм и пользователи моего канала проголосовали за)
Сегодня создадим мультизагрузочную флешку для: установки Linux/Windows локально, установки Linux по интернету + обычный раздел под файлы и + шифрованный раздел для чувствительной информации (подключается нативно в Linux и в Windows). И так, поехали.
Присоединяйтесь к нашему каналу: t.me/r4ven_me и чату: t.me/r4ven_me_chat в Telegram .
Предисловие
В чем суть. На usb-флешке будет 4 раздела:
- Загрузочный раздел Ventoy (утилита запуска установочных ISO образов). Почитать, что это такое можно здесь;
- Обычный раздел для хранения ISO образов и обычных файлов;
- Загрузочный раздел netboot.xyz для запуска и установки Linux через интернет. У меня была по данной утилите отдельная статья: netboot.xyz – Установка Linux онлайн с USB флешки;
- Шифрованный раздел bitlocker (работает в Linux и Windows) для хранения конфиденциальной информации. Подробно про Bitlocker тут.
В результате мы получаем флешку на все случаи жизни. Чем больше объем флешки, тем лучше. В данном руководстве будет рассмотрен вариант настройки съемного носителя размером в 32GB.
Сразу предупреждаю, что тестировалось все на системах с UEFI. Настройку в режиме BIOS Lagacy boot не проводил, ввиду отсутствия у меня такой необходимости.
И да, в процессе настройки usb флешки все данные с неё БУДУТ СТЁРТЫ! Поэтому предварительно сохраните с неё все важные файлы, если они там есть. Я вас предупредил:)
Все действия в статье проводились в среде дистрибутива Linux Mint 21.
Подготовка
Для начала скачаем все необходимые утилиты.
Скачивание Ventoy
Переходим на официальный сайт, в раздел загрузок Ventoy, скачиваем версию для Linux:
Нас перекинет на SourceForge, тоже выбираем Linux:
Скачивание netboot.xyz
Также идём на оф. сайт в раздел загрузок netboot.xyz и качаем .img
образ:
Скачивание BitLocker Anywhere For Linux
Пару слов прежде чем продолжить.
Bitlocker – это проприетарная технология шифрования дисков от Microsoft. В Linux также существует своя замечательная открытая подсистема для шифрования дисков – Luks. Но т.к. цель статьи – получить универсальное устройство под различные задачи. Чтобы шифрованный раздел нативно работал в файловом менеджере Linux и в проводнике Windows, я принял решение зашифровать этот раздел с помощью Bitlocker. Как это часто бывает, Linux из коробки прекрасно поддерживает открытие шифрованных с помощью Bitlocker разделов. Windows же в свою очередь, поддерживает только свой закрытый Bitlocker, игнорируя Linux.
Крч, ради универсальности пришлось пойти на компромисс)
Продолжим. Bitlocker доступен из коробки только в Pro версии Windows, но есть альтернативный вариант, использовать ПО стороннего разработчика, у которого есть порт для Linux – это BitLocker Anywhere. Программа платная, но с пробным периодом (чего нам достаточно). Ох уж эта проприетарщина..
Скачиваем BitLocker Anywhere с официального сайта:
Теперь все нужные утилиты скачаны, осталось проверить и определить блочное устройство самой usb флешки в нашей системе Linux Mint.
Проверка съёмного носителя
Открываем терминал и выполняем команду вывода списка блочных устройств:
lsblk
В моём примере это /dev/sda1
. У вас скорее всего будет другое имя. Сравниваем с подключенным устройством в файловом менеджере.
Подробную информацию об устройстве можно вывести с помощью утилиты udisksctl
. Например, так:
udisksctl info -b /dev/sda
Для справки, udisksctl
– консольная утилита управления съемными накопителями в пространстве пользователя.
Приступаем к установке.
Создание раздела Ventoy + обычный раздел под файлы
Распаковываем архив с Ventoy:
Переходим в распакованный каталог, кликаем ПКМ — открыть терминал. И вводим команду установки:
ВНИМАНИЕ!
Команда ниже удалить все данные с указанного устройства. Будьте внимательны, верно укажите имя вашей флешки. Все действия вы выполняете на свой страх и риск.
sudo ./Ventoy2Disk.sh -i /dev/sda -r 10000
-i
– выполнить установку;-r
– объем пространства в мегабайтах, которое будет зарезервировано (не размечено) после форматирования флешки. Это пространство будет использовано для netboot и шифрованного раздела.
Нас дважды попросят подтвердить. Вводим y
:
Если результат завершения команды, как на моём скрине, поздравляю. Загрузочный раздел Ventoy и обычный раздел под файлы создан. Если нет, поговорим об этом потом.
Проверяем:
lsblk
Видим тут 2 раздела: 32МБ и 22ГБ. Оставшееся, неразмеченное место не отображается. Давайте его разметим.
Дополнительная разметка usb диска
Разметку выполним с помощью удобной консольной утилиты cfdisk
. Она интерактивная и проста в использовании. Выполняем команду от имени суперпользователя:
sudo cfdisk /dev/sda
Очень прошу, будьте внимательны указывая имя устройства. Ошибетесь буквой и случайно сотрёте не те данные. Восстановить их будет скорее всего возможно, но гарантий никто не даст.
Стрелкой вниз перемещаем курсор на строку: “Свободное пространство”. Это то пространство, которое мы зарезервировали с помощью ключа -r 10000
:
Теперь стрелкой влево выбираем “Новый”, нажимаем Enter
и вводим размер. Я установил объем, как и у загрузочного раздела Ventoy – 32МБ. Вводим с клавиатуры 32M
(M – мегабайты, G – гигабайты):
Вновь Enter
. Выбираем “основной” и Enter:
Появится 3-й раздел. Теперь вновь выбираем “Свободное пространство” и аналогично создаем раздел на оставшееся место (выставляется автоматически). Жмём Enter
и также выбираем “Основной”:
Видим 4 раздела. Теперь необходимо изменить “Тип” последнего, 4-го раздела, чтобы Windows автоматически определяла его в проводнике.
Перемещаем курсор на “Тип” и Enter
:
Стрелкой вверх пролистываем до строки 7 HPFS/NTFS/exFAT
и Enter
:
В основном меню видим наши изменения. Картина должна быть примерно, как у меня. Теперь нужно записать изменения на диск. Для этого перемещаем курсор на “Запись” и жмём Enter
:
Нас попросят подтвердить вносимые изменения. Вводим yes
и Enter
:
Обратите внимание, что пока вы не выполните “Запись”, изменения на устройство не вносятся. Т.е. до этого момента можно спокойно выйти нажатием клавиши q
, если вы что-то разметили не так.
Выходим нажатием q
и проверяем:
lsblk
Вот такая картина у нас должна получиться.
Теперь установим netboot.
Создание раздела netboot.xyz
В папке с образом netboot.xyz.img открываем терминал, переходим на пользователя root и записываем образ на 3-й раздел (который 32МБ) командой:
sudo -s
cat netboot.xyz.img > /dev/sda3
После выполнения в файловом менеджере должен появится раздел IPXE:
Осталось создать шифрованный раздел.
Создание шифрованного раздела Bitlocker в Linux
Для начала отформатируем наш 4-й раздел (у меня /dev/sda4
) в файловой системе FAT утилитой mkfs
:
sudo mkfs.vfat /dev/sda4
Теперь распаковываем архив с Bitlocker anywhere:
Переходим в каталог ~/Загрузки/bitlocker-anywhere/bin
, открываем там терминал и запускаем run.sh
./run.sh
Команда попросит ввести пароль суперпользователя. После откроется графическое окно программы. Кликаем ПКМ по нашему 4-му разделу (у меня /dev/sda4
) и нажимаем “Turn on Bitlocker”:
Далее вводим пароль, с помощью которого раздел будет зашифрован (галочки оставляем):
Обязательно запомните его или где-то запишите. Например, в менеджере паролей KeePass, про который у меня есть отдельная статья: Удобное и надёжное хранение паролей – KeePass.
На следующем шаге нам предложат сохранить резервный ключ восстановления, на случай, если мы забудем пароль. Его можно сохранить в файл – так и поступим:
Кликаем “Next” и дожидаемся завершения:
Готово. Слева в проводнике у нас отобразиться “Зашифрованный том”. При нажатии на него, появится окно для ввода пароля разблокировки:
После ввода откроется обычный дисковый раздел, куда можно сохранить важные файлы:
Для безопасного выключения нажмите на разделе ПКМ и выберете один из пунктов:
При подключении флешки в системе Windows в проводнике зашифрованный раздел отобразится так:
При попытке зайти на него, система запросить у нас пароль:
Также расскажу, как подключить шифрованный раздел через терминал Linux.
Для подключения раздел необходимо “открыть” (делается от root), т.е. разблокировать, а затем примонтировать (в данном примере в пространстве пользователя). Делается это двумя командами:
sudo cryptsetup open --type bitlk /dev/sda4 bitlocker
udisksctl mount -b /dev/mapper/bitlocker
Где:
- cryptsetup – консольная утилита управления подсистемой Luks;
- –type bitlk – явное указание типа раздела виндового Bitlocker;
- bitlocker (в конце команды) – это метка шифрованного устройства, может быть произвольной.
Демонстрация загрузки с флешки-терминатора
Теперь проверим работу нашей мультизагрузочной флешки. Перезагружаем наш компьютер и загружаемся с usb флешки.
Как загрузится с usb носителя я рассказывал в своей статье Установка Linux рядом с Windows:Шаг 4. Загрузка системы с установочного носителя.
В загрузочном меню среди разделов нашего подключенного USB носителя будут доступны 2 пункта (обычно содержащие название/производителя флешки): первый это Ventoy, второй netboot.xyz.
На ноутбуке это может выглядеть так:
В случае с виртуальной машиной на базе QEMU/KVM это выглядит так:
Для демонстрации Ventoy я скачал малюсенький образ интересной ОС, написанной на ассемблере – CalibriOS. Весит образ всего 42.5 МБ. Скачать его можно со страницы загрузок на оф. сайте.
Качаем архив, распаковываем iso образ системы на обычный (ventoy) раздел флешки и загружаемся:
Отлично, всё работает. Теперь запустимся в Netboot.xyz. Также, всё отлично:
Послесловие
Сегодня мы свами создали T-1000 универсальную загрузочную флешку, позволяющую запускать как локальные iso образы, так и выполнять установку Linux по интернету. А также создали два раздела: обычный и шифрованный.
Если у вас возникли трудности, какие-либо вопросы или просто есть желание обсудить тему, то заглядывайте в наш чат в телеграм: @r4ven_me_chat.
Спасибо, что читаете. Удачи в ваших экспериментах!