LINUX.ORG.RU

Arch Linux Live-USB

 , , , ,


3

2

Сидел, грыз яблоко, смотрел на ноут, ставящий обновления, и решил вдруг запостить скриншот в галерею.

Вот вам скучный скриншот, а система - достаточно интересная. Когда-то я уже её, вроде бы, описывал где-то на форуме, но расскажу подробнее. Может кому будет интересно сделать подобное.

Операционная система установлена на флешке Sandisk Ultra Flair объёмом 32 ГБ. В таком виде живёт уже около трёх лет, полёт нормальный. Используется эпизодически на самых разных железках.

В данный момент ОС запущена на Samsung NP300E5Z с процессором Intel Celeron B800 (2 ядра, 1.5 ГГц) и 8 ГБ DDR3 1333 МГц.

В качестве основной ОС использована Arch Linux. Сначала стояла только она одна, потом при помощи Bedrock Linux была преобразована в микс из трёх ОС. Bedrock Linux - это прослойка, позволяющая почти прозрачно миксовать софт из разных дистрибутивов Линукса, установленных в разные префиксы. Например, вы можете использовать для загрузки ядро от одного дистрибутива, инит и системные службы от второго, а прикладные программы - от третьего. Разумеется, не всякое сочетание компонент работает безглючно или вообще работает. Но гибкость достаточно большая.

На уровне so-файлов установленные дистрибутивы никак не смешиваются, каждый бинарник видит только динамические библиотеки от своего дистрибутива.

В дополнение к Арчу сюда были добавлены Debian 12 и Alpine. Чисто из любопытства, чтобы посмотреть, как это работает, ну и чтобы был Debian под рукой, если что-то пойдёт не так. В Debian установлен самый минимум консольного софта + XFCE.

Весь основной софт стоит под Арчем. Софт преимущественно на gtk2 и gtk3. Из софта на Qt - только qBitTorrent. Из относительно крупных программ сюда поместились Libre Office, Firefox, SeaMonkey. Остальное мелкое, но его много.

Арч обновляю нерегулярно, иногда по 3-4 месяца без обновлений. Как и со всеми прочими моими установками Арча, никаких проблем с обновлениями, о которых рассказывают древние городские легенды родом из 00-х, тут нет.

Флешка в основном используется для несложной работы с документами, работы онлайн, а также как аварийно-спасательная система, если где-либо слетела или отсутствует ОС.

Занимает всё вот столько, нужно еще вычесть отсюда 4 ГБ, которые занимает хомяк:

df -h /
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdb3           28G          19G  8,3G           69% /

Подробнее про конфигурацию.

Чтобы система могла запуститься на разном железе без пересборки initramfs, нужно внести правки в файл /etc/mkinitcpio.conf. Из переменной HOOKS нужно убрать autodetect и добавить нужное по необходимости:

HOOKS="base udev modconf block lvm2 filesystems keyboard"

Теперь хуки для mkinitcpio будут собирать универсальную initramfs, схожую с той, что используется в iso-образе с установщиком системы. А не урезаную версию, которая может загрузиться только на данном конкретном железе.

Честно говоря, я вообще не понимаю, зачем нужен этот автодетект. Типа это уменьшает размеры образа initramfs, но это экономия на спичках в ущерб универсальности.

Вот размеры универсального образа:

$ du -h /boot/initramfs*
38M	/boot/initramfs-linux-fallback.img
38M	/boot/initramfs-linux.img
36M	/boot/initramfs-linux-lts-fallback.img
36M	/boot/initramfs-linux-lts.img
39M	/boot/initramfs-linux-zen-fallback.img
39M	/boot/initramfs-linux-zen.img

Проблема, связанная с легендарным 12309. Нужно ограничить размер окна отложеной записи в страничном кэше. Это необходимо, чтобы ОС не вставала колом при интенсивных операциях ввода-вывода на медленных накопителях, таких как флешки. Делается вот так:

$ cat /etc/sysctl.d/99-my-sysctl.conf 
vm.dirty_bytes = 4000000
vm.dirty_background_bytes = 2000000

Сама проблема, как и данный фикс, были актуальны, как минимум, года три назад. Возможно, на свежих ядрах ситуация лучше, и данный фикс не нужен. Я не проверял, мне лень.

Так как система предназначена для запуска «где придётся», в том числе на системах с ограниченным объёмом ОЗУ, то настраиваем своп в ZRAM. Это позволит более-менее нормально пользоваться браузером на системах с 2-3 гигабайтами ОЗУ.

