Содержание

SFSLinux

121114 sfslinux@gmail.com

Сокращения в тексте

Основные характеристики

  • frugal : установка системы сводится к копированию нескольких файлов. При сохраненке.s*fs - «неубиваемый» дистрибутив (после перезагрузки - все в исходном состоянии).
  • Полноценный debian(ubuntu). Возможность установки софта через apt
  • Скорость загрузки больше чем у Woof Puppy
  • Работа не из под root. sudo
  • Файл сохранения создается скриптом: sudo live-make .Несколько вариантов:
    • раздел HDD, файл
    • .squashfs
    • .cpio.gz
  • Размер основного модуля менее 200Mb. Минимум включенного ПО
  • ПО в виде подключаемых модулей squashfs. Автоподгрузка Вашего списка модулей при загрузке системы с заменой или без файлов базового модуля. Возможность загрузки готовых модулей через интернет.
  • Возможна работа с CD, USB flash, HDD. «Карманный Linux»
  • Возможна загрузка всей системы и программ в память (RAM). Дает скорость, экономию батареи, шумопонижение
  • MultiWM
  • MultiKernel, PAE. Возможность менять ядра.
  • Только русская локализация. Остальные вырезаны. Можно доустановить
  • apt и полная совместимость с .deb репозиториями

Скачать

  • SFSL-DS (Debian 6. JWM, OpenBox, pcmanfm-mod. Минималистический)
  • SFSL-UP (Ubuntu 12.04. Gnome3FallBack, NetworkManager, python)
  • SFSL-UQG (Ubuntu 12.10. JWM,Gnome3FallBack, NetworkManager, python)

Идеология

История:

Зарождение идеи произошло при ознакомлении с live-boot (Dеbian) и load_sfs (www.PuppuRus.org). 2011 год

Первая публикация

3 источника и 3 составные части

  1. Puppy: frugal, модули.sfs
  2. Debian: live-boot, apt-get
  3. Свои скрипты и идеи: sfs-get, sfrugal, sfs-conky, notify-send

Варианты применения

  1. Переносной desktop. Ваша ОС всегда с Вами на usbflash. Возможна загрузка нескольких live-rw-… , настроенных под разные задачи и пользователей. Экономия батарей ноутбука при загрузке всех модулей в память
  2. Ремонтно-восстановительные работы, поиск в интернет драйвера сетевой карты для свежеустановленной другой ОС.
  3. Самые смелые эксперименты с ОС , ПО без вреда для установленной ОС
  4. Простое (за счет apt-*) создание sfs, pet для Puppy linux

Направление развития SFSL

  1. Усовершенствование sfs* скриптов (например, заимствование из puppy gtkdialog3 скриптов)
  2. Уменьшение размера базового комплекта
    • чистка
    • вынос ПО в sfs
    • подбор легковесного ПО, оптимизация
  3. Графическое оформление
  4. Поиск «золотой середины» между функциональностью скоростью и ресурсоемкостью
  5. Выработка методики, позволяющей минимально подготовленным пользователям создавать live - frugal дистрибутив и .sfs под свои нужды на базе любого другого дистрибутива

(…или хотя бы улучшение подготовленности пользователя в процессе создания и популяризация linux :-))

Ищу единомышленников!

Похожие дистрибутивы

puppy
deb grml, knoppix, pureos
arch ctkarch
slack porteus
mandriva magos

Установка, загрузка

Запуск в VirtualBox

Обязательно в свойствах: Система-Процессор- Включить PAE/NX

Установка на hdd, usbflash

  1. Установить (или модифицировать имеющийся) загрузчик
    • grub4dos включен в SFSL: cat /BOOT/grub4dos/install/install.txt. Или установите штатными средствами любого puppy. Подробности в документации в корне CD
    • Подойдет grub, grub2 (любой linux загрузчик)
  2. Переписать все файлы в корень любого раздела
    • Будьте внимательны с путями или регистром в menu.lst
    • Проверить: в командном режиме grub4dos : ls /_sfsl

Если не уверены в себе - устанавливайте загрузчик на usbflash. Файлы при этом могут располагаться на любом другом носители. SFSL в этом случае никак не повлияет на другие установленные у Вас на hdd ОС

Неквалифицированно установленный на hdd загрузчик может привести к тому, что другие ОС перестанут загружаться. И это не является проблемой SFSL

Как из SFSl сделать FULL

Теряется весь смысл задумки. Лучше поставить с обычный Debian. Но если вы 1 пользователь на стационарном пк и не склонны к экспериментам:

  1. Разметить диск. Нужен как минимум 1 раздел ext* под / и раздел swap
  2. Установить линукс-загрузчик или использовать имеющийся. Утилиты установки grub4dos в .iso /boot/grub4dos/install
  3. Загрузить sfsl со всеми нужными Вам модулями и сохраненками
  4. Переписать все на подготовленный раздел. Не забыль про ядро и initrd
  5. Поправить загрузчик на стандартные (не live-boot параметры ядра). Например: /boot/vmlinuz1 root=UUID=4db63c04-36a5-4da3-862e-c3aa82c48fd3 ro quiet splash

