В данной статье мы рассмотрим способ создания загрузочной флешки Fedora LiveUSB с поддержкой сохранения файлов и настроек между загрузками (persistence mode).
Введение
Ранее мы уже подробно описывали процесс создания загрузочных LiveUSB для Fedora, но официальные конфигурации всегда записываются на накопитель «как есть» и поэтому не поддерживают возможность сохранения изменений, поэтому при каждой загрузке с них всегда создаётся чистое окружение.
Сегодня мы представим другой способ, с использованием небольшой консольной утилиты livecd-iso-to-disk, позволяющий вносить свои изменения в процесс загрузки образа.
Предупреждение
USB-накопитель должен иметь достаточный объём для хранения основного squashfs-образа, а также одного, либо двух оверлеев, поэтому рекомендуется использовать устройства стандарта USB 3.0 от 8 ГБ и выше.
Следует помнить, что большинство USB-накопителей, в отличие от SSD, никак не балансируют износ ячеек, поэтому частая перезапись одних и тех же файлов может привести к быстрому выходу их из строя.
Использование LiveUSB в режиме persistence не является альтернативой обычной установке системы.
Все данные на целевом устройстве будут уничтожены.
Подготовка
Сначала установим все необходимые для работы пакеты:
sudo dnf install livecd-tools livecd-iso-to-mediums
Далее скачаем оригинальный установочный образ Fedora Live (netinstall не поддерживаются), либо обновлённый респин и сохраним его на жёстком диске устройства.
Создаём Live
Обязательно убедимся, что целевой USB-накопитель размонтирован:
sudo umount /dev/sdX*
Создадим свой вариант LiveUSB с поддержкой UEFI-загрузки (рекомендуемый гибридный вариант):
sudo livecd-iso-to-disk --efi --format --overlay-size-mb 2048 --home-size-mb 2048 --unencrypted-home --label Fedora /path/to/Fedora-Workstation-Live-x86_64-32-1.6.iso /dev/sdX
Обязательные параметры:
- overlay-size-mb — максимальный размер в MiB для основного оверлея системы (используется для хранения всех изменений внутри корневого раздела);
- home-size-mb — максимальный размер в MiB для зашифрованного оверлея с пользовательскими файлами, который будет смонтирован как /home;
- /path/to/Fedora-Workstation-Live-x86_64-32-1.6.iso — полный путь к файлу с оригинальным ISO-образом дистрибутива (поддерживаются варианты с любой рабочей средой);
- /dev/sdX — устройство подключённой USB-флешки без номеров разделов, с которой мы будем работать.
Дополнительные параметры:
- msdos — включает использование файловой системы FAT32 на устройстве вместо ext4;
- extra-kernel-args — позволяет задать дополнительные параметры для ядра при необходимости;
- unencrypted-home — позволяет отключить шифрование оверлея с данными при необходимости (по умолчанию оно включено).
Внимание! Максимально допустимый раздел для каждого оверлея составляет 4096 MiB из-за ограничений файловой системы FAT32. На ext4 они не распространяются.
По окончании процесса записи выполним принудительную синхронизацию кэшей:
sync
Литература
При написании данной статьи использовалась литература из следующих источников:
Параметры overlay-size-mb и home-size-mb допустимо использовать и отдельно.
Да. Если не нужен оверлей для корневого раздела, а лишь для пользовательских данных, то достаточно указать только home-size-mb.
Для людей желающих попробовать, лучший вариант наглядно увидеть это, был бы ролик с пояснением процесса на YouTube. Для пользователей Windows это сложновато.
Интерфейс программы Fedora Media Writer, на наш взгляд, достаточно прост и интуитивно понятен любому пользователю.
Используйте свежую утилиту по ссылке «исходные коды утилиты livecd-iso-to-disk», в дистрибутиве (fc35) — старая версия.
—msdos параметр устарел, —format msdos — актуальная замена (для новой версии). Также можно форматировать в других ФС и выбирать их и параметры (для новой версии).
Максимальный размер раздела для msdos (FAT32) — 4095 Мб, а не 4096.
Ещё пожелание к мануалу: добавить в пример —unencrypted-home, т.к. после продолжительной подготовки данных самой утилитой неприятно озадачивает выбор пароля. Простой пароль выбрать не даёт.
Как вариант — две строки примера или до примера указать, что ТРЕБУЕТСЯ решить заранее про шифровку home, т.к. придется ждать продолжительное время, если home шифровать не надо, а по умолчанию шифровка включена.
Самая свежая тегированная версия в репозитории — 28.3. Она и опакечена в Fedora 35.
Форматировать можно в любую поддерживаемую ядром ФС, однако загрузиться без проблем получится лишь с той, которая поддерживается прошивкой UEFI BIOS, т.е. FAT, либо FAT32.
Погрешность округления после деления на 1024. 4 294 967 295 байт.
Шифровать разделы на флешках далеко не лучшее решение, т.к. будет очень медленно, поэтому добавим в статью информацию об этом. Спасибо.
Чтобы не забыть:
1. Флешка, записанная утилитой из дистрибутива, не завелась, а по ссылке из статьи — запустилась.
2.1. Добавьте ключик про не шифровать /home в пример.
2.2. lsblk покажет как называются подключенные блочные устройства.
3. Система обновляется по dnf upgrade, но кроме ядра. Если ядро в репозиториях обновилось — надо будет доставлять kernel-devel (если они нужны).
Смотрим, что стоит в дистрибутиве:
Скачиваем весь пакет kernel целиком (скачается много объемных файлов, аккуратно с трафиком и объемом на флешке):
Устанавливаем требуемый нам старый kernel-devel:
4. Привет команде разработчиков, ужимающей дистр в 2 Гб. Из 16 Гб флешки даже с этими костылями весь объем использовать не получается. 🙁
Какие ошибки при этом возникли? При написании статьи я тестировал и всё работало.
Добавил.
Обновлять такую систему не рекомендуется, т.к. обновляется лишь оверлей, а корневая система остаётся с оригинального Live-образа.
Если требуется полноценная переносная установка, то рекомендую приобрести внешний SSD с интерфейсом Thunderbolt 3/4 и установить систему на него напрямую стандартным способом в EFI-режиме. Такая система будет работать на любом устройстве, имеющим порт Thunderbolt.
Не запускалось ни UEFI ни Legacy. По обновленному скрипту только Legacy.
Всё долго запускается. Операции с флешкой очень медленные: создание флешки, обновление, загрузка, инсталляция и тормозит в процессе работы.
Я хотел сделать флешку, с которой можно поставить Федору на ноутбук с вайфаем на broadcom без подключения его к сети по проводу.
Итог: обновлять Live систему не следует, и вообще она бесполезна. Надо скачать rpm broadcom-wl и kernel-devel версии как на Live образе и с другой флешки считать после установки. А ещё проще — подключить провод, что я и сделал.
Как выделить дополнительное место на большой флешке под эти два файла особо не разбирался, а по-простому не получилось. Обидно, что пропадает много свободного места и приходится устраивать танцы с бубном.
Legacy для современного железа — это очень плохо ибо лишает всех полезных функций UEFI, плюс реализован он сейчас большинством производителей, что называется «для галочки», и либо вообще не тестируется, либо тестируется по остаточному принципу.
Разумеется ибо флешка — это очень медленное устройство (кроме очень дорогих моделей, которые внутри SSD, но в форм-факторе флешки).
К тому же флешки никак не балансируют износ, т.е. постоянная перезапись одних и тех же файлов быстро исчерпает лимит циклов перезаписи и она либо уйдёт в защиту (станет r/o), либо вообще перестанет определяться.
Для этого лучше использовать Fedora Kickstart и сгенерировать полноценный образ со своим набором пакетов, включая нестандартные из собственного репозитория.
В идеале конечно удалить из ноутбука Wi-Fi модуль производства Broadcom и заменить его на Intel AX200 ибо он даже с проприетарным драйвером будет работать очень плохо и нестабильно.
В случае использования Kickstart, достаточно добавить из установленной системы скомпилированный kmod-пакет для соответствующего ядра (последнее на момент сборки ISO-образа). Компилятор и пакеты для разработки не потребуются.