- Попробовал антикризисный отечественный Simply Linux 10. Понравилось и вот почему
- Попробуем это чудо чудное да диво дивное
- Итоги осмотра
- Наши другие ресурсы:
- Simply Linux 10.1 (это бесплатное тоже можно использовать)
- Итак, Simply Linux 10.1!
- PXE-сервер (или — да здравствует LTSP)
- Webmin (да, попса, да не-хардкор)
- О возможности «типичных» реализаций бездискового клиента
Попробовал антикризисный отечественный Simply Linux 10. Понравилось и вот почему
24 марта Simply Linux стал официально бесплатным для всех. На этот шаг разработчики пошли в качестве антикризисной меры. Они уверены, что эта операционная система сможет удовлетворить потребности как организаций, так и частных лиц как с современным, так и со старым оборудованием. И даже владельцев Эльбрусов
Simply Linux берёт своё начало в 2009 году, когда один из сотрудников “Базальт СПО” Денис Корявов собрал дистрибутив для дома и офиса, рассчитанный на пользователей начального уровня. Позже он передал свои наработки кампании. “Базальт СПО” на тот момент (да и сейчас) занималась разработкой линейки отечественных операционных систем ALT Линукс, среди которых есть как узконаправленные, так и системы общего назначения. Об одной из них мы уже писали:
Зачем же “Базальту” понадобилась вторая ОС общего назначения? Смысл как раз и кроется в том, что Simply Linux и ALT рабочая станция отличаются, как бы это сказать, требованиями к пользователю. Последняя рассчитана на людей, имеющих определённый опыт работы с компьютером, а первая — для всех. Будем честны, и дома далеко не все уверенно отличают мышь от монитора, да и на рабочих местах хватает людей, которые как бы должны уметь работать с компьютером, но их навыки весьма скромны.
Simply Linux из коробки должен иметь всё необходимое неопытному пользователю. И таки имеет:
Здесь помимо привычных плееров, браузеров и офиса также средства работы с фото и видео (привет братьям — блогерам), встроенный Wine (привет братьям — виндузячникам), сканирование и распознавание, словарь и т.д. На рабочем же месте можно будет скоротать обеденный перерыв в одной или нескольких игрушках.
Попробуем это чудо чудное да диво дивное
Для начало идём на официальный сайт , выбираем нужный продукт и нажимаем “Скачать”:
И здесь у нас прям раздолье! И тебе x64 и тебе x86 (что сегодня редкость), отдельно Live CD (хотя они входят в установочные образы) и даже образ для CD-карт. Конечно же поддерживаются отечественные процессоры “Эльбрус”, но для получения образа под это “железо” просят связаться с разработчиками. На данный момент этот факт не вызывает озабоченности, т.к. в магазинах пока “Эльбрусов” не видно. Несколько настораживает название x86 образа “УСТАНОВКА I586 (SLINUX-10.0-I586.ISO)”. Оно правильное, никаких ошибок в названии нет, но каждый ли пользователь поймёт, что под этим, скажем так, профессиональным термином скрывается то, что он и привык называть x32 или x86.
Не буду повторять то, что сказано в видео. Установили, попробовали:
Итоги осмотра
В целом мне ОС понравилась. Серьёзно! Единственное, что может вызвать нарекания — это скупой и даже может устаревший внешний вид. Меню отключения — это вообще нечто:
Но, во-первых, нечто более красивое требовало бы больше ресурсов, а Simply Linux хвастается тем, что ему достаточно 1 Гб ОЗУ и древнего 32-битного процессора.
Ну а во-вторых любой пользователь может попросить своего админа “прикрутить” другой пользовательский интерфейс с красотами и виджетами. Благо, под Линукс это не проблема.
Наши другие ресурсы:
zen.yandex.ru/hiron — Канал о жизни с курьёзами, интересными историями и немного размышлений
zindar.ru — Наш сайт с дополнением к обоим каналам
Simply Linux 10.1 (это бесплатное тоже можно использовать)
Пост — это благодарность сообществу, что оно делится с нами полезной информацией, и мы в ответ делимся своей.
Скорее — это зарисовки‑на‑полях или направление в действиях, но никак не хау‑ту‑шка (и уж ТОЧНО НЕ реклама нашей ОС, более того, полагаю, что бесплатность этого релиза сродни бесплатной Шляпы — этакий бесконечный бета‑тест).
Пост мог появиться и раньше, но по мере продвижения в теме всплывали новые заминки.
Подача материала — не разъясняющая, а скорее простое тупое перечисление каких‑то моментов. У читающих предполагается достаточно высокий уровень знаний о нескольких
подсистемах Linux (особенно dracut).
Много времени уделять писательству не могу, поэтому сумбур — вот как он есть.
Итак, Simply Linux 10.1!
Мой интерес к SL10.1 возник в начале осени, когда я узнал, что она бесплатна для коммерческого применения, и обусловлен, в основном, именно этим важным моментом (ибо мой фаворит — это Xubuntu). Очень облегчающим (скорее психологически) моментом был тот факт, что эта бесплатная редакция основана на этом же «крысином» окружении.
Теперь о наболевшем (и отнюдь не в техническом плане!) или почему конкретно я сразу же обратил свой взор на SL (в марте-2022 упустил объявления из виду, т.к. я на российские дистрибутивы не смотрел совсем).
Линукс (или, во всяком случае, огромный процент распространенных дистрибутивов)
бесплатен, но это совершенно не спасет Вас от людей, которые могут захотеть просто из вредности поставить подножку Вашему маленькому или средненькому бизнесу со словами: «Да, да, да, все хорошо, но покажите нам лицензионное соглашение. Ой, а мы ничего не понимаем по‑английски. А‑а-а‑а, а почему Вы нам показываете какой‑то иностранный сайт. »
Причем, наверняка даже зная, что оно почти всЁ действительно — СПО, могут шантажировать забором оргтехники на, якобы, экспертизу. И, еще три года назад, даже бухгалтер, ни разу не юрист, первое, что спросил про Ubuntu: «а где тут у них по‑русски написано, что это всЁ нам забесплатно. »
Поэтому лицензионное соглашение на SL10.1 я распечатал сразу же, в деревянную рамочку его вставил (и да, оно на русском языке, и на сайте тоже русском).
- PXE-сервер
- Webmin
- Pxe-diskless-клиент (вернее — то, что МОЖЕТ помочь его реализации в этом варианте дистрибутива)
Так получилось, что последний подпункт был первым хронологически.
PXE-сервер (или — да здравствует LTSP)
LTSP-сервер был в версии SL8 и ранее (я так сужу, потому что попытка добавить за-ради-теста репозитарий p8 вместо p10 приводит к появлению возможности скачки старых версий пакетов). В Ubuntu LTSP делает при начальной настройке почти ВСЁ за нас. Саму же его возможность создания загрузочного (для-по-сети) NBD-образа я никогда не использовал, а только задействовал его загрузочный pxe-модуль. Поэтому я постарался просто выявить и повторить действия LTSP при этой настройке.
а) Устанавливаете dnsmasq и nfs-server
б) настраиваете /etc/exports
в) настраиваете dhcp-проксирование (ну. или весь dhcp)
г) для SL — в /etc/sysconfig — rpcbind и dnsmasq (для меня бОльшая часть возни была связана именно с этим пунктом — я НЕ знал, что это место существует и влияет на функционирование)
д) копируете squash/NBD архивы в nfs
е) создаете/копируете tftp-структуру
ж) настраиваете файрвол
(За последней строчкой тоже скрыта проблема — почти все хау‑ту в интернете
предлагают для nfs под firewalld: firewall‑cmd ‑add‑service=mountd что на SL почему‑то не срабатывало. Сложилось ощущение, что часть таких выкладывальщиков даже не пытаются проверить в работе свои подсказки сами. У нескольких мелькал абсолютно разный набор портов выше 30 000. Это показало, что там сервис открывает динамический набор портов.
В итоге написал одностроковый скрипт, который выбирает все прослушиваемые порты выше 30000 у rpc.mountd и открывает их в firewalld).
Webmin (да, попса, да не-хардкор)
Вебмин в(для) SL, в отличие от LTSP, не тащили никогда, в паре мест я видел (и допускаю, правдивые) отговорки типа: это дырявая‑перловая‑каша‑под‑рутом или есть альтератор‑и-поэтому‑это‑Вам‑не‑надо.
Для себя предполагаю только 1 сценарий (и он единственный с самого начала
использования этого пакета): добавление‑удаление в веб‑интерфейсе сертификатов OpenVPN‑server (кстати, модуля OpenVPN в официальной поставке Webmin нет года уже как 2 или 3, да и тот был — коряв по самое. ).
Поэтому можно и так (ну, относительно безопасно):
logon-by-ssh
systemctl start webmin
to-do-something-in-browser (very-rapidly)
systemctl stop webmin
log-off
Итак, минуя стадию рассказа об экспериментах:
а) ставите в систему необходимые для Веб-мина perl-пакеты, perl-Net-SSLeya, perl-DBM
б) берете rpm-пакет Webmin 2.000 и при помощи mc разархивируете его в /usr/libexec/webmin (и один PAM-модуль кидаете в нужное место в etc) — структура прекрасно видна в пакете-архиве.
в) запускаете (в этом вся прелесть версии 2.000) /usr/libexec/webmin/setup.sh , отвечаете на подсказки-вопросы (я вот сказал, что у меня Ubuntu-версия-20, при этом руководствовался тем фактом, что в Ubuntu так же, как и в SL10, root неактивен, и потому Веб-мин спрашивает нас пару логин-пароль для создания внутреннего пользователя), скрипт сам все создает и активирует. (https://help.ubuntu.com/community/WebminWithoutARootAccount)
г) открываете в вашем файрволе порт 10000.
Вуаля. (не забудьте стартануть сервис, если надо).
О возможности «типичных» реализаций бездискового клиента
Вообще, это невероятно благодатная, бездонная тема для Linux. И именно поэтому буду относительно краток.
С ней я не знакомился, т.к. использовал , в основном, mkinitramfs (родное для Ubuntu), а не-в-основном :))) — dracut
На мою (или вашу — как посмотреть) удачу, dracut также присутствует в репозитарии SL.
(Кстати — работу make‑initrd, судя по докам, тестируют в Alt, Ubuntu, Fedora).
Здесь я просто заострю внимание на двух моментах, которые вызвали серьезные заминки у меня (и просто скажу, как я скорее обогнул, а не решил эти вопросы).
Пост 253 759 — это, честно говоря, вариация какой‑то очень давнишней англоязычной статьи.
И я не удивлюсь, если есть еще более старые варианты намека‑на‑реализацию (а не реализации).
Костяк же моего варианта такой (я навешиваю на виртуальное дерево в нужных точках squash‑образы, в типовой реализации на образ‑корень навешиваются образ модулей и образ прошивок, но общее количество таких образов, как бы развешанных по дереву, лимитировано только объемом ОЗУ):
. let "imgCount= imgCount + 1" mkdir -p $/mnt/ # rootmnt --> /mnt ---> /lib$cow mkdir -p $/mnt/lib$cow # | | # | +---------->/up # | +---------->/work mkdir -p $/mnt/lib$cow1 # +-------> /lib$cow1 # # but . lib$cow/up - must be in tmpfs. - so DO IT AFTER mount. mount -t tmpfs -o size=100% none $/mnt/lib$cow mkdir -p $/mnt/lib$cow/up mkdir -p $/mnt/lib$cow/work mount $ $/mnt/lib$cow1 -t squashfs -o loop mount -t overlay -o \ lowerdir=$/mnt/lib$cow1,\ upperdir=$/mnt/lib$cow/up,\ workdir=$/mnt/lib$cow/work overlay $$ .
(Это относительно гибкий и модульный вариант, позволяет реализовывать разные варианты загрузки бездисковый станций. Для примера — можно одни станции грузить с минималкой kernel‑modules‑x.xx.xx , а другие — уже с добавлением kernel‑extra‑modules‑x.xx.xx . Ну и т. д. и т. п.)
Итак, возвращаемся к нашей теме — к проблемкам. Обе заминки оказались связаны с
моментами инициализации сети.
Оказывается, в SL он лежит по адресу /lib/initrd/bin/busybox (там его берет их система образов нач-загрузки, а больше он там ни для чего не нужен, судя по всему).
Далее, их утилита arping этом дистрибутиве (а может, именно эта конкретная версия), инкапсулированная в initrd — на этапе загрузки мешала нормально получать адрес по dhcp.
Поэтому в module-setup.sh нашего дракут-аддона мы arping игнорируем, делает сим-линк на busybox (проверив, если это реализация busybox-a c arping):
for _i in $($_busybox --list); do if [[ $ == arping ]] ; then _path=$(find_binary "arping") [ -n "$_path" ] && ln_r /usr/bin/busybox "$_path" fi done
За-ради-смеха: на этапе тестов‑перебора я поначалу (еще не сообразив, где что) брал busybox из Ubuntu-22 и переименовывал в arping (тоже срабатывало).
Несмотря на то, что основной (почти весь) кусок моего кода работает в хуке pre‑mount (можно и в mount)(и в Fedora при тестах вел себя нормально), в варианте initrd, сгенерированном системой dracut в SL, на этом этапе загрузки почему‑то сеть еще не успевала подняться и nfs‑root‑каталог не был виден/доступен.
Сразу же после вставки «sleep 20» всЁ вроде как заработало. Некрасиво.
Был вставлен цикл ожидания адреса IP на интерфейсе загрузки (интерфейс находим через сопоставление адаптеров с мак‑адресом, взятым в kernel‑cmdline‑параметре BOOTIF).
Это, собственно, само тело цикла ожидания:
ifName=$(ip -o l | grep $ | cut -f2 -d" " | sed "s/://") if [ -n "$" ] ; then Ip4Adr=$(ip -4 -o a s $ | awk "" | cut -f1 -d"/") [ -n "$" ] && break || ulog_msg "\n$ $ Waiting for IP4. \n" else ulog_msg "\nWaiting for network interface. \n" fi sleep 1
Все равно, выглядит это УРОДЛИВО, но реальный период ожидания у меня от 1 до 3 секунд, и длинной паузы теперь нет (допускаю, что с несколькими адаптерами в системе финт может не заработать).
Так или иначе, необходимые нам 2 с половиной сервиса были плавно перетянуты под крыло отечественного дистрибутива (благо, каталоги/файлы с конфигурациями сервисов скопировались без изменений).
На этом всЁ (Ваш продолжающий вести тщательные наблюдения Кэп).