LINUX.ORG.RU
ФорумTalks

Я понял почему гентушники не любят systemd

 ,


3

2

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

Хотел поставить сразу с systemd, привык к нему на федоре, да и обучаться премудростям openRC было неохота, его кроме генты никто не использует. В процессе установки меня много раз посещало искренне удивление: как так-то? Неужели, блин, за столько времени нельзя было сделать все по-людски?

Это не то, чтобы пост для поплакаться, просто хочу поделиться впечатлениями, ну и гентоводов послушать, может я что-то не так понял. По старой привычке я /usr делаю отдельным разделом. Никакого технического обоснования нет, просто привычка.

Размечаю /boot, /boot/efi и большой PV на все остальное, создаю разделы, монтирую, делаю chroot, разворачиваю stage3, качаю ядро, конфигурю с поддержкой systemd и efistub. Пока все пучком. Надо ставить, собсно, systemd. Делаю emerge -av systemd, и хрен там был, udev блокирует, а emerge, понятное дело, слишком туп, в силу чего останавливается в растерянности, даже не делая попыток как-то помочь. Сношу udev, маскирую, делаю emerge -Nav virtual/udev systemd, вроде все завертелось. Пересобрал мир с -uDNav, заинсталлячил ядро и модули.

Теперь надо сделать initramfs, т.к. /usr на отдельном диске, и оно не заработает иначе. Ставлю genkernel, оно говорит, что поддержки systemd не будет и если таковая нужна, то надо ставить сабайоновский genkernel-next. Невелика беда, ставим, генерим рамдиск, копируем все хозяйство в \EFI\boot\gentoo. Прописываем все в EFI со всякими там root=, dolvm и прочими. Перезагружаемся, и тут начинается.

Ядро грузится, получает cmdline от EFI, находит группу томов и выпадает в кернел паник. Епрст, разрешение EFI фреймбуфера не позволяет увидеть что произошло, стек-трейс занимает весь экран. Что за бодяга, перекомпиляю ядро с DELAY_PRINTK, прописываю в EFI boot_delay=200, перезагружаюсь, жду пять минут пока раздуплится рамдиск, дожидаюсь паника и он опять проскакивает мгновенно и ни рожна понять не возможно.

Думаю, ладно, убираю boot_delay, ставлю debug, перезагружаюсь, попадаю в среду initramfs. Монтирую руками, все монтируется, и корень, и /usr, проверяю initramfs.mounts, проверяю fstab, все на месте, все парсится, все должно работать, но не работает.

Хрен с ним. Ставлю GRUB2, прописываю графический режим 1600х1200, убираю из ядра четверых пингвинов, которые полэкрана загораживают, делаю grub2-mkconfig, перезагружаюсь.

Понятное дело, что там «trying to kill init», я это подозревал. Интересна причина: «realpath: applet not found». Мало того, что эти утырки-майнтейнеры ставят systemd в /usr. Это, блин, надо было как минимум жопой думать, они бы еще ядро в /var/opt положили. Более того, в genkernel есть конфиг initramfs.mounts, в котором прописано какие точки монтирования из корневого fstab надо смонтировать из initramfs. По-умолчанию там стоит /usr, то есть, /usr должен монтироваться без всяких дополнительных телодвижений. Но есть одно «но». Дженкернеловские скрипты юзают realpath чтобы что-то там прочитать, девайс-ноды, видимо. Занятая коробка используется своя и пересобирается по конфигу каждый раз когда генерится initramfs. realpath в этом сраном конфиге выключен нафиг, таким образом, initramfs теряет способность что-либо монтировать кроме корня, пока ты не найдешь причину и не включишь в конфиге занятой коробки этот realpath. Очень gentooway-но: мы настроим пристаней с кораблями и заминируем нахер все подходы, чтобы никто никогда не смог подплыть. На это накладывается трудность диагностики ранних паников - буфер консоли уезжает. В результате получаем неочевидную и очень трудно-диагностируемую проблему.

