3. After creating some bcache devices and rebooting /dev/bcache/by-uuid/<UUID> -> ../../bcacheN
symlinks point to the current bcache device which is caching the dev.uuid found after creating a backing device.
4. /dev/bcache/by-uuid does not exist and there are not symlinks underneath
It appears that since the initramfs loads the bcache module which probes and finds all of the cache devices and backing devices then once the rootfs is mounted and udev gets to run, the bcache kernel module does not emit the CACHED_UUID value into the environment if the underlying devices are already registered.
In dmesg, one can see that prior to mounting the rootfs, we see bcache register events:
then rootfs ismounted and systemd starts systemd-udev
[ 9.350889] systemd[1]: Listening on udev Kernel Socket.
And then the coldplug replay of kernel events triggers /lib/udev/rules.d/69-bcache.rules
which invokes /lib/udev/bcache-register which writes the device name (/dev/vdb1 or /dev/bcache0) into /sys/fs/bcache/register and results is the bcache kernel driver attempting to register the block device. However, there is already a bcache device associated already and registration fails
1. $ lsb_release -rd
Description: Ubuntu 17.10
Release: 17.10
2. $ apt-cache policy linux-image-`uname -r` 4.13.0- 16-generic: nova.clouds. archive. ubuntu. com/ubuntu artful/main amd64 Packages dpkg/status
linux-image-
Installed: 4.13.0-16.19
Candidate: 4.13.0-16.19
Version table:
*** 4.13.0-16.19 500
500 http://
100 /var/lib/
3. After creating some bcache devices and rebooting /dev/bcache/ by-uuid/ <UUID> -> ../../bcacheN
symlinks point to the current bcache device which is caching the dev.uuid found after creating a backing device.
4. /dev/bcache/by-uuid does not exist and there are not symlinks underneath
It appears that since the initramfs loads the bcache module which probes and finds all of the cache devices and backing devices then once the rootfs is mounted and udev gets to run, the bcache kernel module does not emit the CACHED_UUID value into the environment if the underlying devices are already registered.
In dmesg, one can see that prior to mounting the rootfs, we see bcache register events:
[ 5.333973] bcache: register_bdev() registered backing device vdb2 replay( ) journal replay done, 0 keys in 1 entries, seq 1
[ 5.354138] bcache: register_bdev() registered backing device vdb4
[ 5.365665] bcache: register_bdev() registered backing device vdb3
[ 5.397720] bcache: bch_journal_
[ 5.428683] bcache: register_cache() registered cache device vdb1
then rootfs ismounted and systemd starts systemd-udev
[ 9.350889] systemd[1]: Listening on udev Kernel Socket.
And then the coldplug replay of kernel events triggers /lib/udev/ rules.d/ 69-bcache. rules bcache- register which writes the device name (/dev/vdb1 or /dev/bcache0) into /sys/fs/ bcache/ register and results is the bcache kernel driver attempting to register the block device. However, there is already a bcache device associated already and registration fails
which invokes /lib/udev/
[ 11.173141] bcache: register_bcache() error opening /dev/vdb2: device already registered
[ 11.184617] bcache: register_bcache() error opening /dev/vdb3: device already registered
[ 11.199130] bcache: register_bcache() error opening /dev/vdb1: device already registered
[ 11.271694] bcache: register_bcache() error opening /dev/vdb4: device already registered
The problem then is that only a kernel call to bch_cached_ dev_run( ) which happens like this:
bcache_register() cached_ dev_run( ) uevent_ env(&disk_ to_dev( d->disk) ->kobj, KOBJ_CHANGE, env);
register_bdev()
bch_
kobject_
where env includes: bcache" ,
kasprintf( GFP_KERNEL, "CACHED_UUID=%pU", dc->sb.uuid),
"DRIVER=
NULL,
NULL,
};
Since that event is not emitted for any previously registered device, then the symlink will not be created.
ProblemType: Bug 4.13.0- 16-generic 4.13.0-16.19 ature: User Name 4.13.0- 16.19-generic 4.13.4 Zone: nova
DistroRelease: Ubuntu 17.10
Package: linux-image-
ProcVersionSign
Uname: Linux 4.13.0-16-generic x86_64
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Oct 31 22:09 seq
crw-rw---- 1 root audio 116, 33 Oct 31 22:09 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.7-0ubuntu3.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord': 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
CRDA: N/A
Date: Wed Nov 1 01:39:01 2017
Ec2AMI: ami-0000030b
Ec2AMIManifest: FIXME
Ec2Availability
Ec2InstanceType: m1.small
Ec2Kernel: unavailable
Ec2Ramdisk: unavailable
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb:
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: OpenStack Foundation OpenStack Nova
PciMultimedia:
ProcEnviron: DIR=<set>
TERM=xterm
PATH=(custom, no user)
XDG_RUNTIME_
LANG=C.UTF-8
SHELL=/bin/bash
ProcFB:
ProcKernelCmdLine: BOOT_IMAGE= /boot/vmlinuz- 4.13.0- 16-generic root=LABEL= cloudimg- rootfs ro console=tty1 console=ttyS0 ersions: restricted- modules- 4.13.0- 16-generic N/A backports- modules- 4.13.0- 16-generic N/A 1ubuntu1~ cloud0 version: pc-i440fx-zesty bvr1.10. 1-1ubuntu1~ cloud0: bd04/01/ 2014:svnOpenSta ckFoundation: pnOpenStackNova :pvr15. 0.7:cvnQEMU: ct1:cvrpc- i440fx- zesty: version: 15.0.7
RelatedPackageV
linux-
linux-
linux-firmware N/A
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: 1.10.1-
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.
dmi.modalias: dmi:bvnSeaBIOS:
dmi.product.family: Virtual Machine
dmi.product.name: OpenStack Nova
dmi.product.
dmi.sys.vendor: OpenStack Foundation