通过网络启动的方式安装 Debian

本文主要介绍如何使用仅 48 MB 的镜像网络启动安装 Debian Linux。

引言

作为一个极简主义者,对于那些巨大的镜像显然是不感冒的。对于几乎所有系统,我都更喜欢用更小的网络启动镜像来安装,所以便有了这篇文章。

优缺点

使用网络启动镜像安装系统的优点是:

  1. 需要下载的内容是最少的
  2. 可以根据自己的需要方便的增加模块

缺点是:

  1. 需要可以上网的环境
  2. 相比于普通的安装方式要稍显复杂

环境

以下是本文的实验环境:

  • VMware Workstation 16.1.2
  • mini.iso
  • 可以上网的宿主机

mini.iso 是本文用于网络启动安装 Debian 所准备的镜像,你可以点击以下链接下载。

https://deb.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/mini.iso

优化虚拟机设置

具体优化项目可见:提升 VMware Workstation 性能和易用性的几个 Tips。如果你使用物理机进行安装,那么可以直接跳过此步。

安装

启动安装程序

刚开机,会显示出如下界面:

GRUB Command Line

你可能会很迷惑,不是说好的要安装系统吗?怎么跳出 GRUB 命令行来了?

因为我们用的是 mini.iso,是所有镜像中最小的一种,仅包含了必须文件(包括内核、Initrd 文件等)。所以我们需要手动输入命令以装载内核文件和 Initrd 文件。

当你的启动固件为 BIOS 时,输入以下命令(可以使用 Tab 键进行补全):

linux /linux
initrd /initrd.gz
boot

如果你的启动固件为 UEFI,则输入以下命令:

linuxefi /linux
initrdefi /initrd.gz
boot

更改 debconf priority 级别

将命令输入之后,我们就可以看到接下来的安装程序了。

安装界面

进行此步骤的目的是,可以让我们对接下来的安装更为可控。

按 Tab 键移动到 <Go Back>,然后按 Enter 键确认,此时界面如下:

选择步骤

我们选择 Change debconf priority,选择之后此时界面如下:

更改级别

我们选择最低的 low 级别并确认,在之后的界面直接按回车即可回到我们一开始的 Language 界面。

选择语言

语言方面,我个人直接选择 English,之后进入选择国家和地区步骤,我选择了我自己的所在地,你可以根据自己的想法选择。

选择国家

之后我们进行 locales 的配置,我选择了 en_US.UTF-8

locales

然后让我们选择附加的 locales,此步骤我没有附加其它 locales,而是直接选择 Continue 进行到下一步。

选择附加 locales

此时你会发现界面又回到了选择步骤的页面,并且自动帮你选择了下一步配置项,以后每配置完一项之后回到这个界面都可以直接按回车确认以进行下一步骤。

选择键盘布局

键盘布局方面,中国的键盘布局和美国的键盘布局是一样的,所以直接选择 American English 就可以了。

选择键盘布局

配置网络

接下来我们配置网络,先移动到 Detect network hardware 选项,然后确认以检测网络硬件,之后我们进入网络配置界面。

由于我使用的虚拟机网卡模式为 NAT 模式,自带 DHCP,所以我直接选择了自动配置网络选项。

自动配置网络

接下是配置网络链路检测时间上限,我使用了默认的 3 秒,如果有别的需求可以更改。

配置网络链路检测时间上限

经过 DHCP 获取到地址之后,我们开始配置主机名、域名:

配置主机名

配置域名

配置镜像源

菜单

由于我们使用的镜像是网络启动镜像,其中并没有包含 https 的 CA 证书的相关包(Package),所以我们选择 http 协议。

选择镜像源使用的协议

接下来的步骤我就不一一截图了,选择对于你来说速度最快的镜像源即可,我选择的是 BFSU 镜像源。

选择镜像源

之后的界面是配置 HTTP 代理,如果有需要可以在这里配置。

然后我们开始选择 Debian 的版本,Debian 共有三个版本,分别是 StableTestingUnstable,顾名思义,分别是稳定版、测试版和不稳定版本。我个人选择使用稳定版本。

选择版本

下载组件

选择好镜像源之后,我们开始下载必须的组件。

菜单

在这个界面可以选择你需要下载的组件,我本次的安装是最小安装,所以并没有下载额外的组件。

选择需要下载的组件

开始下载组件。

下载组件

等进度条走完之后,我们进入到下一步。

