LINUX.ORG.RU

sys-fs/eudev-1.9-r1: перестал работать RUN+=

 ,


0

1

Использовал zram для свапа, настроенный по вики через udev rules и fstab, горя не знал. После обновления eudev 1.5.3-r1 --> 1.9-r1, устройства /dev/zram* остаются неотформатированными, команда mkswap не срабатывает. Параметр disksize при этом передается нормально. Враги изменили синтаксис или это баг?

$ cat /etc/udev/rules.d/10-zram.rules | head -1
KERNEL=="zram0", SUBSYSTEM=="block", DRIVER=="", ACTION=="add", ATTR{disksize}=="0", ATTR{disksize}="512M", RUN+="/sbin/mkswap $env{DEVNAME}"

Zram встроен в ядро, при загрузке через grub передается zram.num_devices=4



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

DRIVER==«»

Уверен что в новой версии это поле пустое?

Поубирай лишние условия, возможно они изменились.

KERNEL, SUBSYSTEM и ACTION в принципе достаточно как условий. Само действие ACTION(add) будет происходить только при появлении устройства, что уже нормально. Плюс ты отсеял устройства с именами в ядре - «zram0», так что выстрелить в ногу шанс маленький.

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

Поубирал:

KERNEL=="zram0", SUBSYSTEM=="block", ACTION=="add", ATTR{disksize}="512M", RUN+="/sbin/mkswap $env{DEVNAME}"

Не помогло. ATTR{disksize} передается именно тот, что я указываю (уже эксперементировал), так что устройства и ранее верно находились.

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

o_O? Может ==?

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

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

Так я не фильтрую по сайзу, а устанавливаю его.

проглядел еще в первом правиле, думал там ==. Сам я zram не пользовался, вот и удивился :-)

А с загрузкой модуля проблема - он в ядре.

выкомпиль, делов-то

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

Выкомпилил.

udevadm monitor:

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[83.191712] add      /module/zram (module)
KERNEL[83.191815] add      /devices/virtual/bdi/252:0 (bdi)
KERNEL[83.191880] add      /devices/virtual/block/zram0 (block)
KERNEL[83.191923] add      /devices/virtual/bdi/252:1 (bdi)
KERNEL[83.191973] add      /devices/virtual/block/zram1 (block)
KERNEL[83.192305] add      /devices/virtual/bdi/252:2 (bdi)
KERNEL[83.192371] add      /devices/virtual/block/zram2 (block)
KERNEL[83.192414] add      /devices/virtual/bdi/252:3 (bdi)
KERNEL[83.192637] add      /devices/virtual/block/zram3 (block)
UDEV  [83.193565] add      /module/zram (module)
UDEV  [83.194563] add      /devices/virtual/bdi/252:1 (bdi)
UDEV  [83.194892] add      /devices/virtual/bdi/252:2 (bdi)
UDEV  [83.195220] add      /devices/virtual/bdi/252:3 (bdi)
UDEV  [83.195535] add      /devices/virtual/bdi/252:0 (bdi)
UDEV  [83.196831] add      /devices/virtual/block/zram1 (block)
UDEV  [83.197048] add      /devices/virtual/block/zram0 (block)
UDEV  [83.197789] add      /devices/virtual/block/zram2 (block)
UDEV  [83.199153] add      /devices/virtual/block/zram3 (block)

Со старым eudev вывод такой же.

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

Вынес mkswap в небольшой скрипт, чтоб ругань увидеть:

mkswap: error: swap area needs to be at least 40 KiB
Потом и установку размера в него засунул. Результат тот же.

Однако, если вместо ребута или unload/load модуля рестартануть udev, то все успешно форматируется. Странно.

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

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