А чем готовый (какой-нибудь Knoppix) не устраивает? Если нужен именно live-cd без возможности сохранения данных - оно вполне работает. Суффикс 'PE' буквально означает "portable environment" - т.е. ЛЮБОЙ дистрибутив на live-cd - он по сути PE.
"Пошагово разжевать" - сильно зависит от дистрибутива. Максимально подробно рассказано на упомянутом сайте. Общий смысл везде примерно одинаковый. Файловая система составляется как "бутерброд". На нижнем слое - снимок (снапшот) исходной системы. Поскольку там ничего не будет меняться - его обычно делают на squashfs (это типа zip-архива в терминах винды, но доступ к отдельным файлам внутри сильно шустрее). Поверх располагаются изменяемый слой. В нём хранится разница между начальным снапшотом и текущим состоянием. Типа, "вон того файла больше нет, его удалили", "вместо вон того файла теперь вот этот", "а вот тут мы создали новую папку и положили вот этот файл". Между собой слои "склеиваются вместе" с помощью unionfs, или более свежей aufs (another unionfs). Так устроено подавляющее большинство live-cd. Там на диске лежит файл .sqfs, в нём находится "законсервированная" система. К ней через aufs добавляется "верхний" слой - либо ram-диск в памяти, либо отдельный раздел или файл на флешке. По итогу у вас получается система, где вы можете свободно удалять/менять/добавлять файлы. Все изменения идут в "верхний" слой, нижний архив никогда не меняется. Если это live-cd - эти изменения в памяти; после перезагрузки они бесследно пропадают. Если это флешка - они могут сохраняться.
Кстати, примерно так же устроено хранилище в докере. Там вы тоже берёте самый нижний слой - какой-нибудь "голый дистрибутив". И потом поверх накатываете слои с изменениями. Одна команда - один слой. И когда вы его потом запускаете - на самый верх накатывается "эфемерный слой", куда попадают результаты работы приложения.
Итого, сайт именно это и предлагает. Создать самый нижний слой-архив. И советует, как там сразу избавиться от каких-то железо-зависимых параметров (типа, удалить карты udev).
Второй шаг - это сформировать загрузчик. Ну, типа, если ты вставил свой носитель в какой-то левый комп - чтобы вон там в меню загрузки он появился как загрузочный. И чтобы, когда ты его там ткнул, чтобы он правильно всё загрузил. (а нужно - загрузить ядро и initramfs, и чтобы в последнем он понял, что у тебя там в корне aufs, где нижний слой - это вон-тот файл на cd/флешке, а верхний - либо вон-тот файл на флешке, либо его нужно создать в памяти).
У той же убунты, если качать образ - он как раз накатывается на болванку/флешку (а кто-то ещё пользуется cd/dvd?). И с неё прямо сразу можно загружаться. И данные между загрузками сохраняются (там же, на флешке).
А чем готовый (какой-нибудь Knoppix) не устраивает? Если нужен именно live-cd без возможности сохранения данных - оно вполне работает. Суффикс 'PE' буквально означает "portable environment" - т.е. ЛЮБОЙ дистрибутив на live-cd - он по сути PE.
"Пошагово разжевать" - сильно зависит от дистрибутива.
Максимально подробно рассказано на упомянутом сайте.
Общий смысл везде примерно одинаковый.
Файловая система составляется как "бутерброд". На нижнем слое - снимок (снапшот) исходной системы. Поскольку там ничего не будет меняться - его обычно делают на squashfs (это типа zip-архива в терминах винды, но доступ к отдельным файлам внутри сильно шустрее). Поверх располагаются изменяемый слой. В нём хранится разница между начальным снапшотом и текущим состоянием. Типа, "вон того файла больше нет, его удалили", "вместо вон того файла теперь вот этот", "а вот тут мы создали новую папку и положили вот этот файл". Между собой слои "склеиваются вместе" с помощью unionfs, или более свежей aufs (another unionfs).
Так устроено подавляющее большинство live-cd. Там на диске лежит файл .sqfs, в нём находится "законсервированная" система. К ней через aufs добавляется "верхний" слой - либо ram-диск в памяти, либо отдельный раздел или файл на флешке. По итогу у вас получается система, где вы можете свободно удалять/менять/добавлять файлы. Все изменения идут в "верхний" слой, нижний архив никогда не меняется. Если это live-cd - эти изменения в памяти; после перезагрузки они бесследно пропадают. Если это флешка - они могут сохраняться.
Кстати, примерно так же устроено хранилище в докере. Там вы тоже берёте самый нижний слой - какой-нибудь "голый дистрибутив". И потом поверх накатываете слои с изменениями. Одна команда - один слой. И когда вы его потом запускаете - на самый верх накатывается "эфемерный слой", куда попадают результаты работы приложения.
Итого, сайт именно это и предлагает. Создать самый нижний слой-архив. И советует, как там сразу избавиться от каких-то железо-зависимых параметров (типа, удалить карты udev).
Второй шаг - это сформировать загрузчик. Ну, типа, если ты вставил свой носитель в какой-то левый комп - чтобы вон там в меню загрузки он появился как загрузочный. И чтобы, когда ты его там ткнул, чтобы он правильно всё загрузил.
(а нужно - загрузить ядро и initramfs, и чтобы в последнем он понял, что у тебя там в корне aufs, где нижний слой - это вон-тот файл на cd/флешке, а верхний - либо вон-тот файл на флешке, либо его нужно создать в памяти).
У той же убунты, если качать образ - он как раз накатывается на болванку/флешку (а кто-то ещё пользуется cd/dvd?). И с неё прямо сразу можно загружаться. И данные между загрузками сохраняются (там же, на флешке).