В результате я включил realpath, все пересоздал, снес обратно GRUB2, перепрописал все в EFI и наконец получил заветный шелл. Осталось немного потрахаться с конфигурацией ядра (не уверен, что звуковухи подцепились) и все будет ОК.

Зато я понял почему те, кто сидит на генте, так не любят systemd. Просто в дистрибутиве все сделано через жопу. init ставится в /usr, одна генерилка рамдисков заброшена уже лет пять, вторая сломана, emerge слегка недалек и туповат.

Зато интересно. Надо будет продолжить, давно я такого удовольствия от техноложества не получал.

кто сидит на генте, так не любят systemd. Просто в дистрибутиве все сделано через жопу

1. У меня установлен systemd. 2. В том, что ты рукожоп не читающий маны виноват вовсе не дистр.

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

А у тебя /usr на отдельном разделе? Ткни меня в ман, где написано: «не забудьте включить реалпас в бизибоксе, иначе /usr вам не видать как своих ушей»

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

Не, я верю что оно работает, и я в конце концов добился этого. Смущает подход и отсутствие внимания майнтейнеров к деталям.

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

Кстати, чем вы генерируете initramfs? genkernel-next или dracut? Последний я не пробовал (ну,в смысле, в федоре-то пробовал, конечно), может он бы заработал из коробки.

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

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

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

Прикольно. Припоминаю, что когда systemd приехал в арч, который был первым на systemd, то все с полпинка обновилось и правильно зарыгало само собой. Значит мне предстоит интересная эпопея.

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

Кстати, официального мануала по установке gentoo с systemd вообще не существует, так что я не понимаю про какие такие маны ты говоришь.

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

Пользователи systemd должны страдать, муа-ха-ха! Вы его ещё не запустили, а он вас уже за<цензура>манал, однозначно тег «история успеха» ;dd

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

Мало того, что эти утырки-майнтейнеры ставят systemd в /usr. Это, блин, надо было как минимум жопой думать, они бы еще ядро в /var/opt положили.

А у тебя /usr на отдельном разделе? Ткни меня в ман

Ensure /usr is present at boot time https://wiki.gentoo.org/wiki/Systemd#Ensure_.2Fusr_is_present_at_boot_time
Due to this, many upstream developers have decided to consider the problem of a separate /usr that is not mounted during early boot an outdated question, and started to close bugs regarding these issues as WONTFIX. We certainly cannot blame them, as the benefit of supporting this is questionable and brings a lot of additional work with it. http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken/
Chaser_Andrey ★★★★★
()
Последнее исправление: Chaser_Andrey (всего исправлений: 1)
Ответ на: комментарий от Chaser_Andrey

То, что ты процитировал, немного о другом. Там говорится, мол, «если у вас /usr отдельно и не монтируется в инитрамфс — то ваши проблемы». А тут проблема в том, что примонтировать /usr из инитрамфс само по себе проблема, потому что генерилка кривая.

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

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

Но вообще - зачем чинить то, что не нужно

l0stparadise ★★★★★
()

а emerge, понятное дело, слишком туп, в силу чего останавливается в растерянности, даже не делая попыток как-то помочь

Ыхыхы. Посмеялся, спасибо.

Проскочила несмелая мысль: «флаг...»

Сношу udev, маскирую

Перекрестил...

Ставлю genkernel

