Почему я выбираю не убиваемый модульный дистрибутив Linux.
Свой первый компьютер, я приобрёл в далеком 2007 году. Это был третий «пенёк», с 512 мегабайт оперативной памяти , и с жестким диском размером в 20 гигабайт. На борту этой машины ,была установлена Windows Xp, которая в силу малого размера оперативной памяти, обладала плохой отзывчивостью, иногда подвисала, особенно во время сёрфинга по сети интернет.
История
Я стал искать возможные решения, обходя первое же очевидное, покупку дополнительной оперативной памяти, и случайно набрел на русскоязычный форум с операционной системой основанной на ядре linux, это был дистрибутив PuppyRus2.17. Эта находка впоследствии перевернула всю мою компьютерную жизнь, открыв дверь в увлекательнейший мир Linux . На то время Web был другим, не было JavaScript-a, и всяких этих фреймворков. И какого было мое удивление, что 512 мегабайт оперативной памяти, как ни странно этой операционной системе хватало, за глаза! Не сказать что не было подтормаживаний, во время серфинга по сети, а вот в остальном по сравнению c Windows Xp, система была очень отзывчива, и все программы открывались очень быстро, компьютер ожил.
Более того в комплект поставки дистрибутива, были браузер, текстовой редактор, медиа плеер. Я начал полноценно работать на этой машине. Эта система была русифицированной версией Puppy Linux 2.17 , более того из репозитория, англоязычной правда версии дистрибутива, можно было скачать , почти всё необходимое для повседневной работы. Вот краткая выдержка из wiki здравствующего и ныне форума https://forum.puppyrus.org :
Puppy Linux – это семейство упрощенных, а потому компактных и быстрых, линукс систем, ориентированных для домашнего использования. Это позволило значительно упростить состав системы и уменьшить размер дистрибутива. Несмотря на свой размер (есть дистрибутивы, размер которых менее 100 мБайт) они обладают достаточно полным пользовательским функционалом, это быстрая и легкая операционная система, которая работает практически на любых, даже устаревших компьютерах.
PuppyRus (Папирус – разговорное) – Изначально это были локализованные для русскоязычного пользователя дистрибутивы Puppy Linux. По этой ссылке https://wiki.puppyrus.org/puppyrus/history ,вы можете прочитать об истории создания данного дистрибутива. Но в последствии , разработчиками PuppyRus был сделан акцент на модульность дистрибутива .На тот момент программное обеспечение в дистрибутив поставлялось посредством pet пакетов. Pet пакет по сути своей являлся архивом, в котором находился сам софт, а также специальный файл с описанием для разрешения зависимостей. А также при помощи sfs модулей, который только начинал своё развитие. Разработчики PuppyRus объединили свойства pet и sfs и создали новый формат модулей, способный как подключать модули так и устанавливать если возникла такая необходимость, этот формат был назван PFS . Подробней о нем я расскажу чуть ниже. И так в конечном итоге появился PuppyRus-A (PRA).
PuppyRus-A (PRA) — самостоятельная сборка с использованием замороженного на определенный период репозитория Arch linux. Далее об этом можно прочитать подробнее.
В рамках работы над дистрибутивом PuppyRus был разработан формат модулей: PFS, а также pfs-utils набор утилит для работы с модулями.
Ссылка на wiki по pfs-utils : https://wiki.puppyrus.org/puppyrus/pr218/pfs4
Благодаря pfs-utils в дистрибутив было привнесено удобство работы с модулями. Удобное сохранение сессии, с возможностью отката изменений, в случае если что-то пошло не так. Впоследствии разработчиками проекта puppyrus.org был создан репозиторий с модулями наиболее востребованных программ, а также написана графическая утилита, для их поиска в сетевом репозитории, скачивания и «установки» (вернее их подключения) на компьютер.
И снова процитирую вики проекта:
- Создание модуля из каталога (и наоборот)
- Подключение (отключение) модуля или любого squashfs. Опционально с копированием в память
- Склейка (расклейка) составного модуля
- (Де)инсталляция модуля (распаковка в корень)
Мотивация
В момент открытия модульных дистрибутивов я был очень ими удивлён. Привожу плюсы использования модульных дистрибутивов, в отличие от обычных Full.
- Защищенность от вирусов и других угроз из интернета. (тут скорее не отличие, а подтверждение сохранения этого функционала)
- Простота установки на CD или флешку – достаточно переписать файлы из ISO в корень загрузочной флешки (frugal установка).
- Простота установки приложений – достаточно скопировать модуль нужного приложения в папку.
- Высокая скорость работы приложений, т.к. система загружается и функционирует в оперативной памяти (copy2ram).
- В минимальной конфигурации пригоден для устаревшего железа.
- Сохранение сессии в модуль, что позволяет получить “не убиваемую” систему – после перезагрузки вы снова имеете сохраненный вариант системы.
- Возможность носить Ваш дистрибутив на флешке с собой и запускать его на любом компьютере.
- Экономия ресурса батарей, дисков, флешке. Все в RAM. Обращение к дискам и потребление батареи минимально.
- Горячее подключение нового ПО без перезагрузки системы.
С тех пор утекло много воды, многое поменялось, изменился Web и оборудование, я приобрел более мощную машину… В итоге от модульных систем, я перешел на «большие» linux-ы, они мне показались удобней, но и от «маленьких» я не отказался, они прочно заняли нишу спасательных систем.
Но на сегодняшний день, я стал переосмысливать использование «больших» дистрибутивов, в пользу модульных. В больших дистрибутивах наблюдается неприятная тенденция, к разрастанию софта, так как «большие» пытаются охватить всё и вся , и покрыть все потребности пользователей, а пользователи разные, они могут быть корпоративными ,как и домашними, то есть целевая аудитория излишне широка. Потому разработчики пред устанавливают в дистрибутив огромное количество программ и библиотек, и в эту причину отзывчивость системы ухудшается. А PuppyRus приучил меня к тому что компьютер должен работать быстро. Мало того стали разрастаться рабочие среды.
Неожиданно для себя открыл что моему сердцу стали милее оконные менеджеры, либо те рабочие среды которые не обросли. Так как они нетребовательны к ресурсам системы, а также нашел приемлемым компромисс между потерей некоторого удобства настройки (большинство WM настраиваются из конфигурационных файлов). Я пришел к тому что настало время вернутся к истокам. С того что я начинал, к модульным дистрибутивам, в которых можно подключить, либо отключить самое необходимое, вернуть себе контроль над системой, когда всё летало от прикосновений и было на кончиках пальцев.
Дистрибутив
Предлагаю вашему вниманию дистрибутив LFA20.08-21.04-x86_64.iso , который собран с использованием замороженного на 20.08 репозитория Arch linux ссылка об этом на wiki.
В апреле 2021 года PRA-Roll-20.08 переименован в LFA20.08 и переориентирован на FRUGAL. Об истории создания LFA можно почитать тут, https://wiki.puppyrus.org/puppyrus/pr3. Считаю также полезным привести для читателя ссылку на документацию дистрибутива.
Дистрибутив собран любителями если вы найдете какие-либо ошибки или шероховатости прошу сообщить об этом на форум.
Состав системы:
- Браузер,
- Медиа плеер,
- Аудио плеер,
- Программа для чтения книг,
- Программа для просмотра PDF,
- Графический редактор,
- Программа для просмотра роликов с youtube,
- Торрент клиент,
- Программа для загрузки файлов.
И много других утилит. Всё остальное можно найти и подключить как я уже говорил из сетевого репозитория с модулями. Более подробно о том как можно работать с модулями, я расскажу в следующей статье.
Хочу отметить что в системе ядро-pf , yad , vala-panel -от русскоязычных разработчиков, что не может не радовать. Дистрибутив содержит 3 варианта initrd, разных по сложности и функционалу: PRA-Porteus, rootaufs2, UIRD, https://github.com/neobht/uird#uird—unified-init-ram-disk-system.
Понятия и термины
Прежде чем продолжить позвольте мне вкратце привнести некоторые термины и понятия которые использованы в дистрибутиве,а также , о способах установки данного дистрибутива, их два:
FULL — полная установка:
FULL – стандартный тип установки большинства linux дистрибутивов.
- Требует отдельного раздела носителя, отформатированного в linux (ext3-4) – совместимую файловую систему (не fat и не ntfs).
- Устанавливается специальным инсталлятором.
- Все изменения сохраняются в режиме реального времени
FRUGAL – упрощённая установка:
Frugal – расширенный вариант Live_CD.
- Установка копированием нескольких файлов (squashfs-модулями) на раздел с другой системой (даже windows) и любой файловой системой.
- Возможность нескольких сохранений состояний и переключения между ними.
- Возможность модификации установки (смена DE и софта) изменением состава модулей.
- Возможность работы полностью в RAM с любого носителя (CD, flash, hdd, сеть ) отключением загрузочного носителя.
- Достигается использованием AUFS
- Работу с squashfs-модулями (.sfs .pfs .xzm), как постоянно подключенными, так и «на одну сессию», так называемое «горячее подключение\отключение».
- Повышенную безопасность, так как sfs-файлы, будучи архивами, подключаются к системе «только для чтения» (ro), что исключает повреждение их содержимого случайными действиями пользователя. Такой файл можно только намеренно переименовать или удалить, но и восстановить не составит труда. Просто копируем на место удаленного sfs его «эталон» с CD.
- Некоторые дистрибутивы позволяют загрузить часть или все модули в память (RAM), что дает дополнительное ускорение работы, экономию заряда батареи и ресурса HDD.
- Возможность переделать RW сохраненку в RO squashfs модуль – «Не убиваемый» Linux.
- Не стоит пугаться таких слов как squashfs или AUFS.
Squashfs (.sfs) — сжимающая файловая система для GNU/Linux, предоставляющая доступ к данным в режиме «только для чтения». Squashfs используется Live CD дистрибутивами linux ,совместно с файловыми системами, образующими каскадно-объединённое монтирование, такими как AUFS.
- AUFS – каскадно-объединённое монтирование для файловых систем Linux.
- AUFS позволяет собрать итоговую файловую систему как слоеный пирог.
- В качестве слоя может быть squashfs модуль, файл с файловой системой внутри (например, сохраненка), раздел файловой системы, RAM_drive.
- Любой из перечисленных объектов может быть в любое время подключен выше (файлы «слоя» заместят повторяющиеся файлы «пирога») или ниже.
- Количество возможных слоев выбирается при компиляции ядра. Дефолтное значение 128. Увеличение может привести к замедлению работы.
- Возможно и отключение слоя (если его файлы не заняты).
Как правило, во всех системах (Puppy), использующих AUFS, в самый верхний слой подключается «сохраненка». Слой допускающий не только чтение, но и запись и сохраняющий изменения после рестарта. В качестве «сохраненки» можно использовать RAM_drive, но тогда изменения пропадут после рестарта.
Откуда берем дистрибутив
Если вы пользователь linux советую его скачать в домашний каталог. Впоследствии это поможет вам при его установке. Скачали? Ну что же ,приступим к его установке. Для того чтоб установить дистрибутив надлежит отформатировать флешку.
Установка из под Windows:
Необходимо отформатировать флешку штатным средством для форматирования дисков, откроем её. Далее нужно следовать вот этой инструкции wiki проекта, https://wiki.puppyrus.org/setups/ddr2usb
после выполнения пункта 3.
То есть после запуска файла grubinst_gui.exe от имени администратора, с флешки, и открытии интерфейса программы, если на флешке нет разделов, в поле Extra нужно вбить:
Окно программы с прописанной опцией должно выглядит так
Получаем вот такое окно:
В этом месте иногда возникают проблемы! В некоторых случаях wingrub завершает свою работу с ошибкой. Но рано или поздно нам удастся получить результат, вот какими путями (можете предложить свои методы):
- 1 Прочитайте сообщение об ошибке, допишите предложенный ключ в окошко «Extra» и попробуйте еще раз
- 2. Не сработало в Win7, но легко получилось в WinXP
- 3. Получилось после форматирования флешки утилитой HP USB Disk Storage Format (найдено на просторах сети)
- 4. Если форматирование не помогло, очистите флешку командой dd, подробно здесь
- 5. Помогло, если поставить флешке признак boot в программе gparted в Ubuntu (выбрать раздел, управление флагами, поставить галочку boot).
- 6. В среде Win сделать флешку активной можно встроенной утилитой diskpart из командной строки или внешним ПО. Такая флэшка в Windows (управление дисками) покажет признак раздела «активен». Почему-то grub иногда на некоторых флешках этого не делает. (гуглите и найдете!!).
Вместо diskpart можно применить встроенное в Windows 7 средство управления дисками. Открыть эту программу можно несколькими способами:
Простейший — нажимаем правой кнопкой по строчке Компьютер в меню Пуск — выбираем пункт Управление — в новом окне выбираем Управление дисками.
Открываем Панель управления — Администрирование — Управление компьютером — Управление дисками.
Нажимаем Пуск — Выполнить (или сочетание клавиш Win+R) — вводим в открывшемся окне diskmgmt.msc — нажимаем ОК.
Выбрать флэш носитель вызвать правой кнопки мыши контекстное меню диска, и нажать ,сделать диск активным.
Запишите iso-образ на CD, загрузитесь с него и, работая в системе, создайте загрузочную флешку (пуск-система-фругал установка).
Воспользуйтесь программами UltraISO или Rufus, они могут форматировать и создавать загрузочные флешки.
Инструкция для создания загрузочной флешки с LFA из под Windows взята отсюда https://wiki.puppyrus.org/users/sewar/start1
Установка из под Linux
Для подготовки флэш носителя из под Linux, удобней всего флешку отформатировать с помощью Gparted, файловая система может быть любая, но тут есть нюансы, и я остановлюсь на них немного подробнее. Если вы выберите fat32, то вы не сможете присвоить права на исполнение *.sh скриптов установки загрузчика, так как fat32 не поддерживает этот атрибут, применимо к *.sh скриптам. То есть если вы желаете применить *.sh скрипт установки загрузчика который вы найдете на флешке, по пути
/my-flash/boot/grub4dos/install/linux/ext4, после копирования файлов операционной системы из образа, то надлежит выбрать для форматирования ext3 или ext4. Можно выбрать для форматирования и fat32, для флешке он более предпочтительнее, так как fat32 лишен журналирования, и в эту причину к флешке меньше обращений, и это благоприятно влияет на её долговечность.
Но впоследствии это лишит возможности использовать более продвинутый метод сохранения сессии (в каталог). Но если вы выбрали форматирование флешки в fat32, у вас так же остаётся возможность сохранения сессии. Разработчики предоставили нам возможность сохранения сессии в модуль, для начала это самый понятный и простой метод сохранения сессии. Но отмечу, что сессию можно сохранять и в каталог, либо в файл, но для этого нужно выбрать при форматировании файловою систему linux, и более того после этого необходимо править конфигурационный файл grub4dos, menu.list, на предмет указания опции changes в которой указывается путь каталога сохранения, либо файла сохранения dat. Я так же остановлюсь подробнее на этом в следующей статье.
Но как же быть с атрибутом присвоения прав дляfat32ведь как я говорил выше к sh скриптам он не применим . А для того что бы я ответил на этот ваш вероятный вопрос, предлагаю таки выбрать для форматирования fat32, и после окончания форматирования, зайти в контекстное меню раздела Usb носителя, в Gparted , и в подпункте «присвоить флаг» , присвоить уже флаг «boot», поставив соответственно галочку напротив него. После успешного применения этой операции, следует закрыть Gparted. Далее надлежит извлечь флешку, и пере подключить её опять (это уже мои шаманские действия), далее открываем терминал, и вводим первую команду.
Терминал выдаст в ответ:
Устр-во Загрузочный Start Конец Секторы Size Id Тип
/dev/sdb1 может принять вид как /dev/sdс1 либо /dev/sde1, при помощи команды:
Мы определили какое имя приняло наше устройство, в моем случае оно определилось как /dev/sdb1 и далее я буду использовать это имя. Теперь нам нужно смонтировать нашу флешку, вводим команду в терминале:
Система предложит диалог для ввода пароля, после чего в домашнем каталоге создаст директорию с именем my-flash и подключит флешку в эту директорию. Теперь мы должны примонтировать исо образ LFA20.08-21.04-x86_64.iso в каталог LFA-iso для этого мы должны его создать вводим команду в терминал:
После мы можем скопировать все файлы дистрибутива из смонтированного каталога исо в корень флешки командой:
После переходим в каталог, где хранится установщик загрузчика grub4dos, для этого вводим команду в терминал:
Если вы выбрали при форматировании флешки, файловую систему linux, присваиваем атрибут на исполнение скрипту grub4dos-wee-install.sh, командой:
И устанавливаем загрузчик, командой:
Либо другой командой, в случае если вы выбрали fat32:
Я предпочитаю вторую… Данная команда установила загрузчик, и теперь мы получили загрузочную флешку с LFA20.08-21.04-x86_64.iso.
В следующей статье мы научимся, правильно настраивать конфигурационный файл grub4dos, menu.list, как работать с модулями, рассмотрим более подробней способы установки дополнительного софта, а также расмотрим структуру дистрибутива LFA20.08
(использованы материалы из wiki https://wiki.puppyrus.org/start )
Статья написана с помощью участников проекта puppyrus.org , за что им сердечное человеческое спасибо. В написании статьи принимал участие и я, Vlad-totiks.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
Источник