LINUX.ORG.RU
решено ФорумAdmin

Командная строка ядра, rootflags.


1

1

У ядра есть такой интересный параметр, как rootflags. В нём указывают опции монтирования корневой файловой системы. Странность в том, что этот параметр почему-то не принимает больше одного значения, то есть для ext3, скажем

rootflags=data=journal
работает, а
rootflags=data=journal,barrier=1
тихо падает без ошибок в dmesg и / монтируется с ro,data=ordered, (истинные опции как всегда только в /proc/mounts). Да, если в /etc/fstab указать для какой-нибудь другой ФС ext3 оба параметра, она смонтируется правильно. Кстати да, barrier=1 не нужен.
rootflags=data=journal,errors=remount-ro
Вот такой безобидный вариант тоже не будет работать.

ЧСХ, нигде, абсолютно нигде в документации мне не встречалось примера, чтобы rootflags использовался более чем с одним параметром.

$ man mount | grep rootflags
              rootflags=data=journal.
$ grep rootflags /usr/src/linux/Documentation/kernel-parameters.txt -A3
	rootflags=	[KNL] Set root filesystem mount option string

	rootfstype=	[KNL] Set root filesystem type
Я уж думал, может строка в grub.conf для ядра слишком длинная, погрепал максимальные длины
$ find /usr/src/linux/ -type f -exec grep -Hi command_line_size {} \; | grep include/asm/setup.h
Но нигде не было цифры меньше 256, а у меня вся строка меньше
$ grep rootflags /boot/grub/grub.conf | wc -c
183

Но rootflags упорно продолжает отвергать параметры, если их больше одного.

Вот, у ребят с gentoo.ru тоже проблемы, но с lilo и xfs.

Если это самхау релейтед, то корень это раздел на RAID-массиве /dev/dm-5 и используется initrd.

Deleted

Последнее исправление: fargred (всего исправлений: 3)

$ dmesg |grep rootflags
Command line: root=/dev/sda1 rootflags=errors=remount-ro,barrier=1,data=journal,nodelalloc rw quiet
Kernel command line: root=/dev/sda1 rootflags=errors=remount-ro,barrier=1,data=journal,nodelalloc rw quiet

lolЧЯДНТ?

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

Со всякими рейдами и lvm-мами как раз проблемы. Пока копал гугл, узнал, что barrier=1, например, на некоторых рейдах вообще не работает.

Deleted
()

ты думаешь, что rootflags использует само ядро, наверняка это скрипт в initramfs смотри туда и переделывай initrd

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

Перечитал man genkernel, да, там оказывается есть real_rootflags=<…>, спасибушки. Вообще там и real_root и прочее можно указывать при самой сборке initrd, а не указывать при загрузке в командной строке. Yay!

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

ты думаешь, что rootflags использует само ядро

Прости, непустой выхлоп из

$ grep rootflags /usr/src/linux/Documentation/kernel-parameters.txt -A3
тебе о чём-нибудь говорит?

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