Тихая загрузка 2.0

15.11.2019

В продолжение моих предыдущих изысканий. Нашёлся параметр загрузки ядра Linux, который гасит все экранные сообщения легко и изящно, переводя их на «пустую» консоль. Это console=ttyS0. Для достижения нужного эффекта нужно только добавить второй параметр, отключающий мигание курсора:
console=ttyS0 vt.global_cursor_default=0
Вот и всё! Одна строка заменяет собой целую статью Silent boot на арчвики.


Снова про Linux

17.10.2019

Недавно у меня был интересный опыт установки нескольких дистрибутивов Linux в среде VirtualBox 6. Требовалось проверить сборку одной софтины под разными системами, поэтому я соорудил небольшой тестовый стенд из нескольких виртуальных машин. В частности, я ставил следующие 64-битные дистрибутивы в их стандартной поставке:

  • Ubuntu 18.04
  • Fedora 30
  • Rosa R11
  • Alt P8
  • openSUSE Tumbleweed

Софтина везде собралась в итоге, но параллельно я отметил, что в VirtualBox нормально умеют работать далеко не все линуксы. Общая проблема — отсутствие в репозиториях актуальной версии VirtualBox Guest Additions и ошибки при сборке этих гостевых дополнений вручную. Меньше всего проблем в Ubuntu, Fedora и Rosa — там гостевые дополнения работают отлично. Альт и openSUSE оказались довольно бестолковыми и глючными, хотя и с ними можно работать при большом желании.

Однако, учитывая крайне низкую производительность рабочего стола Gnome при работе с виртуальным графическим адаптерам, можно сделать вывод, что лучше всех из моего списка работает именно Rosa с Плазмой. Мои поздравления отечественным разработчикам!

Я уже довольно давно пользуюсь Росой как дома, так и на работе, и постоянно сравниваю её с другими дистрибутивами. На мой взгляд, Rosa R11 — это очень хорошо сделанная домашняя система, которую стоит поставить как себе, так и другим людям. В ней используется базовая платформа 2016 года, однако большая часть прикладного ПО обновлена до актуальных версий. Особо отмечу:

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

Загрузить свежую сборку Rosa R11 можно здесь.


Немного о быстрой (и тихой) загрузке

01.09.2019

Данная запись дополняет мою прошлую заметку про загрузку Linux без экранных сообщений. В этот раз я покажу, как можно организовать загрузку в обход Grub2, т.е. обойтись без стороннего загрузчика вообще. Нам понадобится система с поддержкой UEFI и примерно 5 минут времени.

Современных компьютеров без UEFI днём с огнём не сыщешь, и даже моя рабочая лошадка родом из 2011 года прекрасно поддерживает эту технологию. В Linux имеется замечательная утилита efibootmgr, управляющая загрузочными записями прямо в ПЗУ материнской платы. С помощью Efibootmgr можно добавлять, удалять и менять приоритет загрузки этих записей. Efibootmgr может добавить запись, ссылающуюся на grub2-efi — в этом случае вы увидите меню Grub вашего дистрибутива. Но можно сразу указать путь к vmlinuz и initrd, а также произвольный набор параметров ядра, и тогда Linux будет загружаться безо всякого Grub. Если у вас на ПК установлена только одна ОС, то это прекрасный способ сделать процесс загрузки более быстрым и плавным.

