Моя дорога в Арч

Что ж. Я таки запишу это.

Всё началось с того, что я уже около двадцати лет пользуюсь такими ништяками, как Total Commander с заточенными плагинами, настройками, выученными хот-кеями и прочим фаршем, AIMP с лаконичным, но наглядным скином, кастомными PotPlayer, IrfanView, Notepad++, Process Explorer… И всё это приправлено …

Так, мне нужен хот-кей для сохранения снимка активного монитора.

Это удобно, но после настройки

Это удобно, но после настройки

И это всё было приправлено вымученной Виндой: реестр; системный журнал («Просмотр событий»); жонглирование буквами дисков; «активация»; «мастер установки», предлагающий установить попсовый браузер (это не про ОСь лично, но про экосистему); панель управления в стиле Windows 10 (ну хоть не все двадцать лет); файервол в стиле Windows 10; антивирус и »[проактивный] контроль активности» в стиле Windows 10; произвольное включение сразу после перехода в спящий режим (даже с запретом на подобные таймеры) и т.д. Не исключаю, что я излишне придираюсь.

Возможно

Возможно

[spoiler=«А эта система управления правами доступа…»]Захотелось мне однажды навсегда отключить предупреждение UAC при запуске первой NFS Carbon. В 2021-м году, на Windows 10. Я этот экзешник тогда часто запускал. Так вот нет простого способа сделать «я доверяю этому файлу, оставьте его в покое», не отключая UAC полностью. Можно создать в планировщике задачу на запуск с правами админа и сделать ярлык на её запуск на рабочем столе, но тогда не получится запускать это дело в режиме совместимости с Windows XP…

А какой там интерфейс назначения прав для владельца, групп, пользователей…[/spoiler]

ИМХО, установить и настроить Винду, насколько она позволяет, не сложно. Может, я сам виноват, но как операционной системой мне ей не комфортно пользоваться. Хотя она весьма предсказуема.

Ещё мне надо добавить проверку орфографии в VSCode.

[offtop]В универе, кстати, мне нравилось через загрузку с дискеты копировать [NT]LM-хеши и дома их вскрывать каким-нибудь Proactive Password Auditor от уважаемых ребят из Elcomsoft или брутером SAMInside. Я с обменников качал дистрибутивы с крэками. Но не какие попало, а по ссылкам из шапки Ру-борда или какого-нибудь поста уважаемого мембера. Мда…

Вы только никому не рассказывайте

Вы только никому не рассказывайте

Позднее были Kali Linux, WPA2, airodump-ng, reaver, hashcat…[/offtop]

Так, что-то я отвлёкся. Сейчас у меня около десяти лет опыта администрирования веб-серверов. Немножко FreeBSD и множко Debian внутри Xen. Простой стек: Apache/nginx, PostgreSQL/MySQL/MariaDB, BIND9, PHP, shell и около них. Короче, я насмотрелся, как грамотно устроен промышленный линукс-софт. И меня давно уже тянуло на Линукс именно для домашнего пользования.

Я многолетний читатель Opennet и Хабра. Мониторю в том числе и статьи о софте. По обзорам, отзывам, анализу статистики github-репозиториев и скриншотам составляю представление. С месяц назад мне пришло в голову, что на Линуксе я вполне смогу найти удовлетворение всех своих потребностей в софте. Даже при том, что я привык к GUI и мышке.

Хотелось чего-то продуманного и качественного. Но не сверхстабильного Дебиана (помню, на Opennet когда-то заметка вышла, что для какого-то космического проекта решили использовать oldstable, потому что stable посчитали недостаточно надёжным, ахаха). Потому что у меня какая-то мания софт обновлять. Обязательно хочется использовать максимально более высокую версию ПО, если там уж совсем критичных багов нет. Это частый источник моих проблем… Но относительно Винды я придерживаюсь мнения пусть сначала хотя бы первый сервис-пак выйдет.

Короче, где-то начитался, что Arch Linux — это то, что мне нужно. Дистрибутив для юзеров, готовых превозмогать. (А точку тоже надо курсивом выбрать?). Роллинг-апдейты, ммм… Звучит, как отличная идея. С Винды — на Арч. Наконец-то, только прочитав о выходе новой версии, я смогу её себе установить одной командой. И подробная Вики. Ох…но. Не надо будет вручную скачивать (с официальных сайтов) дистрибутивы. В перспективе, так много себе времени можно сэкономить. Автоматизирую рутину, активней стану пользоваться клавиатурой и скриптами… И там можно будет настроить почти всё. На KDE-то. (Вы знаете тот мем про FreeBSD?). Со всякими виджетами на рабочем столе. И ничего лишнего.