Варианты загрузки (mode в параметрах ядра)

Задается при загрузке в параметрах ядра (см. /menu.lst)

Persistent mode

  • Ваши настройки, изменения хранятся в файле /live-rw (или разделе с меткой live-rw).
  • «Жирные» директории (например download) можно сим.линками вынести в удобное место
    • Пример: перенос дирректории ~/download на /media/sda2
    • т.е. из файла live-rw на hdd
    • То же, более интерактивно, в mc : F6; Ctrl-x-s
mv ~/download /media/sda2/
ln -s /media/sda2/download ~/
  • Удобно для повседневной работы и крупных экспериментов с сохранением результатов
  • При наличии /live-home (не обязательно, достаточно одного /live-rw) - /home/q располагается в /live-home
  • /live/image (раздел с файлами дистрибутива) доступен root-у на запись
  • Создание live-rw (должен располагаться в корне ext раздела):
sh /mk-live.rw.sh

Использование раздела диска в качестве live-rw ( с live-home аналогично)

  • Устанавливаем (sudo apt-get update;sudo apt-get install gparted) или подключаем (sudo sfs-get gparted)
  • sudo -s; export DISPLAY=:0.0 && gparted
  • Выбираем или создаем раздел. Файловая система желательна ext4
  • Присваиваем ему метку live-rw ( с live-home аналогично)