Для реализации этой идеи для начала нужно скопировать образы vmlinuz и initrd из /boot куда-нибудь внутрь EFI-раздела. В моём случае это директория efi/opensuse. Я переименовал эти файлы в initrd.img и vmlinuz.efi для удобства, но названия могут быть любыми. Далее следует ввести команду примерно такого вида:
efibootmgr --create --disk /dev/sda --part 1 --label "opensuse" -u --loader '\efi\opensuse\vmlinuz.efi'
"root=/dev/sda2 initrd=/efi/opensuse/initrd.img resume=/dev/sda2 splash=silent plymouth.enable=0 quiet elevator=noop logo.nologo acpi_osi=Linux acpi_backlight=vendor audit=0 rd.timeout=120 scsi_mod.use_blk_mq=1 dm_mod.use_blk_mq=1 systemd.show_status=0 rd.udev.log-priority=3 ipv6.disable=1 loglevel=3 vt.global_cursor_default=0 systemd.log_target=null systemd.journald.forward_to_console=0 systemd.default_standard_output=null systemd.default_standard_error=null init=/bin/systemd"

На что нужно обратить внимание:

  • У меня EFI-раздел находится на /dev/sda1, а корневой — на /dev/sda2 (у вас может быть иначе);
  • Я отключил заставку Plymouth, указал планировщик ввода/вывода Noop, отключил IPv6 и убрал вывод сообщений на экран (тут довольно много опций, с избытком);
  • Нужно не забыть передать UEFI-загрузчику путь до Systemd. В openSUSE это /bin/systemd, но в других системах может быть иначе, например в Росе это /lib/systemd/systemd.

Далее нужно указать приоритет записей:

efibootmgr -o <номер 1>,<номер 2>...

Можно просто удалить все остальные записи кроме нашей:

efibootmgr -b <номер записи> -B

Дополнительно имеет смыл залезть в UEFI BIOS и включить там быструю загрузку, когда система не показывает логотип производителя, не пытается опрашивать USB-устройства и т.д.

Мой результат: от нажатия кнопки питания на системном блоке до полной прогрузки KDE Plasma проходит 25 секунд, причём половина этого времени проходит ещё до загрузки Linux.

Вот и всё. Если ваш дистрибутив всё равно загружается слишком долго, посмотрите вывод команды systemd-analyze blame. Скорее всего, какой-то сервис инициализируется слишком долго — иногда его проще отключить.

P.S.

Для отключения неопрятных сообщений в консоли, которые мигают, например, перед выключением/перезагрузкой системы, существует простой хак:
sudo systemctl disable getty@tty1.service
Теперь у вас нет консольного терминала, но зато выглядит всё просто отлично!


Загрузка Linux без экранных сообщений

23.04.2019

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

Мне хотелось сделать так, чтобы моя ОС Rosa R11 загружалась максимально аккуратно, без чего-либо лишнего на экране. Отправной точкой послужила статья про «тихую загрузку» для Arch Linux, а примером для подражания — готовящаяся к релизу OpenMandriva Lx 4.0. В Мандриве загрузка происходит просто идеально: после меню Grub2 экран гаснет и загорается уже в KDE Plasma 5. Красота!

Сделаем так же в Росе.

Используем набор параметров из OpenMandriva:
quiet splash logo.nologo acpi_osi=Linux "acpi_osi=!Windows 2012" acpi_backlight=vendor audit=0 rd.timeout=120 scsi_mod.use_blk_mq=1 dm_mod.use_blk_mq=1 rd.systemd.show_status=auto rd.udev.log-priority=3 loglevel=3

Их нужно добавить одной строкой в /etc/default/grub, в качестве значения параметра GRUB_CMDLINE_LINUX_DEFAULT. Для применения понадобится выполнить команду:
sudo update-grub2
Но это ещё не всё: у нас по-прежнему моргает полоска курсора при загрузке и отображается сообщение Started bpfilter. Мигание курсора отключается параметром vt.global_cursor_default=0 (нужно добавить его к описанному выше набору), а для подавления bpfilter мы просто забаним соответствующий модуль ядра (при условии, что сам Bpfilter вам не нужен). Этот модуль отключается хитро: его недостаточно указать в списке blacklist, т.к. по зависимостям других модулей он всё равно будет загружаться. Для решения проблемы откроем файл /etc/modprobe.d/blacklist-mdv.conf и добавим в конец следующую строку:

install bpfilter /bin/false