Проще всего это сделать установкой пакета systemd-swap из AUR. Вопреки названию, он не имеет никакого отношений к разработчикам systemd, да и к самому systemd практически никакого отношения не имеет. Это довольно простой скрипт на питоне, который настраивает устройства подкачки по конфигу.

В конфиге /etc/systemd/swap.conf настраиваем ZRAM. В моём случае под сжатый своп может использоваться до половины ОЗУ:

$ grep '^[^#]' /etc/systemd/swap.conf
zram_enabled=1
zram_size=$(( RAM_SIZE / 2 ))
zram_count=${NCPU}
zram_streams=${NCPU}
zram_alg=zstd
zram_prio=32767

Также из AUR я поставил пакет preload.

preload is an adaptive readahead daemon. It monitors applications that users run, and by analyzing this data, predicts what applications users might run, and fetches those binaries and their dependencies into memory for faster startup times.

Ну типа вы поняли, мне лень переводить.

По идее, это должно чуть улучшить отзывчивость при работе с медленного накопителя (флешки). Но никаких замеров я не делал.

Установлено несколько DKMS-модулей с дополнительными драйверами, которых нет в базовой поставке. В моём случае это драйвера на WiFi от Broadcom и на RTL8188eus. Есть в AUR.

В качестве оболочки у меня используется мой форк LXDE.

Внизу - панель waterline. На основной машине у меня она сконфигурирована в довольно уникальном варианте, не имитирующем никакой другой ОС. А тут я решил оставить её в стиле Windows-like.

Цветовое кодирование кнопок на панели в тон иконке приложения - обожаю эту фичу.

В трее с иконкой от parcellite - мой форк parcellite, в котором я выкинул половину кода, а оставшееся переписал так, чтобы оно работало без глюков.

Н/Д рядом с часами - это индикатор заряда батерии, а батареи в ноутбуке не установлено. Подумал вот сейчас, надо бы как-то чуть более очевидно это подписывать.

Иконка дома открывает рекурсивное меню с содержимым хомяка, откуда можно открывать файлы.

WM - openbox с околодефолтным конфигом.

В общем, всё довольно стандартно.

Потребление ОЗУ системой после логина на рабочий стол - около 400 МБ.

>>> Просмотр (1366x768, 165 Kb)

★★

Проверено: hobbit ()

Sandisk Ultra Flair объёмом 32 ГБ

у меня для такого дела имеется Kingston DataTraveler Workspace DTWS USB 32 ГБ… но почему live? я установил как полноценную систему, разве здесь не так же?

amd_amd ★★★★★
()

HOOKS="base udev modconf block lvm2 filesystems keyboard"

Можно добавить sd-vconsole и настроить /etc/vconsole.conf, чтобы шрифт в консоли менялся на этапе загрузки initramfs.

dmitry237 ★★★
()

Жирно, сложно, но красиво! За исключением скроллбара - этот мне никогда не нравился. И не понятно, он же от темы gtk2. КАК там оказался гтк2-софт?

kirill_rrr ★★★★★
()

systemd-swap из AUR

Полтора месяца назад в AUR сослали.

Автор на гитхабе пишет:

Users should migrate to systemd/zram-generator since zram should be enough in most systems

Кстати, по-умолчанию сейчас в арче zswap задействован. Отключаешь? В арче-вики советуют отключить.

Или комбайн systemd-swap заодно и zswap отключает?

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 3)
Ответ на: комментарий от kirill_rrr

И не понятно, он же от темы gtk2. КАК там оказался гтк2-софт?

Что значит «как»?) Мне вопрос непонятен. Какой софт ставишь, такой и «оказывается».

$ pactree -rlu gtk3 | wc -l
74
$ pactree -rlu gtk2 | wc -l
88
wandrien ★★
() автор топика
Ответ на: комментарий от greenman

У меня нет ни одного свежеустановленного Арча, так что я не знаю, какие там дефолты. Все системы с историей работы на много лет.

На стационарных инсталляциях у меня уже давно был настроен zswap, с тех пор как здесь на ЛОРе обсуждали этот вопрос со знающими людьми и пришли к выводу, что zswap эффективнее.

zswap-у для работы нужен реальный swap. Системе на флешке не может рассчитывать, что найдёт раздел подкачки, так что своп в zram.

Вот насчёт последнего вопроса не знаю, надо смотреть.

wandrien ★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Хм.

Добавил zswap.enabled=0 в параметры ядра, но что-то всё равно его включает.

Ладно, потом разберусь. Побежал по делам.

wandrien ★★
() автор топика