Грустно вздохнул... :(

надо ставить сабайоновский genkernel-next

Достал попкорн

Ядро грузится, получает cmdline от EFI, находит группу томов и выпадает в кернел паник.

Хороший попкорн.

Мало того, что эти утырки-майнтейнеры ставят systemd в /usr.

Проскочила несмелая мысль: «ман...»

Это, блин, надо было как минимум жопой думать, они бы еще ядро в /var/opt положили.

Хороший попкорн.

Зато интересно. Надо будет продолжить, давно я такого удовольствия от техноложества не получал.

Спасибо тебе. Попкорна объелся на неделю вперед.

А теперь, пожалуйста, набери в google фразу «Gentoo systemd» и пройди по первой ссылке. Там и про UEFI будет, и про /usr и про правильный USE флаг, который, как я понял, ты так и не установил.

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

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

Кстати, официального мануала по установке gentoo с systemd вообще не существует, так что я не понимаю про какие такие маны ты говоришь.

У Gentoo одна из лучших документаций. Лучше только у arch (и я с этим соглашусь, иногда сам туда заглядываю, благо всё применимо).
Как найти man по systemd в gentoo я указал выше.

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

Кстати говоря, по запросу «genkernel realpath» вторая ссылка в гугле, как раз багрепорт на эту тему. Если смертельно важно - размаскируйте 58ую версию - там пофикшено.

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

А чем тогда генерить initrd? dracut? чем оно лучше при условии, что ядро все равно ручками, а genkernel только для сборки initrd?

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

Я не использую initrd (предпочитаю всё делать максимально просто) потому посоветовать не могу. Но google://Gentoo initrd бросает на мануал, где рекомендуют genkernel и drakut . Попробуй по очереди или дождись когда кто-то здесь из опыта тебе подскажет (хотя я бы открыл для этого новую тему; хотя нет - быстрее попробовать).

Kroz ★★★★★
()

Как система инициализации systemd не является чем-то плохим. Но только как система инициализации. То, что из systemd делают ни в какие ворота не лезет.

С Уважением, гентушник.

Deleted
()
Ответ на: комментарий от alex_the_v

dracut, там нормальная поддержка systemd, внезапно

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

Да, весело.

Знаешь, когда я занимаюсь похожим мозахизмом, я предполагаю что ценность результата хоть ненамного но больше 0. В этом смысле роль ССЗБ мне чужда.

К примеру, недавно загружал компьютер с USB флешки. Исходные данные: BIOS не поддерживает загрузку с USB флешки...

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

Так я именно о раздельном /usr написал, это корень проблемы.

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

Chaser_Andrey ★★★★★
()

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

Теперь надо сделать initramfs, т.к. /usr на отдельном диске, и оно не заработает иначе.

Хе-хе.

shell-script ★★★★★
()
Ответ на: комментарий от Alyssa

Возможно. Просто очень часто натыкался на подобные этому посты касательно systemd и gentoo. Сам-то я не пробовал, мне systemd не нужен.

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

я сам натыкался на глюки и нерабочесть генты с systemd, но это было пару лет назад

Alyssa
()
Ответ на: комментарий от alex_the_v

У меня на отдельном шифрованном разделе, ничего толком настраивал сверх нормы, просто прошелся по манам и заработало с первого раза.

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

Мазохизм.
У меня раздел /boot на флешке, т.к. не хотел марать SSD некошерным FAT32.

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

значит ты - позёр.
труЪ-джентушники против системд.

труЪ-джентушники
против

А может позёр ты вместе со всеми «труЪ-джентушниками»?

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

Сам по себе юзкейс «/usr на отдельном разделе» в systemd считают весьма важным. Проблема возникает тогда, когда его не монтируют из initramfs.

intelfx ★★★★★
()

Нет, не потому. Просто большинству гентушников не нужны навороты и фичи systemd, достаточно openrc.

Lavos ★★★★★
()

Зато я понял почему те, кто сидит на генте, так не любят systemd. Просто в дистрибутиве все сделано через жопу.

Баттхерт неосилятора. Ничего нового ты не сказал. Пути установки systemd регламентированы апстримом, попытки их поменять вызывали аццкую боль, апстрим предпочитал отвечать «ставьте куда вам сказано и не жужжите».

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

dracut?

Он самый

Последний я не пробовал (ну,в смысле, в федоре-то пробовал, конечно),

А надо было, не пришлось бы писать простыню

может он бы заработал из коробки.

Странно само понятие коробки применительно к gentoo

ps: пользователь systemd с версии 11 (это была первая версия, которая смогла хотя бы собраться). Gentoo, Funtoo.

imul ★★★★★
()

гентушники не любят systemd

Но ведь это не так

x0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.