在云服务器上安装最新版 Debian 系统

本文主要介绍如何在云服务器上安装最新版本的官方 Debian Linux。

引言

由于各大云服务器厂商(尤其是国内云服务器厂商)对系统镜像的更新较慢,并且其镜像经过厂商的修改。作为一个热爱纯净、有点洁癖的人来说,这显然是无法接受的,于是便有了这篇文章。

前置条件

  • 服务器的虚拟化架构需是 KVM 或者 XEN 等可以更换内核的架构(当然,裸金属服务器也是可行的)。
  • 你需要有完整的 root 权限
  • 云服务器厂商提供了类似 VNC 的功能

保存主机的相关信息

我使用的服务器是腾讯云轻量应用服务器,配置为 1 核心 CPU、2 GB 内存、60 GB 硬盘,操作系统为 Debian Linux 10.2。理论上只要是使用 GRUB 作为引导程序的系统都可以,但是我并没有在 Cent OS 等其它 OS 上尝试过,不确保是否可以使用此方法。

由于腾讯云对轻量应用服务器提供了 DHCP,所以我几乎不需要保存多少信息,但是如果你使用的服务器的厂商并没有提供 DHCP 等服务(例如 CloudCone),则需要备份 IP、DNS 和其它你认为需要保存的信息。

备份内网软件源地址

cat /etc/apt/sources.list

这是我的回显:

deb http://mirrors.tencentyun.com/debian buster main contrib non-free
# deb-src http://mirrors.tencentyun.com/debian buster main contrib non-free
deb http://mirrors.tencentyun.com/debian buster-updates main contrib non-free
# deb-src http://mirrors.tencentyun.com/debian buster-updates main contrib non-free
deb http://mirrors.tencentyun.com/debian-security buster/updates main contrib non-free

# deb-src http://mirrors.tencentyun.com/debian-security buster/updates main contrib non-free
# deb http://mirrors.tencentyun.com/debian buster-backports main contrib non-free
# deb-src http://mirrors.tencentyun.com/debian buster-backports main contrib non-free
# deb http://mirrors.tencentyun.com/debian buster-proposed-updates main contrib non-free
# deb-src http://mirrors.tencentyun.com/debian buster-proposed-updates main contrib non-free

备份 IP、DNS 等网络配置信息

ip -c ad
cat /etc/resolv.conf

这是我的回显:

# ip -c ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:7a:e1:19 brd ff:ff:ff:ff:ff:ff
    inet 10.0.4.10/22 brd 10.0.7.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe7a:e119/64 scope link 
       valid_lft forever preferred_lft forever

# cat /etc/resolv.conf
nameserver 183.60.83.19
nameserver 183.60.82.98

找到安装 GRUB 的分区

lsblk

这是我的回显:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 141.2M  0 rom  
vda    254:0    0    60G  0 disk 
└─vda1 254:1    0    60G  0 part /

可以看到我的这台腾讯云的轻量服务器只有一个 / 分区。那么就可以判断出 GRUB 是安装在 / 分区内的。所以当我们处于 GRUB 引导界面时,它的起始分区为 /

下载内核文件和 Initrd

在确定了 GRUB 安装的位置后,我们进入 / 分区(也就是 GRUB 的安装分区),并下载内核文件和 Initrd(临时根文件系统),需要下载在 GRUB 的安装分区内,如果你的 GRUB 安装分区为 /boot,那就将第一步的命令改为 cd /boot

由于我使用的是腾讯云轻量服务器,所以我是直接从腾讯云自建的内网源获取的文件,以下的下载链接请根据自己的情况修改。

cd /
wget http://mirrors.tencentyun.com/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
wget http://mirrors.tencentyun.com/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux

延长 GRUB 引导界面的等待时间

有时云服务厂商定制的系统镜像会更改 GRUB 引导界面的等待时间,我们需要将其延长以便我们来得及进行操作。

vim /etc/default/grub

将此文件中的 GRUB_TIMEOUT= 后面的值改为 10 或者更长时间(单位为秒)。

重启

reboot

进入 GRUB 命令行模式

GRUB 引导界面

当我们进入 GRUB 引导界面后,按 c 键,即可进入 GRUB 命令行,如下图。

GRUB 命令行

输入以下命令以指定需要启动的 Linux 内核和 Initrd。由于 GRUB 的起始分区为 /,而我们的内核文件和 Initrd 文件也下载在了此分区,所以不用担心发生找不到文件的问题。

linux /linux
initrd /initrd.gz

输入以下命令以启动。

boot

如果一切正常,那么你现在就可以看到此时正处于 Debian Linux 的网络安装界面了。

Debian Linux 网络安装界面

详细的 Debian Linux 安装教程可以看此篇文章:通过网络启动的方式安装 Debian