Арч-подготовка

Накидал себе список для переезда. Казалось, что для всего есть годная альтернатива:

Notepad++ --> Sublime | VSCode
TC --> nnn | Double Commander
AIMP --> DeaDBeeF | Audacious
PotPlayer --> VLC | Kody
IrfanView --> XnView MP
Adobe Photoshop --> Krita
KeePass2 --> KeePassXC

Я принципиально не хотел делать Дуал-Бут для постепенного перехода. Пробовал так уже лет 12 назад и не взлетело, потому что зачем мне загружать Линукс, если на Винде уже всё есть.

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

Долго думал, как дисковую подсистему организовать и надо ли мне /var/log выносить на отдельный раздел. И /var/tmp тоже, если уж на то пошло. С одной стороны, это красивое решение, с другой — вряд ли мне грозит переполнение диска от логов. Разве что от zip-бомбы. Какие-то сервера я у себя держать не собираюсь. А зачем тогда усложнять? На крайняк, если всё-таки понадобится, у меня уже есть опыт переноса /var/log на другой раздел без перезагрузки машины.

Скачал образ, закинул на флешку с Ventoy. Сделал Акронисом бекап системного диска. Сделал rar-архив нужных файлов со slave-диска.

А потом немного запнулся. У меня материнка P8Z77, примерно 2011-го года. UEFI как бы есть, но был выключен. Потому что с включённым Винда не загружалась. Раз Винда мне больше не нужна, можно будет активировать Secure Boot. Это ведь так круто звучит. И Grub умеет такое.

Полдня у меня ушло на то, чтобы догадаться, что для того, чтобы установить Grub с EFI-boot, надо уже быть загруженным с активной Secure Boot, + Вентой надо загружать в режиме UEFI + archiso с него — именно методов grub (load to ram почему-то не канает).

Ну ладно. Запустил archiso, примонтировал все свои четыре диска. Не мудрствуя лукаво, сделал /boot (efi) + swap + / (xfs) + /home (xfs).

Почему XFS? Ну так она мост перформанс и достаточно стабильна. И у меня есть опыт переноса /var/lib/mysql на XFS-раздел для повышения производительности потому что мне нравится оптимизациями заниматься.

Btrfs — Копи-он-Райт? Что-что, стабильности не хватает?

ext4 — что за старьё?

RazerFS дропнули.

Остальное — NTFS и всякая экзотика.

[spoiler=«К слову об NTFS»]Paragon написали годный драйвер на замену ntfs-3g, года полтора назад он вошёл в состав ярда. Только небольшая путаница получилась: иногда при монтировании тип файловой системы можно не указывать, иногда — писать »ntfs», иногда — »ntfs3»…[/spoiler]

Короче, установил. Запустил Плазму. Полазил по настройкам. Посмотрел каталог flatpak-пакетов. Очень понравилось.

Кстати, сам Arch под UEFI не загружается, потому что, видимо, в хранилище материнки нет нужного сертификата. В Ventoy предусмотрено добавление (уж не знаю, что там за магия), в Arch — нет. Discover потом предлагал установить какое-то обновление для UEFI. Я сначала подумал, что оно как раз решит проблему, но нет. Во-первых, это обновление «чёрного» списка прошивок. Во-вторых, оно, хоть и «устанавливалось», но потом опять предлагалось к установке. Потому что, как я понял, в моей материнке нет специальной read-write капсулы для установки этого обновления.

А теперь по-настоящему

Неделю в свободное время изучал статьи по dm-crypt. С LVM у меня опыта прежде не было. Про LUKS первый раз слышал. Было очень интересно.

Я собирался шифровать более одного физического диска, но не все; сделать несколько логических разделов с возможностью изменения их размеров в будущем; активно пользоваться гибернацией (suspension to disk); не планировал использовать RAID. И мне совсем не хотелось при загрузке системы вводить более одного пароля (не считая пароля пользователя ОС). На Вики приводится несколько сценариев организации шифрования всей системы, с кратким описанием их плюсов и минусов. Решил диски целиком закатать в LUKS, а внутри уже делать LVM-разделы (LVM on LUKS).

Поспрашивал Бота, как лучше дисковое пространство организовать при моих ресурсах. Говорит, Btrfs брать надо. Потому что это быстро, надёжно (за счёт CoW), стильно-молодёжно. XFS, мол, больше для HDD-хранилища подходит. А люди пишут, что если не нужны специфичные фичи, то бери проверенную годами ext4, которая до сих пор очень даже бодро смотрится и не уступает более молодым системам.