Кстати, в Росе можно открывать системные файлы в обычном редакторе Kwrite: при попытке сохраниться он запросит пароль root, а не пошлёт вас куда подальше…

В принципе, на этом всё. Что можно улучшить? Во-первых, если при выключении/перезагрузке Linux у вас система висит 1,5 минуты, то можно исправить это, отредактировав файл /etc/systemd/system.conf. Там нужно раскомментировать параметр DefaultTimeoutStopSec и задать ему поменьше секунд. У меня он выглядит так:

systemd

Также, для управления настройками Grub2 удобно использовать графическую программу Grub2-editor. Для Росы можно взять пакет здесь. После установки в параметрах KDE, в разделе «Запуск и завершение» появится новый раздел:

grub2-editor


Sailfish X на Sony XA2

29.03.2019

Мой переезд на Sailfish X откладывается до лучших времён, т.к. текущий уровень поддержки моего аппарата Sony XA2 оставляет желать лучшего. Давно не видел такого количества глюков в одном списке, хорошо хоть разработчики честно признают проблемы!


elementaryOS

11.01.2019

Совершенно случайно обстоятельства сложились так, что меня в Интернете считают специалистом по настройке и кастомизации elementaryOS. Я до сих пор получаю в почту комментарии к своим старым статьям о том, как довести до ума версии Luna, Freya и Loki. В своё время мне действительно было это интересно, но это время уже позади. Когда в октябре 2018 года вышла версия 5.0 Juno, мне не захотелось делать полноценное руководство для этой системы по довольно банальной причине: это не очень хорошая система. Команда и сообщество elementary очень малы, у проекта очень мало ресурсов на полноценное развитие, не говоря уж о QA. Вы заметили, что у elementaryOS нет форума, полуживые аккаунты в соцсетях, а официальный русский канал в Telegram забит трэшем и школьным ололо в стиле MDK? На этом фоне меркнет даже тот факт, что в сей замечательной ОС нет системного лотка (но его можно вернуть).

На самом деле, с 2003 года, когда я скачивал пакеты kdebase и kdelibs версии 3.2 на нашей кафедре редактирования и издательского дела, почти ничего не изменилось. Во всяком случае, я по-прежнему использую самую лучшую и мощную среду рабочего стола (KDE) и не могу нарадоваться этому. Поэтому в новом году я постараюсь писать больше именно о возможностях KDE Plasma Desktop.

 


KMail и Akonadi

11.01.2019

Принято считать, что openSUSE нынче уже не тот. Ошибок, мол, много. Но вот показательный пример.

В декабре все три используемых мною дистрибутива — Rosa, OpenMandiva и openSUSE — собрали KDE Applications 18.12. Я являюсь активным пользователем почтового клиента KMail, который использует для доступа к данным подсистему Akonadi. На данный момент результаты забега следующие:

Rosa. Akonadi работает и даёт настроить почтовый ящик Gmail. Но, при попытке скачать письма валится ошибка akonadi_imap_resource. Работать нельзя.

OpenMandriva. Akonadi не работает и даже не запускается. Кое-как я смог его запустить, но настроить почтовый ящик не вышло: всё падает и отваливается ещё на этапе авторизации в Google, причём падает всё тот же akonadi_imap_resource.

Обе системы ещё не довели до ума KDE Applications 18.12. В Росе сейчас внутреннее тестирование и QA (напомню, что релиза Rosa R11 пока не было), да и OpenMandriva 4.0 всё ещё находится в состоянии Alpha 1. Вроде как и нельзя никаких претензий предъявить.

Но в openSUSE Leap 15 репозитории с новыми версиями KDE, KF5 и приложений тоже считаются тестовыми и не до конца стабильными, однако в этой системе у меня KMail работает идеально. Никаких ошибок, программа безупречно запускается и корректно получает почту. Выходит, что не так уж и нестабильна openSUSE?