-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit-baka.sh
154 lines (135 loc) · 2.95 KB
/
init-baka.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/sh
ls $drr/sis
log "foi...$drr/sis" 3
rdist="$drr/sis/${rootPath}"
if ! test -d $rdist ; then
erro "ERRO dir distrib $rdist nao encontrado!"
fi
#####################################
#montar outros
log "mountLabel=$mountLabel"
if ! test -z $mountLabel ; then
log "1mountLabel=$mountLabel"
troca "$mountLabel" ';' ' '
troca "$ret" ',' ' '
mountLabel=$ret
for i in $mountLabel; do
log "i=$i - mountLabel=$mountLabel"
#ver pasta destino
if [ $(echo "===${i}"|grep "===/") ]; then
pd=$(basename $i)
else
pd=$i
fi
if ! test -e $drr/$pd; then mkdir $drr/$pd;fi
log "***************** montar $i $drr/$pd"
montar $i $drr/$pd
done
fi
##monta o file system root
if [ ".$root" == "." ]; then
root=$(cat $rdist/fstab)
else
troca "$root" ';' ' '
troca "$ret" ',' ' '
root=$ret
fi
##################################
# monta roots para aufs
nm=0
opAufs=""
for i in $root; do
#comeca com /?
if [ $(echo "===${i}"|grep "===/") ]; then
x=0
else
i=$rdist/$i
fi
log "$nm $i" 5
if test -d $i; then
d=$i
else
d=$drr/r_$nm
nm="${nm}0"
#$(echo $nm+1|busybox bc)
mkDir $d
if test -b $i; then
mount $i $d
if [ $? -ne 0 ]; then
erro "ERRO mount $i $d"
fi
elif test -f $i; then
mount -o loop $i $d
if [ $? -ne 0 ]; then
erro "ERRO mount -o loop $i $d"
fi
else
erro "ERRO nao existe $i"
fi
fi
# primeiro sempre rw, o resto ro
if [ ".$opAufs" == "." ]; then
opAufs="$d=rw"
else
opAufs="$opAufs:$d=rr"
fi
done
log "ROOTaufs=$opAufs"
mount -t aufs -o noatime,dirs=$opAufs aufs /root
ls /root
log "foi...aufs /root" 30
#move tudo para novo ROOT
# ao shutdown loop nao pode desmontar raiz porque
# raiz depende de mounts q estao dentro dela...
mkDir /root/mnt
mkDir /root/mnt/initrd
for i in $drr/*; do
x=$(basename $i)
mkDir /root/mnt/initrd/$x
mount -n -o move $i /root/mnt/initrd/$x
done
#debugl
if [ $debugL ]; then
mkDir /root/var
mkDir /root/var/log
mv $debugL /root/var/log
fi
log "##############################
moveu monts..." 30
#se nao matar o X fica sem mouse, teclado...
pkill udevd
killall udevd
# Move virtual filesystems over to the real filesystem
mount -n -o move /dev /root/dev
#mount -n -o bind /dev /root/dev
mount -n -o move /sys /root/sys
mount -n -o move /proc /root/proc
log "foi...mount -n -o move rootmnt=/root
@=$@" 20
#br-abnt2
#chroot /root /usr/sbin/install-keymap us
#echo "foi...teclado"
#sleep 3
#parte inutil, fixar em run-init... ou setado..
if [ ".$chr" == "." ]; then
for d in bin sbin; do
for i in run-init switch_root; do
ch=/$d/$i
if test -x $ch ; then
chr=$ch
break
fi
done
if [ ".$chr" != "." ]; then
break
fi
done
fi
log "chroot para == $chr /root $init $runLevel " 10
exec $chr /root $init $runLevel </root/dev/console >/root/dev/console 2>&1
echo "Could not execute run-init."
exit
#exec switch_root /root /sbin/init 2
#exec run-init /root ${init} "$@" </root/dev/console >/root/dev/console 2>&1
#ls /root/bash
#exec /bin/busybox chroot /root /sbin/init 2