Готовился заново размечать диски. Сделал бекапы образовавшейся к тому времени домашней директории tar’ом. Успешно. Попробовал их распаковать — ошибка. Сделал ещё раз, но на другой диск. Опять не распаковывается. Вероятно, дело в крутой системе монтирования и символических ссылках, которые я уже успел применить. С непривычки. 7z успешно создал архив и протестировал.

Хотел ещё сделать SSD memory cell clearing. Однако, при загрузке с флешки hdparm показывал, что диск frozen. На такой случай есть совет на горячую вытащить SATA-кабель и воткнуть обратно, но я не стал так издеваться над своим железом ради cell clearing.

Короче, организовал шифрование по чёткой схеме, которую лучше не буду раскрывать, ибо я слегка параноик. Создал базовые разделы: /boot (efi) + swap + / (btrfs) + /home (ext4). Плюс, было два заполненных ntfs-диска, которые в будущем ждала конвертация во что-нибудь unix-овое с сохранением содержимого. В общем, я остался доволен. Позднее ещё добавил compress=zstd:1 для корня.

Драйверы nvidia поставились проще, чем я ожидал (после опыта с ноутом от Леново). Всего лишь потребовалось добавить несколько параметров в /etc/mkinitcpio.conf, /etc/modprobe.d/nvidia.conf и /etc/pacman.d/hooks/nvidia.hook и пересобрать загрузочный образ. И включить сервисы nvidia-suspend и nvidia-hibernate. Я последовал советам комьюнити воздержаться от Wayland в компании с KDE и nvidia.

Пока устранял предупреждения mkinitcpio (при генерации основного ядра, а не fallback) о возможном отсутствии некоторых прошивок для неких aic94xx, ast, qla2xxx, xhci_pci и пр., познакомился с AUR. Вики настоятельно рекомендует перед установкой внимательно изучать исходники. Хороший совет, но… Ладно, поставил пакеты для USB3, WesternDigital и ещё пару. Осталось предупреждение про consolefont, но и это потом исправил.

Начал ставит софт. Узнал, что flatpak — это как «портативные» программы, держащие всё своё при себе и не лезущие наружу. В теории. Казалось бы, по соображениям безопасности это хорошая идея, и почти как Docker для GUI. Но быстро всплыло, что добавление прослойки между программой и файловой системой не всегда одинаково полезно. И если что-то работает не ожидаемым образом, всегда есть гипотеза, что это из-за flatpak-оболочки. В совокупности выходит, что для удобства лучше всякие Firefox и медиа-проигрыватели ставить по классике через pacman. А Discover приучает по запросу вводить пароль рута не глядя.

Адаптация

Поначалу мучался без надежды найти видео-плеер, подобный PotPlayer’у. Плевался от VLC, хотя раньше был о нём положительного мнения. Не хватало отображения превью видео при наведении на полосу прогресса («как на Ютубе»), красивого и удобного GUI, добавления в плейлист всех файлов из директории, автоматического открытия субтитров из директории, отображения информации о воспроизведении (используемые декодеры, fps, пропуски кадров и т.д.). А настроек-то дофига. Смотрелось внушительно, но разочаровало как простого юзера.

Потом таки поставил mpv+SMPlayer. Мне зашло.

qBittorrent со всеми торрентами успешно удалось перенести. Благо есть профильные скрипты для пакетного преобразования путей в россыпе fastresume-файлов.

Мне удобно даты воспринимать в формате ISO. А локаль я поставил en_US.UTF-8. Оказалось, в современном KDE можно выбрать формат даты/времени из списка, но не ввести самому. Стековерфло рассказывает про замечательную en_SE с нужным видом даты. Всего-то надо в /etc/locale.conf дописать LC_TIME="en_SE.UTF-8"и радоваться успеху.

Правда, позднее обнаружилось, что в Konsole вдруг кириллические имена файлов отображаются рядами квадратиков. Хотя Dolphin показывает правильно. И дело не в NTFS или Windows-кодировке. Оказалось, это из-за той самой LC_TIME. Потому что я не раскомментировал нужную строчку в /etc/locale.gen. Да и нет там локали en_SE вовсе. Зато есть, кажется, датская, которую любителям ISO рекомендует Арч-Вики. Не упоминая, что с ней время будет отображаться с точками вместо двоеточий. Короче, нашёлся на GitLab код локали en_SE от какого-то умельца. Добавил его себе, перезапустил locale-gen, заработало.

