User Tools

Site Tools


berryboot_linuxrc
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


berryboot_linuxrc [2012/06/12 12:04] (current) – created max
Line 1: Line 1:
 +/linuxrc
  
 +<code>
 +#!/bin/sh
 +#
 +# BerryBoot, ugly but functional image chooser thingy
 +#
 +# Author: Floris Bos
 +#
 +
 +# Standard busybox init
 +/bin/mount -t proc proc /proc
 +/bin/mount -o remount,rw,noatime / 
 +/bin/mount -a
 +/bin/hostname -F /etc/hostname
 +
 +# Enumerate images
 +cd /images
 +IMAGES=`echo *`
 +DIALOG_ARGS="--backtitle 'BerryBoot v0.1' --menu 'Select operating system to boot:' 15 50 10"
 +
 +for image in $IMAGES
 +do
 +        DIALOG_ARGS="$DIALOG_ARGS '$image' ''"
 +done
 +
 +# Prevent kernel messages being printed through our menu
 +echo 0 > /proc/sys/kernel/printk
 +
 +# Show dialog
 +eval dialog $DIALOG_ARGS 2>/tmp/answer
 +
 +if [ $? -eq 0 ]; then
 +        echo 1 > /proc/sys/kernel/printk
 +        IMAGE=`cat /tmp/answer`
 +        DATADIR="/data/$IMAGE"
 +        rm /tmp/answer
 +        mkdir -p /mnt/squashfs /mnt/aufs $DATADIR
 +        modprobe aufs
 +        modprobe squashfs
 +        echo Mounting image ${IMAGE}...
 +        mount -o loop $IMAGE /mnt/squashfs
 +        echo Mounting RW data directory on top
 +        mount -t aufs -o br:${DATADIR}:/shared:/mnt/squashfs none /mnt/aufs
 +        cd /mnt/aufs
 +        mkdir -p -m 700 .berryboot
 +        umount /sys
 +        umount /dev/pts
 +        umount /dev/shm
 +        umount /tmp
 +        umount /proc
 +        pivot_root . .berryboot 
 +        exec chroot . /sbin/init </dev/console 2>/dev/console
 +fi
 +
 +# In case the user pressed cancel or something went wrong, show an emergency recovery shell
 +echo
 +echo Emergency shell activated
 +echo
 +echo To get network connectivity: udhcpc eth0 - wget can be used to download things
 +echo Squashfs images are in /images
 +echo User changes to the images are in /data
 +echo Before shutting down remount readonly: mount -o remount,ro /
 +echo
 +
 +/bin/sh
 +</code>
berryboot_linuxrc.txt · Last modified: 2012/06/12 12:04 by max

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki