Skip to content

Commit e9c025d

Browse files
authored
Merge pull request #59 from desultory/fakeudev
Fakeudev
2 parents 42f0bd6 + 33d8bcc commit e9c025d

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/ugrd/fs/fakeudev.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""
2+
UDEV is amazing and well desinged software.
3+
4+
In order to make systemd not time out on boot, we need to fake it.
5+
To do this, we simply need to read /sys/block/dm-*/uevent,
6+
We can then write 'E:DM_UDEV_PRIMARY_SOURCE_FLAG=1\n' to each:
7+
/run/udev/data/b<MAJOR>:<MINOR>.
8+
This will make systemd think that udev is working and not time out.
9+
"""
10+
11+
12+
def fake_dm_udev(self):
13+
"""
14+
returns a bash script to fake udev for dm devices.
15+
calls _make_fake_dm_udev_db for each dm device.
16+
"""
17+
return ['mkdir --parents /run/udev/data',
18+
'for dm in /sys/block/dm-*; do',
19+
' source "${dm}/uevent"',
20+
' einfo "Faking udev for ${DEVNAME}"',
21+
' udev_db_file="/run/udev/data/b${MAJOR}:${MINOR}"',
22+
" echo -e 'E:DM_UDEV_PRIMARY_SOURCE_FLAG=1\n' > ${udev_db_file}",
23+
'done']

src/ugrd/fs/fakeudev.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[imports.init_mount_late]
2+
'ugrd.fs.fakeudev' = ['fake_dm_udev']

0 commit comments

Comments
 (0)