设置用户和密码

菜单

接下来我们开始设置用户和密码。首先开启 shadow passwords,开启此功能可以让我们的系统更加安全。

开启 `shadow password`

之后就是让我选择是否允许 root 用户登录,我个人选择了允许登录,可按个人喜欢选择。

是否允许 root 用户登录

设置 root 用户密码。

设置 root 用户密码

再输一遍以确认密码。

再输一遍 root 用户密码

接着我们创建普通用户。

创建普通用户

输入用户全名,注意,此处的全名不等同于用户名,可置空。

输入用户全名

此时才开始输入用户名。

输入用户名

输入用户密码。

输入用户密码

之后再输入一遍以确认密码没有输错即可。

设置时钟

菜单

选择是否使用 NTP 来校时,NTP 是一种校时服务,可以实时与 NTP 服务器同步时间,我选择 Yes

是否使用 NTP

设置 NTP 服务器地址,我这里设置的是中国官方的 NTP 服务器:ntp.ntsc.ac.cn

设置 NTP 服务器地址

设置时区。

设置时区

分区

首先直接回车以扫描磁盘,之后会自动帮我们移动到下一个步骤,我们只需再按一次回车。

扫描磁盘

接下来我们选择磁盘分区方法,我个人选择了手动分区,也就是最后一个选项。

选择磁盘分区方法

基本的磁盘分区方案可以查看 Red Hat 的官方文档:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation/partitioning-reference_installing-rhel

注意,红帽官方文档使用的容量单位为 GiB 而不是 GB,但是 Debian 安装程序中使用的单位是 GB,所以需要换算。

以下是我的分区方案:

分区方案

将更改写入硬盘。

写入硬盘

安装基本系统

菜单

直接回车以开始安装基本系统。中途会让我们选择需要安装的内核,如果你所安装的机器是云服务器且使用的技术并非 Hyper-V VMware,同时配置又较低,那么就可以使用 linux-image-cloud-amd64,此内核是经过精简的内核,更适用于配置较低的机器。其它情况下一般选择安装 linux-image-amd64

选择需要安装的内核

接下来会让你选择需要包含在 Initrd 中的驱动,如果后续需要添加许多不同种类的硬件设备,那么选择第一项。如果后续不需要添加其它种类的硬件设备,则选第二项以精简 Initrd。

选择 Initrd 中包含的驱动

配置包管理器

菜单

一般情况下我们也会使用非自由软件,所以我们选择 Yes

是否使用非自由软件

我们在需要编译程序的时候,可能会用到程序的源代码文件,所以该选项我们也选择 Yes

是否开启源码存储库

接下来选择要包含的存储库,如果你正在安装的机器处于国内,则去掉第一个选项,如果在国外,则勾选所有选项即可。国内连接到 Debian 官网并不是很顺畅,所以我们需要暂时取消勾选第一项,后面我们可以通过更改配置文件的方法来重新启用。

选择包含的存储库

选择要安装的软件

菜单

回车进入此步骤后,会让你选择是否自动安装安全更新,我个人推荐第二个选项,也就是开启自动安装安全更新,这样的话 Debian 官方发布安全更新后,包管理器会帮我们自动安装从而省去手动安装的麻烦并且可以让系统更加安全。

是否启用自动安装安全更新

之后会让我们选择是否加入包使用统计调查,会将你的包使用情况自动上传到服务器,由于担心隐私泄露我这里选择了 No

是否加入包使用统计调查

接下来我们选择需要安装的软件,我个人倾向于全部不选择以达成最小化安装,之后有需要了再通过包管理器等方式安装。

选择需要安装的软件

安装 GRUB

菜单

进入此步骤后会让你选择是否强制将 GRUB 安装到 EFI 分区上,建议选择 No。对于大部分机器来说,选择 No 都可以正常开机,并且这种实现更为标准和优雅,如果你的机器厂家的 UEFI 做的不是很好,可能会导致无法开机,此时再选择 Yes 即可。

是否将 GRUB 强制安装到 EFI 分区

完成安装

菜单

选择 Finish the installation 之后会让你决定是否将硬件时钟调整为 UTC 时区,如果你的机器中还装有其它系统,比如 Windows,则建议选择 No,反之则选择 Yes

是否将硬件时钟调整为 UTC 时区

最后,安装完成,回车确认之后就会重新启动,之后我们就可以看到你安装好的 Debian Linux 了。

安装完成