Ubuntu Kernel Update 脚本
我是不是疯了
在写这个脚本的时候,我还没有疯掉。因为那个时候我还在用 Ubuntu 16.04
去装上 4.17.x
的脚本(_all.deb
根本装不上去),但是追求最新版本的心是不会死的,所以我写了这个脚本。
但是 但是 我的Mysql在Ubuntu 18.04上崩了,PHP7.2诡异报错(可能和我菜也有关) 。我的主力台式机编译网件A6210
网卡的时候,各种kernel语法报错,我从3.2一路试到4.18,结果吗…..找了个Gayhub dalao的源码魔改,自己继续魔改。装了上去,还不怎么稳定。。。
我是怎么写的
我曾经经历过一次Update Kernel时的SSH disconnected
,所以不用担心,我把Update专门放在了后台的screen
里执行。以及安装axel
,screen
,执行apt update && apt upgrade
确保不会出现其他问题。
对了我还有关于处理器架构的选择…..当然,是 Alpha-Alpha 版本。加油
代码及地址
我把持续更新的代码传到了我自己的脚本网站上2333
如果你想直接使用可以使用命令
bash -c "$(curl -sL https://shell.makiras.org/bash/Ubuntu_Kernel_Update.sh)"
源代码如下…….丑请轻点喷orz
#!/bin/bash
mkdir ~/tmp_4.18.5
cd ~/tmp_4.18.5
dpkg --configure -a
apt-get update && apt-get install -f
apt-get install axel
echo ""
echo -e "\033[33m ###################################################### \033[0m"
echo -e "\033[33m # Only For UBUNTU!/仅供Ubuntu! # \033[0m"
echo -e "\033[33m # Please Select Your Processor Architecture ! # \033[0m"
echo -e "\033[33m # Or your Computer may be crash ! # \033[0m"
echo -e "\033[33m # 请正确选择您的处理器架构,否则您的电脑可能会损坏。 # \033[0m"
echo -e "\033[33m # IF you are using vps , most time is amd64 # \033[0m"
echo -e "\033[33m # 绝大多数情况下是 amd64架构 # \033[0m"
echo -e "\033[33m ###################################################### \033[0m"
echo ""
echo "1. amd64 (x86_64) [default]"
echo "2. i386 (x86_32)"
echo "3. armhf (Optimized arm32 , beat)"
echo "4. arm64"
echo "5. ppc64el"
echo "6. s390x"
echo -e "\033[33m Now , Please Input version (Default: 1) \033[0m"
read vers
if [ ${vers:=1} -lt 1 ] || [ $vers -gt 6 ]
then
exit 1
fi
if [ $vers -eq 1 ] ; then
versions="amd64"
elif [ $vers -eq 2 ] ; then
versions="i386"
elif [ $vers -eq 3 ] ; then
versions="armhf"
elif [ $vers -eq 4 ] ; then
versions="arm64"
elif [ $vers -eq 5 ] ; then
versions= "ppc64el"
elif [ $vers -eq 6 ] ; then
versions="s390x"
fi
axel -q -n 16 https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.18.5/linux-headers-4.18.5-041805_4.18.5-041805.201808241320_all.deb
echo "10% Complete"
axel -q -n 16 https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.18.5/linux-headers-4.18.5-041805-generic_4.18.5-041805.201808241320_$versions.deb
echo "25% Complete"
axel -q -n 16 https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.18.5/linux-image-unsigned-4.18.5-041805-generic_4.18.5-041805.201808241320_$versions.deb
echo "50% Complete"
axel -q -n 16 https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.18.5/linux-modules-4.18.5-041805-generic_4.18.5-041805.201808241320_$versions.deb
echo "65% Complete"
#进入Screen进行安装操作防止掉线(血的教训)
screen -dmS $"update_kernel"
screen -x -S $"update_kernel" -p 0 -X stuff $"dpkg -i *.deb \n"
echo "Waiting For 180 to complete Install"
seconds_left=180
while [ $seconds_left -gt 0 ];do
echo -ne "\033[5;32m $seconds_left \033[0m"
sleep 1
seconds_left=$(($seconds_left - 1))
echo -ne "\r \r" #清除本行文字
done
echo ""
echo "80% Complete"
dpkg --configure -a
apt-get install -f
apt-get update && apt-get upgrade
apt autoremove --purge
screen -x -S $"update_kernel" -p 0 -X stuff $"update-grub\n"
screen -x -S $"update_kernel" -p 0 -X stuff $"exit\n"
cd ~
rm -rf ~/tmp_4.18.5
echo "Complete!"
echo ""
echo ""
echo -e "\033[40;37m ######################################### \033[0m"
echo -e "\033[40;37m # Please Remove old Kernels in /boot ! # \033[0m"
echo -e "\033[40;37m # Only Keep 2 or 3 Kernels as back up # \033[0m"
echo -e "\033[40;37m # Or your dpkg system may be crash ! # \033[0m"
echo -e "\033[40;37m ######################################### \033[0m"
echo ""
echo ""
echo -e "\033[32m Reboot or Not ? (Y/N) \033[0m"
echo -e "\033[32m 是否重启使内核生效? (Y/N) \033[0m"
read c
if [ $c == 'Y' ] || [ $c == 'y' ]
then
reboot
fi
exit 0
我还活着吗
我还活着,但只是到目前为止。