summaryrefslogtreecommitdiffstats
path: root/main/udev/write_root_link_rule
blob: 8eaea117693a091e7182e7cf2289153734a0f72e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh
#
# This script should run before doing udevtrigger at boot.
# It will create a rule matching the device directory / is on, and
# creating /dev/root symlink pointing on its device node.
#
# This is especially useful for hal looking at /proc/mounts containing
# a line listing /dev/root as device:
#   /dev/root / reiserfs rw 0 0
# 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation version 2 of the License.
#
# (c) 2007-2008 Matthias Schwarzott <zzam@gentoo.org>

eval $(udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/)

[ $? = 0 ] || exit 0
[ "$ROOT_MAJOR" = 0 ] && exit 0

DIR=/dev/.udev/rules.d
[ -d "$DIR" ] || mkdir -p "$DIR"
RULES=$DIR/10-root-link.rules

echo "# Created by /lib/udev/write_root_link_rule" > "${RULES}"
echo "# This rule should create /dev/root as link to real root device." >> "${RULES}"
echo "SUBSYSTEM==\"block\", ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", SYMLINK+=\"root\"" >> "${RULES}"