- Alpine Linux Standard 3.18.3
- KDE (Plasma) 5.27.7
Дистрибутив: Alpine Linux Standard 3.18.3
Ядро: 6.1.47-LTS
Рабочее окружение: KDE Plasma 5.27.7
Файловая система: ext4
Среда обитания: Home-PC HDD
В начале августа состоялся очередной релиз независимого дистрибутива Alpine Linux.
Что известно об Alpine?
1) Достаточно популярный и высокооцененный пользователями (по distrowatch)
2) Маленький размер, неприхотливый к системным ресурсам, ориентированный на безопасность (проактивные функции безопасности SSP)
3) В качестве библиотеки C используется musl; все базовые инструменты находятся в BusyBox
4) Система инициализации — OpenRC
5) Собственный пакетный менеджер — apk-tools
6) В основном ориентирован на использование в контейнерах и на серверах, но может быть применен в качестве десктоп-системы
Сперва опробовал данный дистрибутив на виртуалке. Но установить его на выделенный раздел диска не смог (на весь диск ставится без вопросов и все работает). Далее, освободил под него место на диске (пришлось снести генту, которую собирал с месяц назад, но лежала она у меня практически без дела, ибо подсел на кальку).
Начался процесс установки на выделенный раздел жесткого диска, на котором у меня мирно проживают вместе винда и калька. Не знаю в чем особая причина, но команда Alpine упорно использует syslinux в качестве загрузчика по умолчанию. С ним-то и пришлось больше всего разбираться и бороться.
Сам процесс установки Alpine Linux крайне несложный и очень быстрый (это не генту собирать). По сути скрипты: "setup-alpine", "setup-disk" и "setup-desktop" делают все сами, нужно только выбрать в них нужные вам параметры. И если установка производится на целый жесткий диск, то на этом все и заканчивается (стильно, модно, молодежно)).
Но, если задумали установить Alpine на раздел жесткого диска, и на диске имеются другие ОС, то придется немного поработать. Первым делом нужно подготовить раздел(ы) под систему, отформатировать их. Мне удобнее это было делать из под рабочей Manjaro, так как при старте Alpine Live CD у него в комплекте имеется слишком скудный набор дисковых утилит, разработчики рекомендуют добавить пакет e2fsprogs: "apk add e2fsprogs".
Следует отметить, что по какой-то странной причине (отношу к особенностям busybox), монтирование дисков командой mount, может вылетать с ошибкой, если в ключах команды не была явно указана файловая система диска. При этом, иногда команда "mount /dev/sdaX /mnt" срабатывает, иногда приходится использовать "mount -t ext4 /dev/sdX /mnt". Странное поведение наблюдал и с командой mkfs, которая иногда просто отказывалась форматировать раздел в выбранную файловую систему, при том что e2fsprogs был установлен, а раздел диска был корректно создан. Поэтому я и использовал другую среду для начальной подготовки разделов для последующей установки на них Alpine Linux. При многочисленных попытках установки испробовал разные варианты разметки, в итоге пришел к одному единственному разделу.
Процесс установки после подготовки дисков выглядит примерно так:
— загрузка с live cd
— вход в систему: "root"
— настройка системы: "setup-alpine" (без установки на жесткий диск, выбираем "none" при запросе)
— монтирование разделов будущей системы: "mount /dev/sdX /mnt && mkdir /mnt/boot"
("mount /dev/sdX /mnt/boot" — если создан выделенный раздел диска под загрузчик)
("mkdir /mnt/home && mount /dev/sdX /mnt/home" — если создан отдельный диск под home)
("swapon /dev/sdX" — если на диске создан свап-раздел)
Для простой, быстрой установки на 1 единственный раздел харда нужно лишь примонтировать его в /mnt и создать внутри точки монтирования директорию /boot (больше ничего не требуется! свап вообще можно добавить в любой момент на рабочей системе и не заморачиваться на этом этапе!)
— запуск скрипта развертывания предварительно настроенной системы на жесткий диск: "setup-disk -m sys /mnt"
Происходит установка системы и… вас предупреждают, что все успешно установлено, но возможно потребуется выполнить fix mbr, чтобы система смогла загрузиться (я устанавливал в bios-boot, не используя efi). Ну и начал заниматься этой самой правкой mbr. Как итог: перестала грузиться винда (недопустимый root device), при этом калька грузится как обычно, манжара видит абсолютно все системы и прописывает их в загрузочное меню grub.
Начался изнурительный процесс восстановления загрузки винды; жалко ведь, все таки оем-система с которой поставлялся мой десктоп. Немного отвлекусь от основной темы и расскажу, как пытался решать проблему, и как в итоге просто она решается.
Начал с известного и не раз проверенного мной способа: загрузка в режим восстановления и запуск из командной строки: "bootrec fixboot". Команда завершается удачно, без ошибок. Команда "bootrec scanos" успешно находит мою винду, но команда "bootrec rebuildbcd" завершается с ошибкой, типа не могу перезаписать список загрузки ОС потому, что существует несколько однотипных записей. Загрузился с диска Сергея Стрельца и перепробовал все возможные утилиты для решения проблемы. Что только не делал: стирал и заново создавал загрузочный раздел EFI, заново перезаписывал bcd с помощью набора команд, правил вручную записи с bootice и т.п. утилит. К моему сожалению, восстановить нормальную загрузку винды не удалось.
Решил попробовать замечательную команду dd для работы непосредственно с mbr.
Первым-наперво сохранил себе копию mbr: "dd if=/dev/sda of=/home/as/backup/sda_mbr bs=512 count=1"
Далее обнулил первые 446 байт, используемые загрузчиком: "dd if=/dev/zero of=/dev/sda bs=446 count=1"
Результата никакого данное действие не произвело, пошел на крайние меры и удалил все 512 байт, выделенные под mbr в начале диска: "dd if=/dev/zero of=/dev/sda bs=512 count=1"
Как итог, — пропала таблица разделов жесткого диска, пришлось восстанавливать mbr из ранее созданной копии: "dd if=/home/as/backup/sda_mbr of=/dev/sda"
Руки почти опустились, но как говорится "утро вечера мудренее", на следующий день занялся изучением темы hybrid mbr на дисках gpt. Нашлась та самая утилита, с помощью которой проблема решилась в миг — gdisk, которая по сути аналог fdisk для дисков с gpt-разметкой. На скриншоте попытался показать, как с помощью нее создать новую загрузочную запись "protective mbr" и тем самым исправить положение. Для этого нужно из главного меню утилиты перейти в экспертное (х) и создать новую запись "protective mbr" (n), далее записать изменения на диск (w) и… вуаля!, после перезапуска компьютера с HDD у меня наконец-то закрутилось то самое заветное колесико начала загрузки винды.
За сим отступление от темы заканчиваю и продолжаю свой рассказ про Alpine Linux. На этот раз проигнорировал сообщение о необходимости правки mbr после установки, перезагрузился в манжару, а в ней update-grub все сам нашел и прописал.
Но, не тут то было, — загрузка новой Alpine системы завершается с ошибкой:
"mount: mounting /dev/sda5 on /sysroot failed: No such file or directory
Mounting root: failed.
initramfs emergency recovery shell launched. Type 'exit' to continue boot
sh: can't access tty; job control turned off"
Ручное монтирование с помощью прямого указания файловой системы диска: "mount -t ext4 /dev/sda5 /sysroot" вопрос снимает и далее Alpine нормально загружается после выхода из emergency recovery shell командой: "exit"
Однако хочется же, чтобы все работало без этих костылей. Аналогичные проблемы загрузки Alpine с использованием syslinux описаны на разных ресурсах, но итогового решения я так и не нашел. Благо есть возможность удалить syslinux и заменить его на другой загрузчик, например grub:
"apk del syslinux"
"apk add grub grub-bios"
И на этом все: после установки автоматически запустился скрипт, произошла настройка grub. Alpine наконец-то стал грузиться без ошибок и стало возможным произвести настройку DE, в качестве которого мной был выбран KDE Plasma:
"setup-desktop" и выбирай на вкус: kde, gnome, xfce, lxqt, mate (вроде всех перечислил, если не ошибаюсь))
Настройка пользователей, окружения, сервисов, установка приложений и т.п. дело не очень хитрое. В официальных репах для десктопа все-таки маловато софта, но проблема решаема (лично я добавил поддержку flatpak и установил все, что мне хотелось).
Дистрибутив вроде простой, но точно не для новичков. В качестве десктоп-системы — вполне годный вариант. Очень шустрый пакетный менеджер, к тому же удобный и понятный. Дистрибутив не отягощен лишним весом, чистая пустая плазма прям порадовала. OpenRC может и не лучший, но для меня — простой, привычный и в меру быстрый.
В сухом остатке: система вряд ли для массового пользователя, но это и не планировалось, а так очень добротный и самобытный продукт (стоит только немного разобраться).
Комментарии
12:41
12:51
12:55
13:25
13:36
13:43
14:23
14:55
Так что не могу согласится. Да, большинство в базе схожи, но есть и отличные (взять хотя бы в пример Garuda, где ядро уже кастомное)
https://habr.com/ru/articles/531872/
15:11
И зачем тогда этому самому пользователю сваливать с всеобще-стандартной СИ? (Собственно, как и ставить на дистрибутив для всякого встроеного, ДЕ)))
16:03
16:18
12:50
12:58
Напоминает обладание чем-то редким, чего мало у кого есть. А это ценилось во все времена
14:45
Внешний диск для тестов. Но это моя линия наименьшего сопротивления.
15:30
HDD на моем десктопе давно стал полигоном, загрузчик винды не раз портил и восстанавливал без проблем, правда то все было в UEFI. С подобным столкнулся впервые, но позже выяснил, что все предыдущие дистры, что я ставил в bios-mode (archlinux, artix, gentoo, calculate) собирались мной без графического установщика и корректно вставали на свои разделы и загрузчиком у них выступал grub. С альпайн я сам перемудрил, а вот графический установщик open-suse принудительно установил свой grub в mbr диска и я получил точно такую же ситуацию. Не решаемых проблем не бывает, просто есть такие, решение которых тебе пока неизвестно. Сразу вспомнились 90-е, когда после dr.web пришлось восстанавливать mbr диска рабочего компа, который доктор поломал (тогда пришлось изучать толстенную книгу по структуре жесткого диска, провозились мы с ним неделю, но ценные данные восстановили, таблицу разделов до конца к первоначальному виду вернуть так и не удалось)
16:00
Поскольку мне неизвестно решение большинства проблем, предпочитаю по возможности не рисковать.
Про авантюру — это больше про меня, в том плане, что я бы так не рисковал. Предпочитаю более дешёвые варианты. В конечном итоге отдельный диск мне обойдётся дешевле, чем ежели я запорю основную систему.
И, кстати, эта была отнюдь не критика. Поскольку такой вариант я бы не выбрал, было весьма прелюбопытно, что я и указал изначально.
15:33
15:36
16:37
09:26
Если на одном диске нужны Windows + другая ОС, то системы нужно устанавливать в одном режиме, обе в UEFI или обе в Legacy\CSM и "танцевать" нужно от Windows, в каком режиме установлена она, в таком же режиме устанавливать и другие ОС.
10:42
13:05
У вас вышло идеально.
14:29
15:53
15:57
16:23
Оказалось, что в RHEL-Fedora запись в uefi невозможно сделать утилитой grub2-install (при выключенном secure boot), пришлось вручную, как и memtest.
16:29
16:47
А меню grub для всех систем у меня сразу в нескольких местах: eos, xebian, siduction, calculate и mx21.
15:46
12:28
Мы слишком углубились в сторону и отошли от главного: alpine linux и его применимость в качестве десктоп системы.
19:35
10:36
Сильно не хватает документации
Вместо релизных репозиториев (3.17, 3.18, использую Edge - есть всё и даже больше)
Профит использования на домашней пекарне
1. невероятно прост если не лезть глубоко (apk add, apk del)
2. не жрёт ресурсов от слова вообще
3. пакеты собраны без 100500 зависимостей и не нагружают систему
12:13
13:08
"Не стоит искать проблему, там где ее нет"
19:30
21:10
во-вторых, юзверь почувствует разницу потому что
а) https://github.com/ValveSoftware/steam-for-linux/issues/9284
б) https://github.com/lutris/lutris/issues/2817#issuecomment-622143043
в) https://github.com/AppImage/AppImageKit/issues/877