Для монтирования коневой файловой системы (root) в режиме только для чтения при загрузке в свежих версиях Fedora в опции ядра нужно добавить:rd.break=pre-mount init=/usr/bin/bash
Просто указания передачи ядру параметров "1 ro" недостаточно, так как systemd игнорирует "ro". Параметр "rd.break=pre-mount" прервёт процесс загрузки перед монтированием корневой ФС и позволит выполнить любые проверки ФС на стадии до монтирования.
URL: https://bugzilla.redhat.com/show_bug.cgi?id=1535477
Обсуждается: http://www.opennet.me/tips/info/3105.shtml
что-то вы, сударь, поторопились писать новости, не владея толком темой.Вы подменяете init - о каком еще после этого systemd может идти речь?
Вы используете недокументированный (как обычно, впрочем) параметр, обрабатываемый вовсе не впрямую системдой, а dracut (гуглите, что это). Он же, вероятнее всего, и не умеет монтировать в r/o (systemd в этом вообще не участвует, запускаясь при уже смонтированном / ) - или, точнее, требует rd.fstab=0 чтобы не перемонтировать его с теми параметрами, что найдет под рукой.
т.е. вам, скорее всего, хватило бы root=гдеонотам ro rd.fstab=0 1 для счастья.
Хотя, разумеется, для серьезного ремонта root fs правильнее как раз вариант с подменой инита и прерыванием излишнеумного стартапа на раннем этапе - не потому что системда чего-то там не умеет, а потому что умеет слишком много и не она одна.
> Вы подменяете init - о каком еще после этого systemd может идти речь?Для сильно умных напомню, что в Fedora есть initrd, который делает слишком много.
>> Вы подменяете init - о каком еще после этого systemd может идти речь?
> Для сильно умных напомню, что в Fedora есть initrd, который делает слишком
> много.это как раз и называется dracut. К systemd он прямого отношения не имеет, кроме, конечно, совпадения радиуса кривизны корявок которыми написан и желания осчастливить типового юзверя с куриными мозгами и такими же кривыми руками. Собственно, как видим, в этом случае он даже отлично запускает вместо него подсунутый bash.
Ну просто прежде чем писать статьи на опеннете, копипастя туда методом проб и ошибок нагугленную правильную строчку - нельзя ли хоть немного времени потратить на знакомство с предметом не на уровне "делает слишком много, а чего - не знаю".
У него даже документация есть - г-но, как обычно, но документация, не вика с оборванными линками.
systemd можно использовать для создания initrd https://www.freedesktop.org/wiki/Software/systemd/InitrdInte.../как раз в этом случае и начинают обрабатываться опции, начинающиеся с rd.
> systemd можно использовать для создания initrdКонечно, можно. В том смысле, что systemd будем в нём работать, как и любая другая программа, которую вы в initrd поместите.
> как раз в этом случае и начинают обрабатываться опции, начинающиеся с rd.
Опции, начинающиеся с rd, обрабатываются dracut. Разберитесь хотя бы минимально в теме, прежде чем писать сюда. Соберите рабочий initrd вручную, без генераторов типа dracut или genkernel, хотя бы, что ли.
Сейчас нет ни необходимости, ни желания, ни dracut>When run in initrd mode, systemd and its components will read a couple of additional command line arguments, which are generally prefixed with rd.
Документация говорит, что оно будет читать, а как оно будет себя вести -- мне действительно не известно. Systemd уже обрабатывает аргумент debug и требует дополнительных аргументов для подавления своего выхлопа, вполне допускаю, что он может игнорировать аргумент init, а что, есть что-то еще кроме systemd?
>Разберитесь хотя бы минимально в теме, прежде чем писать сюда.
Не мешайте другим показывать свою некомпетентность
> Не мешайте другим показывать свою некомпетентностьВЫ про разрабов Fedora?
> Соберите рабочий initrd вручную, без генераторов типа dracutда это-то каждый васян сможет - ты вот почини рассыпавшийся dracut попробуй!
(и отдельный квест - узнать, что же такое девляпс там надевляпал, что оно не перезагружается - хотя вот казалось бы, сделано именно макаками для макак, чтоб ничего уже поломать было нельзя)
В Fedora 30 проверил опции - работает как надо.Можете нести и не расплёскивать дальше )))
> systemd игнорирует "ro"Сжечь
Зачем init=/usr/bin/bash? И почитайте уже man dracut.cmdline.
что-то вы, сударь, поторопились писать новости, не владея толком темой.
=D
> что-то вы, сударь, поторопились писать новости, не владея толком темой.
> =DСовет рабочий - что вы несёте?
Возникает вопрос. Если в fstab для / прописать ro, этого недостаточно?
Самому проверить будет быстрее чем ждать тут ответа. Есть неиллюзорный шанс, что федорин менеджер загрузки (или как оно там у них называется) проигнорирует эту опцию.Можно ещё попробовать сделать "mount -o remount,ro /" на живой системе. ;)
Оба варианта не работают.
> Монтирование корневой ФС в RO-режиме
> прервёт процесс загрузки перед монтированием корневой ФС и позволит выполнить любые проверки ФС на стадии до монтированияТ.е. по-факту вы не монтируете корень.
Извольте поправить заголовок сего "совета".
нда, глубина проработки материала уровня 2019 года