Changeset 3523


Ignore:
Timestamp:
2006-03-28T17:10:06+02:00 (12 years ago)
Author:
mbm
Message:

clean up firstboot & mount_root; fix tmpfs sizes on low ram

Location:
branches/whiterussian/openwrt/package/base-files/default
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/whiterussian/openwrt/package/base-files/default/bin/firstboot

    r3489 r3523  
    3434 
    3535pivot() { # <new_root> <old_root> 
    36         pivot_root $1 $1$2 
    37         mount none /proc -t proc 
    38         umount $2/proc 
    39         mount -o move $2/dev /dev 
    40         mount -o move $2/tmp /tmp 
     36        mount -o move /proc $1/proc && \ 
     37        pivot_root $1 $1$2 && { 
     38                mount -o move $2/dev /dev 
     39                mount -o move $2/tmp /tmp 
     40        } 
    4141} 
    4242 
    4343mountdp() { # <device> <mount_point> <ignored> <fs> 
    44         mount $1 $2 -t $4 
    45         dupe $2 $rom 
    46         pivot $2 /rom 
     44        dev=$1; mnt=$2; shift 2; opt=$* 
     45        mount $dev $mnt $opt 
     46        dupe $mnt $rom 
     47        pivot $mnt /rom 
    4748} 
    4849 
    49 # script run by mount_root 
    50 [ "$1" = "ramoverlay" ] && { 
    51         #1st stage 
    52         mountdp none /mnt -t tmpfs 
    53         exit 0 
     50ramoverlay() { 
     51        mkdir -p /tmp/root 
     52        mountdp /tmp/root /mnt -o bind 
    5453} 
    5554 
    56 [ -z "$rom" ] && { 
    57         echo "You do not have a squashfs partition; aborting" 
    58         echo "(firstboot cannot be run on jffs2 based firmwares)" 
    59         exit 1 
     55[ "${0##*/}" = "firstboot" ] && { 
     56        [ -z "$rom" ] && { 
     57                echo "You do not have a squashfs partition; aborting" 
     58                echo "(firstboot cannot be run on jffs2 based firmwares)" 
     59                exit 1 
     60        } 
     61 
     62        [ "$1" = "switch2jffs" ] && { 
     63                mtd erase OpenWrt 
     64                mount -o remount,ro none / # try to avoid fs changing while copying 
     65                mount -o bind / /mnt 
     66                mount /dev/mtdblock/4 /rom/jffs -t jffs2 
     67                echo -n "copying files ... " 
     68                cp -a /mnt/* /rom/jffs 
     69                umount /mnt 
     70                echo "done" 
     71                pivot /rom /mnt 
     72                mount -o move /mnt /tmp/root 
     73                pivot /jffs /rom 
     74                jffs2root --clean 
     75                exit 0 
     76        } 
     77 
     78        # script run manually 
     79        [ \! -z "$jffs" ] && { 
     80                echo "firstboot has already been run" 
     81                echo "jffs2 partition is mounted, only resetting files" 
     82                dupe $jffs $rom 
     83                exit 0 
     84        } 
     85 
     86        mtd erase OpenWrt 
     87        mountdp /dev/mtdblock/4 /jffs -t jffs2 
    6088} 
    61  
    62 [ "$1" = "switch2jffs" ] && { 
    63         #2nd stage 
    64         mtd erase OpenWrt 
    65         mount -o remount,ro none / # try to avoid fs changing while copying 
    66         mount -o bind / /mnt 
    67         mount /dev/mtdblock/4 /rom/jffs -t jffs2 
    68         echo -n "copying files ... " 
    69         cp -a /mnt/* /rom/jffs 
    70         umount /mnt 
    71         echo "done" 
    72         pivot /rom /mnt 
    73         pivot /jffs /rom 
    74         jffs2root --clean 
    75         exit 0 
    76 } 
    77  
    78 # script run manually 
    79 [ \! -z "$jffs" ] && { 
    80         echo "firstboot has already been run" 
    81         echo "jffs2 partition is mounted, only resetting files" 
    82         dupe $jffs $rom 
    83         exit 0 
    84 } 
    85  
    86 mtd erase OpenWrt 
    87 mountdp /dev/mtdblock/4 /jffs -t jffs2 
  • branches/whiterussian/openwrt/package/base-files/default/sbin/mount_root

    r3285 r3523  
    55        return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"') 
    66} 
     7 
     8size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo) 
     9mount none /tmp -t tmpfs -o size=$size 
    710 
    811if [ "$1" != "failsafe" -a "$(nvram get no_root_swap)" != 1 ]; then  
     
    1720                fi 
    1821        else 
     22                . /bin/firstboot 
    1923                is_dirty  
    2024                [ $? != 0 ] && { 
    2125                        mount /dev/mtdblock/4 /jffs 
    22                         pivot_root /jffs /jffs/rom && { 
    23                                 mount none /proc -t proc 
    24                                 umount /rom/proc 
    25                                 mount -o move /rom/dev /dev 
    26                         } 
    27                 } || firstboot ramoverlay 
     26                        pivot /rom 
     27                } || ramoverlay 
    2828        fi 
    2929fi 
    3030 
    31 mount none /tmp -t tmpfs -o nosuid,nodev,mode=1777,size=50% 
     31mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777 
    3232mkdir -p /dev/pts 
    3333mount none /dev/pts -t devpts 
Note: See TracChangeset for help on using the changeset viewer.