Support using the internal NAND as the persistent /home for the OLPC

The OLPC's internal NAND is a really good idea to use for /home rather than
taking up the very hard to find RAM.  The NAND is default set up with a
/home on mtd0, so also do some magic so that we create our homedir under that
/home.
This commit is contained in:
Jeremy Katz 2008-10-02 22:17:09 -04:00
parent e61da567cd
commit b1aa0f441e

View File

@ -131,7 +131,10 @@ mountPersistentHome() {
fi fi
# if we're given a file rather than a blockdev, loopback it # if we're given a file rather than a blockdev, loopback it
if [ ! -b "\$homedev" ]; then if [ "\${homedev##mtd}" != "\${homedev}" ]; then
# mtd devs don't have a block device but get magic-mounted with -t jffs2
mountopts="-t jffs2"
elif [ ! -b "\$homedev" ]; then
loopdev=\`losetup -f\` loopdev=\`losetup -f\`
if [ "\${homedev##/mnt/live}" != "\${homedev}" ]; then if [ "\${homedev##/mnt/live}" != "\${homedev}" ]; then
action "Remounting live store r/w" mount -o remount,rw /mnt/live action "Remounting live store r/w" mount -o remount,rw /mnt/live
@ -141,7 +144,7 @@ mountPersistentHome() {
fi fi
# if it's encrypted, we need to unlock it # if it's encrypted, we need to unlock it
if [ "\$(/lib/udev/vol_id -t \$homedev)" = "crypto_LUKS" ]; then if [ "\$(/lib/udev/vol_id -t \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
echo echo
echo "Setting up encrypted /home device" echo "Setting up encrypted /home device"
plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome" plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome"
@ -149,7 +152,10 @@ mountPersistentHome() {
fi fi
# and finally do the mount # and finally do the mount
mount \$homedev /home mount \$mountopts \$homedev /home
# if we have /home under what's passed for persistent home, then
# we should make that the real /home. useful for mtd device on olpc
if [ -d /home/home ]; then mount --bind /home/home /home ; fi
[ -x /sbin/restorecon ] && /sbin/restorecon /home [ -x /sbin/restorecon ] && /sbin/restorecon /home
if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi
} }