summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Endres2006-08-24 04:27:10 +0200
committerFelix Endres2006-08-24 04:27:10 +0200
commit5379d524e1f063271db79fd922061801a2d3778b (patch)
tree2a35b2eaaecd541bb10c717e80a743a7f6345881
parent* tested and improved writing of configuration files (diff)
downloadcore-5379d524e1f063271db79fd922061801a2d3778b.tar.gz
core-5379d524e1f063271db79fd922061801a2d3778b.tar.xz
core-5379d524e1f063271db79fd922061801a2d3778b.zip
Fixed the fontproblem for gdm + ubuntu + bindmounts
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@328 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--initrd/distro-specs/ubuntu/config-default7
-rwxr-xr-xinitrd/initrd-stuff/init8
2 files changed, 12 insertions, 3 deletions
diff --git a/initrd/distro-specs/ubuntu/config-default b/initrd/distro-specs/ubuntu/config-default
index 0d6835de..63b78014 100644
--- a/initrd/distro-specs/ubuntu/config-default
+++ b/initrd/distro-specs/ubuntu/config-default
@@ -12,10 +12,12 @@
# D_DIRINBINDMNT - lists of directories to be created in bind mounted rw
# part of the client filesystem
# D_RODIRSINRW - ReadOnly Directories in RW part of filesystem to save on
+# D_RWDIRSINRO - Writable Subdirectories in the RO-Dirs (D_RODIRSINRW)
# TempFS usage
# D_DIRINDXS - directories in client filesystem which should be present
# anyhow
# D_BINDMNT - any code which is specific in bind mount environment
+# D_BINDMPTS - These directories will be created in the ramdisk and movemounted to the root ("/") this will also happen to /var and /etc
# D_RCDIRS - runlevel directories relative to /etc
# D_XF86CONFFILE - name and location of XFree/Xorg config file, e.g.
# /etc/X11/xorg.conf or /etc/X11/XF86config, ...
@@ -33,8 +35,9 @@ pptp.d\nisdn\nyouservers\nhardware/hwcfg*\n\
X11/xdm/pixmaps\ndhclient.script\n\
rc2.d/*\nrc5.d/*"
D_BINDMPTS="tmp root home"
-D_DIRINBINDMNT="/var/run /var/log /var/tmp /var/lib/gdm"
-D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/texmf"
+D_DIRINBINDMNT="/var/run /var/log /var/tmp"
+D_RODIRSINRW="etc/gconf etc/X11/xkb /var/adm /var/lib/"
+D_RWDIRSINRO="/var/lib/gdm"
D_DIRINDXS="/var/X11R6/compose-cache \
/var/run/sysconfig/tmp /var/adm /var/lib/rpm /var/lib/nobody \
/var/lib/pam_devperm /var/lib/bluetooth \
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index f36913ff..1e57e5f2 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -380,9 +380,12 @@ elif [ -z "$COWLOOP" ] ; then
for path in ${D_BINDMPTS} ; do
mkdir -p ${RWDIR}/${path} >/dev/null 2>&1
mount -n --bind ${RWDIR}/${path} /mnt/${path}
+ [ ${DEBUGLEVEL} -gt 1 ] && echo "Created ${RWDIR}/${path} and mounted it to /mnt/$path"
done
# see above ...
ldcfg
+ # Save the RO Directories mentioned in the distro-specific
+ # config to a temporary directory. They will lateron be restored
for path in ${D_RODIRSINRW}; do
if [ -d /mnt/${path} ] ; then
LIST=${path}" "$LIST
@@ -398,7 +401,6 @@ elif [ -z "$COWLOOP" ] ; then
done
testmkd ${RWDIR}/var/tmp
chmod a+rwxt ${RWDIR}/var/tmp >/dev/null 2>&1
-
echo -e "${D_ETCEXCL} @@@COMETCEXCL@@@" >>/tmp/etc.exclude
# if ld.so.cache is to be generated then do not copy the file
[ -z "${NOLDSC}" ] && echo -e "ld.so.cache*" >>/tmp/etc.exclude
@@ -434,6 +436,10 @@ servconfig &
for path in @@@COMDIRINDXS@@@ ${D_DIRINDXS} ${D_DIRINBINDMNT} ; do
testmkd /mnt/${path}
done
+# Needed writable subdirs nested in readonly subdirs of writable one
+for path in ${D_RWDIRSINRO}; do
+ mount -n -t tmpfs none /mnt/${path}
+done
for i in /var/run/utmp /var/log/wtmp /var/log/lastlog /etc/mtab ; do
echo -n > /mnt/$i
done