Browsed by
Tag: Stretch

Debian 8 升级 Debian 9 (DO篇)

Debian 8 升级 Debian 9 (DO篇)

这两天升级几个Debian 8 (jessie)的droplet,屡次失败,后来参考了一篇blog(请点击此处了解),并多次尝试后才最终成功。回过头来看看,其实整个过程很简单,只是被一个点卡住,就来回折腾。本文简要记录一下操作顺序和操作要点,以备日后查看。

修改 /etc/apt/sources.list 文件

这个是通用步骤了,修改成 Debian 9 (stretch) 的源即可。

deb http://deb.debian.org/debian stretch main contrib non-free
deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb http://deb.debian.org/debian stretch-proposed-updates main contrib non-free
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb http://deb.debian.org/debian-security stretch/updates main contrib non-free

deb-src http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-proposed-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian-security stretch/updates main contrib non-free

这里也可以用 DO 自己的镜像站点的源(http://mirrors.digitalocean.com/)。考虑到我们的droplet都部署在欧洲和美国,因此速度上没太大差别,还是直接取官网的源好了。

备份 /etc/cloud 目录

使用以下命令直接备份即可。这步骤非常重要,实际上是整个升级的关键点!后面操作中,必须要还原这个目录!

cp -r /etc/cloud /etc/cloud-bak

停止所有相关的服务

这也是通用步骤,没什么细讲。有什么服务就停什么服务好了。

systemctl stop apache2
systemctl stop mysql
systemctl stop fail2ban
systemctl stop dovecot

更新并升级

需要注意的是,一般情况下,升级提示是否保留原有配置时,一般都保留原有配置,这个也是默认选项。但是对于fail2ban的jail.conf文件,建议采用系统新的文件,后面手工再改即可。

我在这个更新过程中,没有提示是否保留/etc/cloud的配置,因此后面需要手工还原备份的/etc/cloud目录,如果是系统提示了,务必要保留原有的/etc/cloud配置。

apt update
apt upgrade
apt dist-upgrade

还原 /etc/cloud 目录

完成各项更新后,先不要重启系统,务必先还原 /etc/cloud 目录。这步相当关键!如果没有还原,将采用系统新的/etc/cloud 配置,导致cloud-init 过程失败,系统无法启动!

rm /etc/cloud
cp -r /etc/cloud-bak /etc/cloud

最后,就是重启系统,完成整个升级。

关于 /etc/cloud 目录,只在 DO 的系统中有这个目录,在 Linode 等其他VPS系统没有发现。感觉是 DO 处理上一个不太完善的地方,这个目录似乎没有必要暴露给客机系统,主机系统配置即可。

和 DO 的技术支持人员简单交流了这个问题,平台相关的元数据(metadata)是保留在 /var/lib/cloud 目录下,似乎 /etc/cloud 只是上游云系统的初始化配置(根据 /var/log/cloud-init.log, 系统初始化时需要从这个目录下读取 cloud.cfg 等配置)。

升级树莓派系统至 Stretch 版本

升级树莓派系统至 Stretch 版本

Pi 官方的Raspbian版本已经正式升级到 Stretch,即 Debian 9 系统。目前使用的还是 Jessie 版本, 根据官方的指导文档,进行升级,总体是比较平顺的,当然也有一些需要总结和修订。

在升级之前,首先要把源系统更新(update)、升级(upgrade)。

然后修改软件源文件,将 jessie 修改为 stretch,共有两个文件需要修改:

/etc/apt/sources.list
/etc/apt/sources.list.d/raspi.list

修改完成后,直接更新版本即可:

sudo apt-get update
sudo apt-get -y dist-upgrade

更新过程耗时比较长,耐心等待即可。需要注意的是,Stretch 版本中将 MySQL 替换为 MariaDB 了,因此如果是安装了MySQL, 需要重新安装 MariaDB。 好在替换过程似乎也很顺利,如果是深度使用MySQL,建议仔细检查这个替换。

升级完成后,音频库没有必要,可以删掉;另外有个字体库则需要单独安装以支持中文:

sudo apt-get -y purge "pulseaudio*"
sudo apt-get install fonts-droid-fallback

在体验最新版本的过程中,发现 xrdp 无法使用。需要卸载以前的版本,同时重新安装 VNC 软件。

sudo apt-get remove xrdp vnc4server tightvncserver
sudo apt-get purge tightvncserver xrdp
sudo apt-get install -y xrdp vnc4server tightvncserver

在用 Windows 的远程桌面登录时, 也要明确指示采用 Xvnc 而不是 Xorg 。以前的版本倒是没有这么麻烦,不知道是升级导致的问题,还是新版本就有这个问题。

升级后感觉明显快了很多,这有点意外,毕竟硬件没有改变,基础 Debian 系统在效率方面改变似乎也并不很大。