slitaz-boot-scripts diff init @ rev 416
Use 'action' before 'status' in pair
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Nov 27 12:48:01 2015 +0200 (2015-11-27) |
parents | 5f5c78d24bfd |
children | 220cadd40305 |
line diff
1.1 --- a/init Thu Aug 27 14:40:07 2015 +0200 1.2 +++ b/init Fri Nov 27 12:48:01 2015 +0200 1.3 @@ -50,121 +50,124 @@ 1.4 # isofs [LORAM] 1.5 # do not use squashfs filesystem images, but the cdrom filesystem only 1.6 1.7 -fail() 1.8 -{ 1.9 -echo -e '\033[70G[ \033[1;3'${1:-1mFailed}'\033[0;39m ]' 1.10 + 1.11 +fail() { 1.12 + echo -e '\033[70G[ \033[1;3'${1:-1mFailed}'\033[0;39m ]' 1.13 } 1.14 1.15 -quit() 1.16 -{ 1.17 -[ -d /mnt$4/etc ] || return 1.18 -[ -n "$4" ] || busybox mount /mnt -o remount,ro 1.19 -busybox mount --move /run /mnt/${1:-run} 1.20 -cat>/run/init<<EOT 1.21 + 1.22 +quit() { 1.23 + [ -d /mnt$4/etc ] || return 1.24 + [ -n "$4" ] || busybox mount /mnt -o remount,ro 1.25 + busybox mount --move /run /mnt/${1:-run} 1.26 + cat > /run/init <<EOT 1.27 $2 1.28 x=/sbin/switch_root 1.29 [ -x \$x ] && exec \$x mnt $3 /sbin/init 1.30 EOT 1.31 -fail 2mDone 1.32 -exit 1.33 + fail 2mDone 1.34 + exit 1.35 } 1.36 1.37 -arg() 1.38 -{ 1.39 -grep -q $1 /proc/cmdline 1.40 + 1.41 +arg() { 1.42 + grep -q $1 /proc/cmdline 1.43 } 1.44 1.45 -got() 1.46 -{ 1.47 -arg $1= && root="$(sed "s/.*$1=\([^ ]*\).*/\1/" </proc/cmdline)" 1.48 + 1.49 +got() { 1.50 + arg $1= && root="$(sed "s/.*$1=\([^ ]*\).*/\1/" </proc/cmdline)" 1.51 } 1.52 1.53 -msg() 1.54 -{ 1.55 -echo "Switching / to $1..." 1.56 + 1.57 +msg() { 1.58 + echo "Switching / to $1..." 1.59 } 1.60 1.61 -use() 1.62 -{ 1.63 -got $1 && msg "$1 $root" 1.64 + 1.65 +use() { 1.66 + got $1 && msg "$1 $root" 1.67 } 1.68 1.69 -mnt() 1.70 -{ 1.71 -r=$(busybox blkid 2> /dev/null | sed "s|\"||g;/${root//[^a-zA-Z0-9]/.}/!d;s|:.*||;q") 1.72 -r=${r:-$root} 1.73 -if [ ! -b $r ]; then 1.74 - r=${r#/dev/} 1.75 - r=/dev/${r%%/*} 1.76 -fi 1.77 -d=${root#*$r} 1.78 -busybox mount $r $1 && return 1.79 -w=$(cat /sys/module/usb_storage/parameters/delay_use) 1.80 -w=$((1+${w:-2})) 1.81 -echo -n "Sleep $w seconds..." 1.82 -sleep $w 1.83 -busybox mount $r $1 1.84 + 1.85 +mnt() { 1.86 + r=$(busybox blkid 2> /dev/null | sed "s|\"||g;/${root//[^a-zA-Z0-9]/.}/!d;s|:.*||;q") 1.87 + r=${r:-$root} 1.88 + if [ ! -b $r ]; then 1.89 + r=${r#/dev/} 1.90 + r=/dev/${r%%/*} 1.91 + fi 1.92 + d=${root#*$r} 1.93 + busybox mount $r $1 && return 1.94 + w=$(cat /sys/module/usb_storage/parameters/delay_use) 1.95 + w=$((1+${w:-2})) 1.96 + echo -n "Sleep $w seconds..." 1.97 + sleep $w 1.98 + busybox mount $r $1 1.99 } 1.100 1.101 -mod() 1.102 -{ 1.103 -for i in $@; do 1.104 - echo "Loading module: $i" 1.105 - modprobe $i 2>/dev/null || busybox insmod $(find /lib/modules|sed "/$i.ko/!dq") 1.106 -done 1.107 + 1.108 +mod() { 1.109 + for i in $@; do 1.110 + echo "Loading module: $i" 1.111 + modprobe $i 2>/dev/null || busybox insmod $(find /lib/modules|sed "/$i.ko/!dq") 1.112 + done 1.113 } 1.114 1.115 -try() 1.116 -{ 1.117 -if [ ! -d /mnt/etc ] && got cryptoroot; then 1.118 - mod dm-mod dm-crypt aes-256 1.119 - d=${root#/dev/} 1.120 - l=crypto-$d 1.121 - if cryptsetup isLuks $root 2>/dev/null; then 1.122 - cryptsetup luksOpen $root $l 1.123 - else 1.124 - read -st 60 -p "Pass phrase : " p 1.125 - k=$(echo $p|hashalot -x -n 32 sha512) 1.126 - echo 0 $(cat $(find /sys/block|grep /$d/size))\ 1.127 - crypt aes-plain $k 0 $root 0|dmsetup create $l 1.128 + 1.129 +try() { 1.130 + if [ ! -d /mnt/etc ] && got cryptoroot; then 1.131 + mod dm-mod dm-crypt aes-256 1.132 + d=${root#/dev/} 1.133 + l=crypto-$d 1.134 + if cryptsetup isLuks $root 2>/dev/null; then 1.135 + cryptsetup luksOpen $root $l 1.136 + else 1.137 + read -st 60 -p "Pass phrase : " p 1.138 + k=$(echo $p|hashalot -x -n 32 sha512) 1.139 + echo 0 $(cat $(find /sys/block|grep /$d/size))\ 1.140 + crypt aes-plain $k 0 $root 0|dmsetup create $l 1.141 + fi 1.142 + busybox mount /dev/mapper/$l /mnt 1.143 fi 1.144 - busybox mount /dev/mapper/$l /mnt 1.145 -fi 1.146 -got subroot && return 1.147 -got loopfs && return 1.148 -if [ -d /mnt/etc ]; then 1.149 - for i in $@; do 1.150 - cp -a $i /mnt$(dirname $i) 1.151 - done 1.152 - quit 1.153 -fi 1.154 -fail 1.155 + got subroot && return 1.156 + got loopfs && return 1.157 + if [ -d /mnt/etc ]; then 1.158 + for i in $@; do 1.159 + cp -a $i /mnt$(dirname $i) 1.160 + done 1.161 + quit 1.162 + fi 1.163 + fail 1.164 } 1.165 1.166 -lvm() 1.167 -{ 1.168 -use lvmroot || return 1.169 -mod dm-mod 1.170 -vgscan --ignorelockingfailure 1.171 -vgchange -ay --ignorelockingfailure 1.172 -busybox mount /dev/mapper/$root /mnt 1.173 -try /dev/mapper $1 1.174 + 1.175 +lvm() { 1.176 + use lvmroot || return 1.177 + mod dm-mod 1.178 + vgscan --ignorelockingfailure 1.179 + vgchange -ay --ignorelockingfailure 1.180 + busybox mount /dev/mapper/$root /mnt 1.181 + try /dev/mapper $1 1.182 } 1.183 1.184 -ldraid() 1.185 -{ 1.186 -while read l; do 1.187 - case "$l" in 1.188 - *raid10*) mod raid10;; 1.189 - *raid0*) mod raid0;; 1.190 - *raid1*) mod raid1;; 1.191 - *raid*) mod raid456;; 1.192 - *mirror*) mod dm-mirror;; 1.193 - esac 1.194 -done 1.195 + 1.196 +ldraid() { 1.197 + while read l; do 1.198 + case "$l" in 1.199 + *raid10*) mod raid10;; 1.200 + *raid0*) mod raid0;; 1.201 + *raid1*) mod raid1;; 1.202 + *raid*) mod raid456;; 1.203 + *mirror*) mod dm-mirror;; 1.204 + esac 1.205 + done 1.206 } 1.207 1.208 -if [ "$1" != "log" ]; then 1.209 + 1.210 + 1.211 + 1.212 +if [ "$1" != 'log' ]; then 1.213 busybox mount -t proc proc /proc 1.214 busybox mount -t sysfs sys /sys 1.215 busybox mount -t tmpfs tmpfs /run 1.216 @@ -175,6 +178,7 @@ 1.217 . /run/init 1.218 sh 1.219 fi 1.220 + 1.221 for i in /sys/block/*/dev /sys/block/*/*/dev ; do 1.222 [ -s "$i" ] || continue 1.223 n=${i%/dev} 1.224 @@ -183,9 +187,12 @@ 1.225 echo "Create $n " 1.226 mknod $n b $(sed 's/:/ /' < $i) 1.227 done 1.228 + 1.229 got modprobe && mod ${root//,/ } 1.230 + 1.231 [ -d /proc/sys/dev/cdrom ] && 1.232 ln -s $(sed '/name/!d;s/.*:[^a-z]*//' /proc/sys/dev/cdrom/info) /dev/cdrom 1.233 + 1.234 if use dmraid; then 1.235 dmraid -s | sed '/^type/!ds/.*: *//' | ldraid 1.236 [ ${root:0:4} = /dev ] || 1.237 @@ -209,6 +216,7 @@ 1.238 lvm /etc/mdadm.conf 1.239 fi 1.240 lvm 1.241 + 1.242 if got mount; then 1.243 dev=$root 1.244 x=$(busybox blkid|grep $dev|sed 's/:.*//;q') 1.245 @@ -219,6 +227,7 @@ 1.246 arg posixovl && echo "And posixovl..." && 1.247 mount.posixovl -F /mnt -- -oallow_other -odefault_permissions -osuid 1.248 fi 1.249 + 1.250 got loopfs && echo "Into file $root..." && 1.251 losetup /dev/loop0 /mnt/$root && busybox mount /dev/loop0 /mnt 1.252 got bindfs && echo "Bind ${root/,/ to }..." && 1.253 @@ -242,17 +251,17 @@ 1.254 got rootfssize 1.255 [ $(busybox free|busybox awk '/Mem:/{print int(($4*100)/$3)}') -ge $r ] && 1.256 busybox mount -t tmpfs -o size=$root,nr_inodes=$inodes tmpfs /mnt && 1.257 -for i in $(ls -ar /); do 1.258 - case "$i" in 1.259 - .*|cdrom) ;; 1.260 - mnt|proc|sys) mkdir /mnt/$i;; 1.261 - usr|var|rootfs*) mv /$i /mnt;; 1.262 - *) cp -a /$i /mnt 2>/dev/null && continue 1.263 - fail 1.264 - busybox umount /mnt 1.265 - exit 1.266 - esac 1.267 -done || fail 3mSkipped 1.268 + for i in $(ls -ar /); do 1.269 + case "$i" in 1.270 + .*|cdrom) ;; 1.271 + mnt|proc|sys) mkdir /mnt/$i;; 1.272 + usr|var|rootfs*) mv /$i /mnt;; 1.273 + *) cp -a /$i /mnt 2>/dev/null && continue 1.274 + fail 1.275 + busybox umount /mnt 1.276 + exit 1.277 + esac 1.278 + done || fail 3mSkipped 1.279 quit 1.280 mod squashfs 2>/dev/null || exit 1.281 msg aufs