И как оно там?

Первый скриншот рабочего стола

Первый скриншот рабочего стола

1. Запустил я однажды утром pacman -Syu и увидел предупреждения о том, что модули nvidia* не найдены. Не к добру это, подумал я. Выключил комп и ушёл на работу. Вечером пришёл, собираясь посмотреть аниме. Но система не запустилась. Замирает где-то в логах загрузчика. Загрузился с archiso, убрал упоминания модулей nvidia из /etc/mkinitcpio.conf, пересобрал образ. Графика не запускалась, других-то видео-драйверов нет. Вернул модули на место. На всякий случае ещё раз запустил pacman -Syu. Пришло обновление ядра. На этот раз при установке ошибок не возникло.

Ну и почему по Ctrl+Shift+U не выполняется ТуАпперКейс в VSCode? В кейбиндингах соответствующая запись есть и только одна, в System Settings → Shortcuts упоминаний такого сочетания нет…

Выходит, после рандомного обновления можно получить неработоспособную машину. К слову, мейнтейнеры Дебиана сделали сохранение предыдущего образа, на который можно откатиться в случае неудачной загрузки свежего ядра. За ~10 лет ни разу не возникло нужды откатываться на старое дебиановоское ядро, но сам принцип внушает уверенность. А вот арчевый fallback-образ немного про другое, но тоже вряд ли когда-нибудь пригодится.

Что ж, вот тут и будут полезны точки отката Btrfs. И стало ясно, зачем нужно lts-ядро.

2. А ещё иногда видео-система виснет. (ко времени, когда я пишу это на Хабре, зависания прекратились;, но иногда содержимое окон зеркалится после пробуждения ото сна) Хз, почему. Да так, что и USB-устройства отваливаются, и мониторы теряют сигнал. А звук работает. Надо бы по ssh подключиться в таком случае, но кроме телефона терминала под рукой нет, а через него подключение настраивать и статусы сервисов проверять не сильно хочется. Хотя, с телефона ведь достаточно только постучатся, а остальное может сделать скрипт…

3. На ночь оставил qBittorrent. Утром обнаружил комп намертво зависшим. Перезагрузил Reset’ом. Диск с NTFS оказался dirty. ntfsfix надо было ставить из AUR…

4. Думал, будет не сложно в меню Grub добавить запуск образа с Memtest. Хрен там. Надо примонтировать образ, скопировать оттуда загрузочный раздел и «полезную нагрузку», кинуть их в загрузочный раздел, прописать параметры пункта меню, включая индексы диска и раздела. Не завелось. File not found, хотя пути я внимательно проверил и перепроверил.

5. С прослушиванием музыки тут грустно. Плейлисты Аимпа не канают, нужны простые m3u. Из моего дефолтного плейлиста интернет-радиостанций «популярные» плееры открывают около 80%. Посмеялся с Elisa, в которой нет команды «открыть файл/url». Audacious-из-flatpak локальные файлы открывает через /run/user/*/doc/ , так что плейлисты не работают после перезагрузки.

Считается одним из лучших аудио-плееров под Линукс

Считается одним из лучших аудио-плееров под Линукс

6. Было интересно, насколько сложно тут запустить мой любимый DOOM. Proton делает своё дело, но 90 гигов качаются долго.

a92bfaf58ac17b81e0ff7c58f641e444.png

7. Когда NTFS-диски оказались похерены во второй раз, ntfsfix уже не помог. Вики пишет, что линукс-утилиты всё-таки ограниченно умеют в NTFS, и в тяжёлых случаях нужен chkdsk. Пришлось качать Hiren’s BootCD. Ну и назрела потребность конвертировать NTFS в ext4.

8. KDE на Иксах хорошо работает с двумя мониторами. На Винде у меня была проблема с тем, что более старый slave включается чуть раньше, и рабочий стол перестраивался под его более низкое разрешение. А на Арче всего лишь заранее не известно, на каком мониторе откроется окно того или иного приложения. Хотя в настройках дисплея явно задан primary-монитор. Наверно, надо покопаться в /etc/X11/xorg.conf.

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

Резюме

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

Arch требует к себе много внимания. Ну, а ты чего ожидал?

Много раз возникала мысль мигрировать на Debian и сидеть на Testing-ветке. Их инсталлятор в «экспертном» режиме вполне позволяет выполнить установку на существующий LUKS-раздел. Но ради чего?

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

© Habrahabr.ru