круг замкнулся - zram лучше чем swap, но что бы использовать zram нужно много ram, а если много ram swap вообще не нужен… у меня огромный автопарк - swap используют системы где ram ≤ 2 гб и то крайне редко, но делать zram при такой ram нецелесообразно, там же где ram больше 2 гб swap не используется вообще.

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

Я проверял еще давно, на системе с 2 гб я отводил 3/4 памяти под zram, это значительно улучшало поведение системы.

А ваши юзкейсы мне непонятны, в моих памяти мало всегда.

На системе с 16 гигами время от времени страницы уходят в своп.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

на системе с 2 гб я отводил 3/4 памяти под zram

может я чего не правильно понимаю? zram это же вместо swap только будет использоваться не винт, а память? и использоваться начнет только когда память закончится, а закончится она быстро - ведь ты 2\3 под zram, то есть масленое масло - вместо памяти используется память… другое дело когда памяти жопой ешь, но тогда ни swap ни zram ни нужен потому что памяти будет хватать.

На системе с 16 гигами время от времени страницы уходят в своп.

ну так с дури можно и х сломать… единственное зачем нужно много памяти это крутить виртуалки, когда на 4-х гигах винду кручу - система свопиться начинает

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 1)
Ответ на: комментарий от utanho

Сжатая память

из резервов памяти? было 4 гига памяти, 2\3 то есть 3 гига отводим под zram, 1 гиг памяти остается которая быстро кончается и начинает использоваться zram… джентельмены - вы как хотите, а я пас.

amd_amd ★★★★★
()
Ответ на: комментарий от utanho

у меня идея! втыкаешь 16 гигов памяти в пень - он все равно столько не видит и из невидимого делаешь zram.

amd_amd ★★★★★
()
Ответ на: комментарий от wandrien

Zram не выделяет физическую память

падажди… было 2 гига памяти, 2\3 из которой выделили под zram, сколько памяти осталось доступной?

amd_amd ★★★★★
()
Ответ на: комментарий от kirill_rrr

1448 пакетов в AUR, которые зависят от gtk2.

Arch Linux - операционная система без головной боли. Рекомендую.

wandrien ★★
() автор топика

панель waterline
Цветовое кодирование кнопок на панели в тон иконке приложения - обожаю эту фичу

Киллер-фича. Мне как полуслепому (не фигура речи) не удаётся ни прочесть текст, ни нормально разглядеть иконки. А вот по цветам ориентироваться вполне могу. Спасибо, забрал себе.

posixbit ★★
()
Ответ на: комментарий от posixbit

Я там ничего не делал и не тестил для поддержки ATK. Если что-то нужно доделать, пиши багрепорты, допилю.

wandrien ★★
() автор топика
Ответ на: комментарий от amd_amd

может я чего не правильно понимаю? zram

Думал, что эту статью уже все прочитали, тем более написана ЛОРовцем, https://notes.valdikss.org.ru/linux-for-old-pc-from-2007/.

p.s. Патч le9 больше не нужен, ванильные ядра ≥ 6.1 поддерживают подобный механизм из коробки.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от wandrien

2 гига

90% из них пожрало и уже зрамиться пора… где в это время живет zram под который 2\3 выделено?

amd_amd ★★★★★
()
Ответ на: комментарий от krasnh

эту статью

хорошо сам попробую - ведь пока не попробуешь не поймешь… объясни мне только одно - зачем zram если swap не используется? я так понимаю если машина не свопится - значит и зрамиться не будет, ну ей это просто не надо, то есть для теста нужна максимальная убогость - которая свопится постоянно, ну что же - готов ради эксперимента вынуть 1 плашку памяти и 1 оставить, на 1 гиге должно свопиться нормально… как думаешь сколько лучше из 1 гб ram под zram выделить?

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 2)

Теперь хуки для mkinitcpio будут собирать универсальную initramfs, схожую с той, что используется в iso-образе с установщиком системы

а вот это здраво - забрал

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

готов ради эксперимента вынуть 1 плашку памяти

Не надо ничего вынимать. В статье, что дал выше есть iso. Выстави ограничение RAM виртуальной машине, запусти iso и нагружай вкладками браузера.
А затем закрой все окна, выключи zram командой sudo systemctl stop zramswap.service и повтори нагрузку. (Возможно, для чистоты эксперимента, перезагрузить виртуалку).


Настройки сервиса в /etc/default/zramswap. Степень сжатия 1.5 (percent=150), алгоритм lz4.
Проверочные утилиты ztamctl и free -m. Еще htop, но там он не установлен.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от amd_amd

