[openbricks-][r14557] busybox-init : use *.mount files for persistent, remov...

0 views
Skip to first unread message

h...@openbricks.org

unread,
Jun 26, 2012, 2:15:10 AM6/26/12
to com...@openbricks.org
changeset c4374a4c2b8e in /var/www/hg/openbricks
author: Thomas Genty <toml...@openbricks.org>
details: http://hg.openbricks.org/openbricks?cmd=changeset;node=c4374a4c2b8e
description:
busybox-init : use *.mount files for persistent, remove hack for mount
diffstat:

packages/busybox-init/scripts/linuxrc | 62 +++++++++++++++++++++++++++++++---
packages/connman/unit/mount-a.service | 12 ------
packages/udhcpc/scripts/net-udhcpc | 1 -
3 files changed, 56 insertions(+), 19 deletions(-)

diffs (111 lines):

diff -r c1dc46f48e1f -r c4374a4c2b8e packages/busybox-init/scripts/linuxrc
--- a/packages/busybox-init/scripts/linuxrc Mon Jun 25 07:42:53 2012 +0200
+++ b/packages/busybox-init/scripts/linuxrc Tue Jun 26 08:15:05 2012 +0200
@@ -17,11 +17,13 @@

if [ "$2" = "cifs" -o "$2" = "nfs" ] ; then
PERSISTENT_TMP=/mnt/geexbox
- MNT_OPTION_PERSISTENT="none bind"
+ MNT_OPTION_PERSISTENT="bind"
+ MNT_TYPE_PERSISTENT="none"
else
# ntfs
PERSISTENT_TMP=/persistent-tmp
- MNT_OPTION_PERSISTENT="ext2 rw,noatime"
+ MNT_OPTION_PERSISTENT="rw,noatime"
+ MNT_TYPE_PERSISTENT="ext2"
mkdir /persistent-tmp
mount -t ext2 -o rw,noatime /mnt/$4 /persistent-tmp
fi
@@ -36,13 +38,61 @@
cp -R $PERSISTENT_TMP/$d /persistent
done

- # fstab
- echo "$1 /data $2 $3 0 0" >/persistent/etc/fstab
- echo "/data/$CASPER /persistent $MNT_OPTION_PERSISTENT 0 0" >>/persistent/etc/fstab
- echo "/persistent/root /root none bind 0 0" >>/persistent/etc/fstab
+ # create *.mount files
+
+ mkdir -p /persistent/lib/systemd/system
+ mkdir -p /persistent/etc/systemd/system/remote-fs.target.wants
+ cat > /persistent/lib/systemd/system/data.mount << EOF
+[unit]
+Description=Mount data
+
+[Mount]
+What=$1
+Where=/data
+Type=$2
+Options=$3
+
+[Install]
+WantedBy=remote-fs.target
+EOF
+
+ cat > /persistent/lib/systemd/system/persistent.mount << EOF
+[unit]
+Description=Mount persistent
+After=data.mount
+
+[Mount]
+What=/data/$CASPER
+Where=/persistent
+Type=$MNT_TYPE_PERSISTENT
+Options=$MNT_OPTION_PERSISTENT
+
+[Install]
+WantedBy=remote-fs.target
+EOF
+
+ cat > /persistent/lib/systemd/system/root.mount << EOF
+[unit]
+Description=Mount root
+After=persistent.mount
+
+[Mount]
+What=/persistent/root
+Where=/root
+Type=none
+Options=bind
+
+[Install]
+WantedBy=remote-fs.target
+EOF
+
+ ln -s /lib/systemd/system/data.mount /persistent/etc/systemd/system/remote-fs.target.wants/data.mount
+ ln -s /lib/systemd/system/persistent.mount /persistent/etc/systemd/system/remote-fs.target.wants/persistent.mount
+ ln -s /lib/systemd/system/root.mount /persistent/etc/systemd/system/remote-fs.target.wants/root.mount

# umount /persistent-tmp if needed
[ "$2" = "ntfs" ] && sync && umount /persistent-tmp
+
}

# do_cache file
diff -r c1dc46f48e1f -r c4374a4c2b8e packages/connman/unit/mount-a.service
--- a/packages/connman/unit/mount-a.service Mon Jun 25 07:42:53 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-Unit]
-Description=Mount all devices in /etc/fstab
-After=connman.service
-Before=graphical.target
-
-[Service]
-Type=oneshot
-ExecStart=/bin/mount -a
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
diff -r c1dc46f48e1f -r c4374a4c2b8e packages/udhcpc/scripts/net-udhcpc
--- a/packages/udhcpc/scripts/net-udhcpc Mon Jun 25 07:42:53 2012 +0200
+++ b/packages/udhcpc/scripts/net-udhcpc Tue Jun 26 08:15:05 2012 +0200
@@ -26,6 +26,5 @@

ifconfig $IFACE up
udhcpc -s /bin/assign-ip -i $IFACE
-mount -a

exit 0
Reply all
Reply to author
Forward
0 new messages