Debian 是一个很好用的Linux分支,也是目前服务器端大家常用的操作系统,本文将指导如何升级 Debian 10 Buster 到 Debian 11 Bullseye。
升级是无损的,支持AMD以及ARM架构,另外升级系统也分为两个部分系统源组件和内核更新。
除非你是物理服务器,以及没有用过奇奇怪怪定制或修改的内核的 KVM 构架的 VPS 和云主机,否则升级大版本更新内核是有一定机率导致 Grub 加载失败的,切记备份重要数据!
OpenVZ 6 和 LXC 构架的 VPS 是无法升级的,因为他们没有自己独立的内核
再强调一遍,一定要备份重要数据!
以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作
1、更新目前系统组件为最新版本:
打开终端ssh软件链接服务器后获取 root 权限后执行:
shutdown -r now
如果遇到提示升级sshd组件,请选择保留当前版本以防ssh断联 “Keep the local version…”
2、替换系统组件源:
在重启完系统后,系统应该为当前Debian 10版本的最新版,随后即可更换最新的Debian 11软件源:
#使用FinalShell也可打开/etc/apt/目录手动编辑sources.list
国外主机默认Debian源:
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main
国内主机使用腾讯Debian源,加速访问:
deb-src http://mirrors.tencent.com/debian/ bullseye main
deb http://mirrors.tencent.com/debian-security bullseye-security main
deb-src hhttp://mirrors.tencent.com/debian-security bullseye-security main
deb http://mirrors.tencent.com/debian/ bullseye-updates main
deb-src http://mirrors.tencent.com/debian/ bullseye-updates main
替换后使用Ctrl+O保存文件,Ctrl+X退出nano编辑器。
3、再次执行更新系统:
更新过程种会提示一些软件是否需要自动重启,选 Yes 即可,以及一些软件的配置文件是否需要更新,按照自己的情况选择即可,默认回车即视为使用旧的配置文件,一般会出现在 OpenSSH 等软件的更新上。
apt upgrade -y
apt dist-upgrade -y
提示是否自动重启服务:restart services during package upgrades without asking,选择 Yes。
提示是否更新软件配置文件:Configuration file ‘/etc/sysctl.conf’,默认回车选 N。
提示是否更新 OpenSSH 配置文件:configuring openssh-server,选择 Keep the local version…。
重新加载配置以及删除不必要的软件和依赖:
apt autoremove -y
4、重启并查看当前系统版本:
然后我们使用命令重启系统,耐心等待后,查看最新的系统版本:
cat /etc/debian_version
lsb_release -a
5、更新系统最新内核:
由于Debian 10 的默认系统内核为4.X,所以我们要将内核升级为最新的5.X,
旧版内核会造成Debian 11 不稳定,比如ssh连接在重启后迟迟无法连接的问题,
所以我们也可以删除掉以前部署的bbrplus内核来实现原生bbr开启:
首先更新系统源,以及查找源内支持的内核:
apt search linux-image
此时以X86 架构 的64位 amd64 的vps举例来更新内核,arm 架构为 arm 来安装内核:
update-grub
清空bbrplus残留的配置信息,打开/etc/sysctl.conf清空内容,并添加新的信息
#清空ipv4的bbrplus转发策略,最好清空整个文件,然后保存退出继续在ssh输入下面信息:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
此时bbrplus的旧版4.X配置就已经清除了,重启后就会自动进入5.X内核默认开启原生BBR:
uname -a
6、卸载旧内核:
请确保使用中的内核不要卸载,开启显示5.X内核再执行下列步骤:
# 卸载指定的旧内核,为4.X以及bbrplus字眼,卸载多个只保留5.X内核
apt purge linux-image-*.**.*-**-amd64
# 自行复制apt purge后面的字符,为4.X内核或者bbrplus等内核
然后卸载删除旧头文件,不需要保留任何头文件,如果有5.X测试版头文件也可不删除:
apt purge linux-headers-*.**.*-**-amd64
# 自行复制apt purge后面的字符,为4.X内核或者bbrplus等头文件
然后保存内核设置重启机器即可正常使用:
shutdown -r now
uname -a
最后升级就成功完成了,按照我的步骤应该会看到2个内核image,0个headers存在,并且ssh首次链接会在最上方显示“Linux debian 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64”,当然这个为本文发布时的Debian 11.5最新版本内核文件编号。