---
 functions  |    7 +++++++
 rc.sysinit |    4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/functions b/functions
index 43414c0..9ad75a9 100644
--- a/functions
+++ b/functions
@@ -428,6 +428,13 @@ install_file() {
        install -T "$@" <(printf '%s' "$content") "$file"
 }
 
+# install would fail because files can't be removed from /proc
+# moreover we don't want to remove nodes from /dev
+write_file() {
+       local file=$1 content=$2
+       printf '%s' "$content" >| "$file"
+}
+
 bootlogd_stop() {
        [[ -f /run/bootlogd.pid ]] || return 0
        touch /var/log/boot
diff --git a/rc.sysinit b/rc.sysinit
index dcc88f5..2c08f02 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -209,7 +209,7 @@ status "Activating Swap" swapon -a
 RANDOM_SEED=/var/lib/misc/random-seed
 [[ -f $RANDOM_SEED ]] &&
        status "Initializing Random Seed" \
-               install_file /dev/urandom "$(< "$RANDOM_SEED" )"
+               cp "$RANDOM_SEED" /dev/urandom
 
 stat_busy "Removing Leftover Files"
        rm -rf /etc/{nologin,shutdownpid} /forcefsck /tmp/* /tmp/.* &>/dev/null
@@ -225,7 +225,7 @@ stat_done
 
 [[ $HOSTNAME ]] &&
        status "Setting Hostname: $HOSTNAME" \
-               install_file /proc/sys/kernel/hostname "$HOSTNAME"
+               write_file /proc/sys/kernel/hostname "$HOSTNAME"
 
 # Flush old locale settings and set user defined locale
 status "Setting Locale: ${LOCALE:=en_US}" \
-- 
1.7.1

Reply via email to