Live mode

  • Загрузка всех /live/*.squashfs модулей.
  • Ваши настройки, изменения хранятся в памяти. После перезагрузки пропадают
  • /live/image доступен только на чтение
  • Удобно для ознакомления с CD

Live toram mode

  • Загрузка только указанного (основного) .squashfs модуля.
  • Ваши настройки, изменения хранятся в памяти. После перезагрузки пропадают
  • Все разделы доступны на запись
  • Удобно для небольших экспериментов с ручным сохранением результатов. Например, для создания своего .sfs модуля. Особенно при использовании совместно с persistent в качестве чистового варианта

Модули .s*fs

В качестве GUI для работы с .sfs можно использовать sfs-get или mnt_sfs вместе с любым файловым менеджером

Подключение и отключение

mount_sfs модуль.sfs (GUI)

или sfsmnt [-u] [-r] модуль.sfs. Подробности: sfsmnt –help Отключение : sfsumnt [-u] [-r] модуль.sfs.

Изготовление

Самый простой рецепт создания своего модуля:

sudo apt-get update; sudo apt-get install то,что_Вам_нужно; sudo live-snapshot -t squashfs

Вообще такой модуль хорошо бы

  1. unsquashfs
  2. почистить /var ; /usr/share doc, locale и т.п.
  3. mksquashfs … (можно через mc F2 меню)

Рецепт 1 (сложный)

Ниже есть 2 попроще, но модуль даст большего размера

  1. В /live/cow система хранит все сделанные Вами после загрузки изменения
  2. Загрузиться без сохраненок
  3. sudo apt-get update;sudo apt-get –no-install-recommends install ваша_программа
  4. Убедиться в работоспособности
  5. Проанализировать /live/cow и /var/cache/apt (здесь хранятся исходные .deb)
  6. Скопировать /live/cow на ext* раздел в папку sfs-tmp (название любое)
  7. Загрузиться без сохраненок
  8. Скопировать из sfs-tmp в систему запускаемый_файл_вашей_программы
  9. ldd `which запускаемый_файл_вашей_программы` |grep no
  10. Добавить недостающие библиотеки из sfs-tmp в систему
  11. Убедиться в работоспособности
  12. Все скопированное из sfs-tmp в систему, сохраняя структуру папок переписать на ext* раздел в папку sfs-tmp2 (название любое). Подправить ярлык (/usr/share/applications), убедиться что прога и ее иконка появились в нужном месте меню
  13. mksquashfs sfs-tmp2 имя_версия_программы.sfs -comp xz -Xbcj x86. Выделенное жирным добавлять только для ядер >2.6.38. Даст большее сжатие модуля , но увеличит время mksquashfs

Рецепт 2. Для тех кому рецепт 1 сложен.

  1. sudo apt-get update;sudo apt-get -d –no-install-recommends install ваша_программа
  2. mkdir sfs-tmp2. Распаковать в mc все скачанные /var/cache/apt/archives/*.deb в sfs-tmp2, соблюдая структуру папок
  3. Необязательный пункт. Осмыслить содержание sfs-tmp2. Удалить лишнее (чужие локали, ненужные доки, …)
  4. mksquashfs sfs-tmp2 имя_версия_программы.sfs -comp xz -Xbcj x86
  • Аналогично можно найти любой софт из любого дистрибутива на http://pkgs.org и настрогать из него модулей. Если софт доступен для установки apt - лучше этого не делать.
  • Наиболее оптимально скомпилить программу в дистрибутиве, где она будет использоваться. Это для опытных. Потребуется установка gcc и прочих *dev пакетов

Модули .squashfs

  • Подключение .sfs модуля при загрузке ОС: переименовать .sfs→.squashfs, положить в папку live
  • Рекомендуется только для компонентов ОС. ПО загружайте через sfrugal и\или sfs-get
  • При размещении в директорию live дистрибутива, загрузится автоматически (в режимах кроме toram ) в порядке алфавита
  • Основное отличие от .sfs (горячее подключение) - файлы внутри .squashfs с одинаковыми именами заменяют файлы основного модуля

Обновление, модификация SFSL, patch (исправления)

Скрипт remaster сырой. Не рекомендуется для использования новичками.

Обновление

sudo -s ;apt-get update && apt-get dist-upgrade && remaster = бесконечная жизнь

Модификация

sudo -s ;apt-get update ; apt-get install что_угодно ;apt-get purge что_угодно; remaster = свой дистр

patch

Исправления, обновления системы можно собрать в модуль.s*sf и загрузить поверх базы методом :

  1. .squashfs
    • Делаем обычный .sfs
    • Копируем в /live под именем zzz-Ваш.squashfs
    • Название (zzz*) критично. Модули загружаются в алфавитном порядке; patch должен быть последним
    • Файлы patch наложатся поверх остальных /live/*.squashfs
  2. sfrugal

Особенности использования

Пользователи, пароли,права

  • Пользователь по умолчанию: q
  • Пароль: 111111 При использовании sshd, ftpd и т.п. - лучше сразу поменять: passwd q
  • root права на все через sudo
  • Урезать: man sudoers; sudo visudo

Подключение к сети

Варианты:

  1. Подключение к проводной ethernet сети c DHCP произойдет автоматически. Или : sudo dhclient ethX && sudo rm /etc/resolv.conf && sudo echo «nameserver 8.8.8.8» >/etc/resolv.conf
  2. pns-tools - консольный скрипт ethernet+wifi
  3. xpns-tool (GUI)
  4. sfs-sky - консольный скрипт для модема www.skylink.ru. Альтернатива - apt-get install gnome-ppp
  5. NetworkManager. Есть не во всех SFSl. По умолчанию отключен. Включить через меню

Сохранение сессии

live-make. Есть встроенная справка

Не увлекайтесь большими сохраненками. В идеале - вообще их не использовать. Весь софт - модулями.sfs . Свои настройки - модулем.sfs или home-rw

  • При наличие параметра ядра persistent - загружаются «live-sn.cpio.gz» «live-rw» «home-rw» (если они есть). Должны лежать в корне ext раздела носителя. Комбинировать cpio.gz c rw не пробовал.
  • При дополнительном параметре ядра «persistent-subtext=sfsc», в качестве файлов (разделов) сохранения используются: «live-sn-sfsc.cpio.gz» «live-rw-sfssc» «home-rw-sfssc». Вместо sfsc можно писать что хочется. Таким образом можно иметь разные сохраненки.
  • Если сохраненка cpio.gz - она пересоздается при выключении. Если выключение аварийное - вероятно получите предыдущее состояние. Поэтому cpio.gz - хуже и тормознее
  • При rw сохраненке монтируется файл и в него сразу пишутся изменения
  • Подключенные модули.sfs в сохраненку не попадают. Их надо подключать по новой или сделать автозагрузку перез параметр ядра sfsdir*=.
  • Содержимое сохраненки .cpio.gz можно увидеть в mc.
  • Содержимое сохраненки -rw* : mkdir /mnt/tmp1;mount /путь_к/live-rw /mnt/tmp1 -o loop
  • При любых проблемах - отключайте сохраненку и проверяйте без нее

Увеличение объема сохраненки *-rw:

  1. Сoздать файл live-rw-2 (вместо -2 - что угодно)
  2. sudo mkdir /mnt/rw1;sudo mkdir /mnt/rw2; sudo mount путь/live-rw /mnt/rw1 -o loop;sudo mount путь/live-rw-2 /mnt/rw2 -o loop
  3. Переписать из live-rw в live-rw-2.
  4. mv live-rw2 live-rw или подправить конфиг grub4dos

apt

Работу с apt-* начать с : apt-get update

man

  • Выделены в отдельный doc*.sfs.
  • Подгружать по желанию в виде .sfs или .squashfs …

copy - paste в консоле

В терминале urxvt :(выделить мышью или ctrl-ins)-paste(средний клик или shift-ins). Или http://forum.puppyrus.org/index.php/topic,10732.0.html

Переключение клавиатуры us\ru

Горячие клавиши

Вызвать их список : <Super>h. <Super> - это клавиша windows, слева между Ctrl и Alt

Conky. Мониторинг

Смена обоев в JWM

  • Средствами файлового менеджера
  • xsri

Самостоятельная сборка SFSL на базе любого .deb дистрибутива

См. выше «Модификация»

apt-get install live-boot
apt-get purge все лишнее
  • копируем нужное из / в /tmp
  • чистим
  • mksquashfs /tmp Ваш.squashfs
  • в isomaster заменяем vmlinuz , initrd , Ваш.squashfs