а если много ram swap вообще не нужен

false

Без свопа по тебе будет стрелять oomkiller и отвалится гибернация.

BOOBLIK ★★★
()
Ответ на: комментарий от krasnh

эту статью уже все прочитали

64-битный процессор — более слабые 32-битные не подойдут

чушь, у меня 4-ый пень на работе прекрасно справляется со всеми потребностями, думал уже на нем зазрамиться, там памяти дофига - настолько дофига, что пень ее даже всю не видит - можно зрамиться доусрачки, во вторник планирую начать - потом поведую о приросте если такое случится… кстати помнишь mitigations=off так вот где я такое только не пименял - никакого эффекта, а вот на 4-ом пне этот эффект сразу же ощутил, по этому хочу и со zram на нем побаловаться - еще прироста извлечь… в статье кстати говорится про машину с 1 гб памяти, ну а если 2 вообще жир обещается, у меня же в 4-ом пне ее 3.5 гига - вот думаю будет ли целесообразно замарачиваться с этим zram ведь за все время что этот пень у меня - он ни разу не свопился, хотя я на всякий пожарный выделил 1 гб.

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 2)
Ответ на: комментарий от Aprel

у меня глаз дергается от кіріліцы в софте

Это лечится. Хотя, сейчас мировая общественность пытается принять это отклонение за норму.

skiminok1986 ★★★★★
()
Ответ на: комментарий от wandrien

выключение zswap

ну и зря - он самый лучший, тест закончен и можно подвести итоги - swap это полный тупизм, zram хорош когда чуть чуть памяти не хватает, если же памяти не хватает дофига - zram забивается и тупит хуже swap, zswap это самое то что надо, я раньше утверждал что 2 гигов вполне хватает, а теперь утверждаю что хватит 1 гига, вот прямо сейчас пишу с 1 гига и zswap офигенно выручает, система свопится постоянно, но на отзывчивости это никак не сказывается, винт древний ide на шлейфе, а впечатление такое буд то это ssd, круто однако - ума не приложу как такое проморгал, врубил zswap везде - даже там где это нинужно.

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 1)
Ответ на: комментарий от amd_amd

система свопится постоянно, но на отзывчивости это никак не сказывается

Чтоб лишнего не свопилось:

$ cat /sys/kernel/mm/lru_gen/enabled
0x0007

$ uname -r
6.2.0


Вроде должно быть дефолтно уже во всех дистрах. Но на всякий написал, может где ‘прощелкали’. )

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Чтоб лишнего не свопилось:

что значит лишнего? для эксперимента специально оставил памяти 1 гб, что бы памяти не хватало и посмотрел как система свапится, зрамится и зсвапится, определенно могу сказать - зсвапится лучше всего, так для десктопа 1 гига памяти нормально хватает.

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

что значит лишнего

Думал, это уже давно все обсудили в темах @hakavlad. )
https://en.wikipedia.org/wiki/Thrashing_(computer_science)

Если хочется глубже влезть в теорию, то здесь дается больше инфы https://github.com/hakavlad/le9-patch#le9ec-patch.

p.s. Большинству юзеров это не надо знать, теперь все работает дефолтно с ядра 6.1.

krasnh ★★★
()
Ответ на: комментарий от krasnh

с ядра 6.1

ну у меня везде 6.5, причем в arch этот zswap сам включился, а в sid самому включить пришлось, но только включить - остальное уже настроено.

amd_amd ★★★★★
()
Последнее исправление: amd_amd (всего исправлений: 1)
Ответ на: комментарий от amd_amd

zram хорош когда чуть чуть памяти не хватает, если же памяти не хватает дофига - zram забивается

В принципе, если для zswap можно создать какой-то огромный своп-раздел/файл, чтобы нивелировать эту ситуацию, то zram должен обязательно работать в связке с пользовательским OOM-Killer (earlyoom, nohang…).

Ну и правильно подобрать размер zram0 и алгоритм сжатия, в зависимости от железа и условий эксплуатации системы. Все же если RAM всего 1G, то много нельзя требовать.

krasnh ★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
22 марта 2024 г.
Ответ на: комментарий от amd_amd

zram хорош когда чуть чуть памяти не хватает, если же памяти не хватает дофига - zram забивается

Я тут чуть позанимаюсь некропостингом, но выражу своё полное согласие и даже больше. Размещение swap-файла в zram переворачивает с ног на голову примерно все инварианты подсистемы своппинга и является очень вредной практикой.

Подробнее: раз, два.

Только zswap.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.