Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #PATH=$PATH:/opt/bin ... set this somewhere else
- optware_install(){
- mntroot rw
- mkdir -p /opt/etc; mkdir -p /opt/share; mkdir -p /opt/lib; mkdir -p /opt/bin; mkdir -p /opt/tmp
- mntroot ro
- }
- optware_uninstall(){
- mntroot rw
- rm -rf /opt/etc; rm -rf /opt/share; rm -rf /opt/lib; rm -rf /opt/bin; rm -rf /opt/tmp
- mntroot ro
- }
- optware_mount(){
- mkdir -p /mnt/us/optware/fs; mkdir -p /mnt/us/optware/ro; mkdir -p /mnt/us/optware/rw
- #mount -t squashfs -o loop,nosuid,nodev,noatime /mnt/us/optware/optware.img /mnt/us/optware/ro 2>&-
- #mount -t cramfs -o loop,nosuid,nodev,noatime /mnt/us/optware/optware.img /mnt/us/optware/ro 2>&-
- #mount -t unionfs -o dirs=/mnt/us/optware/rw=rw:/mnt/us/optware/ro=ro unionfs /mnt/us/optware/fs 2>&-
- mount -o loop,nosuid,nodev,noatime -t ext3 /mnt/us/optware/optware.img /mnt/us/optware/fs 2>&-
- mount --bind /mnt/us/optware/fs/opt/etc /opt/etc 2>&-
- mount --bind /mnt/us/optware/fs/opt/share /opt/share 2>&-
- mount --bind /mnt/us/optware/fs/opt/lib /opt/lib 2>&-
- mount --bind /mnt/us/optware/fs/opt/bin /opt/bin 2>&-
- mount --bind /mnt/us/optware/fs/opt/tmp /opt/tmp 2>&-
- }
- optware_unmount(){
- umount /opt/etc 2>&-; umount /opt/share 2>&-; umount /opt/lib 2>&-; umount /opt/bin 2>&-; umount /opt/tmp 2>&-
- umount /mnt/us/optware/ro 2>&-; umount /mnt/us/optware/rw 2>&-; umount /mnt/us/optware/fs 2>&-
- rm -rf /mnt/us/optware/fs 2>&-; rm -rf /mnt/us/optware/ro 2>&-; rm -rf /mnt/us/optware/rw 2>&-
- for f in /dev/loop/*; do l=$(losetup $f 2>&-); [ "${l##${l%%/mnt/us/optware/optware.img}}" == "/mnt/us/optware/optware.img" ] && echo losetup -d $f; done
- }
- optware_sync(){
- [[ "$(ls -A /mnt/us/optware/fs)" && "$(ls -A /mnt/us/optware/rw)" && ! "$(blkid -t TYPE=ext3 /mnt/us/optware/optware.img)" ]] || return 0
- [ "$(blkid -t TYPE=cramfs /mnt/us/optware/optware.img)" ] && local mkfs="mkfs.cramfs -n opt" || local mkfs="mksquashfs"
- ${mkfs} /mnt/us/optware/fs /mnt/us/optware/optware.new
- optware_unmount
- sleep 2
- mv /mnt/us/optware/optware.new /mnt/us/optware/optware.img
- optware_mount
- }
- optware_extend(){
- #only for ext3
- }
- case "$1" in
- stop|unmount)
- optware_unmount
- ;;
- start|restart|mount|remount)
- optware_unmount
- sleep 1
- optware_mount
- ;;
- install)
- optware_unmount
- sleep 1
- optware_install
- ;;
- uninstall)
- optware_unmount
- sleep 1
- optware_uninstall
- ;;
- sync)
- optware_sync
- ;;
- sync)
- optware_extend
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|mount|unmount|remount|install|uninstall|sync|extend}"
- exit 1
- ;;
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement