[Solved] Корень на bcache -- при загрузке не собирается массив

Доброго! Посчастливилось заиметь 14 гб optan'овской памяти.
Суть проблемы: при загрузке не появляется устройство /dev/bcache0, ядро честно ждет его 10 секунд, а потом выбрасывает в emergency shell. В котором, кстати, я спокойно могу прописать echo /dev/sda1/ > /sys/fs/bcache/register, и нужное устройство появится.
Систему нужно поставить на bcache по следующей схеме (sda -- HDD, nvme0n1 -- SSD, на sdc винда и EFI):
  • /dev/sda
    • sda1 – backing device (/mnt)
    • sda2 – swap
  • sdb
    • sdb2 – esp (/mnt/boot/efi)
  • nvme0n1 – caching device

Собиралось все это дело в bcache массив согласно wiki:
make-bcache -B /dev/sda1 -C /dev/nvme0n1
mkfs.nilfs2 /dev/bcache0
mount /dev/bcache0 /mnt
...
Ядро вместе с initramfs и параметрами упаковывается в efi приложение, помещаемое в efi раздел.
Ядру передается параметр root=UUID=UUID-устройства-bcache0
В mkinitcpio.conf модуль bcache и хук bcache. Используется busybox.

Я так понимаю, что udev не хочет правильно отрабатывать правило, предоставленное хуком bcachе. Судя по тому, что в /sys/fs/bcache (при выпадании в shell) можно найти некий UUID, регистрация nvme0n1 таки происходит. Но вот раздел на hdd не регистрируется почему-то...

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

Может быть найдется спец, который подскажет, что делать, или ткнет носом в нужную страничку? Буду очень благодарен :)
Сотрудник техподдержки признался: он хорошо зарабатвыает просто потому, что умеет гуглить быстрее клиентов.
push_sla
В mkinitcpio.conf модуль bcache и хук bcache.
что конкретно прописано в mkinitcpio.conf?
Ошибки не исчезают с опытом - они просто умнеют
MODULES=(bcache)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect modconf block bcache filesystems keyboard)
Сотрудник техподдержки признался: он хорошо зарабатвыает просто потому, что умеет гуглить быстрее клиентов.
push_sla
block bcache filesystems
попробуй вместо bcache прописать bcache_udev ... и перегенери ...
Ошибки не исчезают с опытом - они просто умнеют
Там ошибка при сборке...
Hook 'bcache_udev' cannot be found
Сотрудник техподдержки признался: он хорошо зарабатвыает просто потому, что умеет гуглить быстрее клиентов.
push_sla
я спокойно могу прописать echo /dev/sda1/ > /sys/fs/bcache/register, и нужное устройство появится.
Что и прописано в DOC
Without udev, you can manually register devices like this::
  echo /dev/sdb > /sys/fs/bcache/register
  echo /dev/sdc > /sys/fs/bcache/register
Ошибки не исчезают с опытом - они просто умнеют
Without udev
Ну так есть же udev..?
И правило соответствующее пакетом предоставлено
Сотрудник техподдержки признался: он хорошо зарабатвыает просто потому, что умеет гуглить быстрее клиентов.
В /etc/mkinitcpio.conf в HOOKS попробуйте bcache перед block поставить.
push_sla
Мануалов, бложиков и talks я насмотрелся безрезультатно. Везде, где смотрел, инфа либо устарела и используются несуществующие хуки
В том же Talk:Bcache прописано
Adding Bcache module and hook
Edit /etc/mkinitcpio.conf as needed and re-generate the initramfs image with: adding the "bcache" module adding the "bcache_udev" hook between block and filesystems
sed -i '/^MODULES=/ s/"$/ bcache"/' /etc/mkinitcpio.conf
sed -i '/^HOOKS=/ s/block filesystems/block bcache_udev filesystems/' /etc/mkinitcpio.conf
more /etc/mkinitcpio.conf
Довольно противоречивая информация - в одном месте советуют hook bcache, в другом bcache_udev ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
в одном месте советуют hook bcache, в другом bcache_udev
Мне кажется, что раньше был этот хук, а потом его убрали/переименовали.

kurych, увы, ровно то же эффект
Сотрудник техподдержки признался: он хорошо зарабатвыает просто потому, что умеет гуглить быстрее клиентов.
 
Зарегистрироваться или войдите чтобы оставить сообщение.