2012-05-18 20:27:25 +04:00
|
|
|
#!/bin/bash
|
|
|
|
|
2012-07-08 16:45:24 +04:00
|
|
|
kernel_regex=`kernel-config list | grep \* | cut -d" " -f6 | sed 's~[0-9]*\.[0-9]*\.[0-9]*~[0-9]*\.[0-9]*\.[0-9]*~ ; s~-r[0-9]*$~~; s~$~\\\(-r[0-9]\\\)\\\?~'`
|
2012-05-18 20:27:25 +04:00
|
|
|
[ "" == "$kernel_regex" ] && echo "kernel_regex build failed ;-(" && exit -1
|
|
|
|
|
|
|
|
new_kernel=`kernel-config list | cut -d" " -f6 | grep ^$kernel_regex$ | sort -V | tail -n1`
|
|
|
|
[ "" == "$new_kernel" ] && echo "Couldn't find appropriate new kernel version ;-(" && exit -1
|
|
|
|
|
2012-10-31 21:15:31 +04:00
|
|
|
# remounting file systems ro->rw
|
|
|
|
for fs in $RW_REMOUNT; do
|
|
|
|
if [[ "$fs" =~ ^/+usr/*$ || "$fs" =~ ^/+boot/*$ ]]; then
|
|
|
|
echo "remounting $fs -> rw"
|
|
|
|
mount -o remount,rw $fs
|
|
|
|
[ 0 -ne $? ] && echo "mount -o remount,rw $fs failed ;-( =======" && exit -1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2012-05-18 20:27:25 +04:00
|
|
|
kernel-config set $new_kernel
|
|
|
|
[ 0 -ne $? ] && echo "kernel-config set $new_kernel failed ;-(" && exit -1
|
|
|
|
|
|
|
|
kernel-clean.sh
|
|
|
|
[ 0 -ne $? ] && echo "kernel-clean.sh failed ;-(" && exit -1
|
|
|
|
|
|
|
|
vmlinuz_file=/boot/`echo $new_kernel | sed 's~^linux~vmlinuz~'`
|
|
|
|
[ "" == "$vmlinuz_file" ] && echo "vmlinuz_file == \"\"" && exit -1
|
|
|
|
|
|
|
|
if [ ! -f "$vmlinuz_file" ]; then
|
|
|
|
kernel-rebuild.sh
|
|
|
|
[ 0 -ne $? ] && echo "kernel-rebuild.sh failed" && exit -1
|
|
|
|
fi
|
|
|
|
|
2012-10-31 21:15:31 +04:00
|
|
|
# remounting file systems rw->ro
|
|
|
|
for fs in $RO_REMOUNT; do
|
|
|
|
if [[ "$fs" =~ ^/+usr/*$ || "$fs" =~ ^/+boot/*$ ]]; then
|
|
|
|
echo "remounting $fs -> ro"
|
|
|
|
mount -o remount,ro $fs
|
|
|
|
[ 0 -ne $? ] && echo "mount -o remount,ro $fs failed ;-( =======" && exit -1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2012-05-18 20:27:25 +04:00
|
|
|
exit 0
|
|
|
|
|