介绍在 VirtualBox 中安装 debian11 操作系统,以及安装后常常需要的几个初始配置工作。作者力图在介绍安装过程的同时,多做一些相关知识的搜集和概述,让作者和读者在某些方面能知然也知其所以然。
安装 Oracle VM VirtualBox 的过程,本文略过。
简单介绍一下 Debian。Debian 既是一个操作系统的名称,也是致力于创建此自由操作系统的合作组织的名称。
操作系统是使计算机运行的基本程序和工具的集合,其最主要的部分称为内核。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。
Debian 系统目前采用 Linux 内核或者 FreeBSD 内核,支持其他内核的工作(主要是Hurd)也在进行中。Debian操作系统中的大部分基本工具来自于 GNU 工程;因此它们被命名为 GNU/Linux、GNU/kFreeBSD 和 GNU/Hurd。这些工具同样都是自由的。
Debian 拥有超过 59000 个软件包,涵盖从文档编辑到电子商务、游戏娱乐和软件开发等各个方面,而且这些软件包全都是自由软件。Debian 具有卓越的稳定性、安全性、终多的架构和设备支持、公开的缺陷跟踪系统、平滑的升级过程、广泛使用的软硬件开发工具、LTS版本和云镜像支持等优点,对用户、开发者或者企业环境,它都是很不错的一个选择。
我们选择下面的下载方式:
选择的镜像站为:
中国大陆: mirrors.163.com: HTTP
最终的链接为: debian-11.3.0-amd64-DVD-1.iso
amd64,又称“x86-64”或“x64”,是64位的电脑处理器架构,是我们现在的常用电脑 CPU 架构 。
安装好 Oracle VM VirtualBox (演示版本为 6.1.34)后, 桌面上会创建有一个 Oracle VM VirtualBox 图标,双击后打开 VirtualBox 管理器,进行当前主机下的虚拟机管理。
点击界面右侧的新建按钮,或菜单项【控制 - 新建】,打开新建虚拟电脑对话框,按界面提示依次设定虚拟电脑相关参数。示例参数设定如下:
新建了虚拟电脑后,点击右侧工具栏的设置按钮,进行虚拟电脑配置。
在设置的系统项目中,注意一下启动顺序。因为后面安装要从镜像文件启动安装,所以启动顺序应该是光驱先于硬盘。
在设置的存储项目中,点击界面最右侧的蓝色光盘,选择后文将介绍下载的 debian11 镜像文件。
在设置的网络项目中,示例选择网络连接方式为桥接网卡。
按上文设置好新建的虚拟机后,就可以启动它开始 debian 的安装了。
点击 VirtualBox 管理器右侧的启动按钮,启动虚拟机。正常的话,过一会后会显示如下界面
选择 Graphical install (图形化界面安装),回车,继续安装。
在安装过程中,点击鼠标进入虚拟机窗口后,如果移动鼠标超出虚拟机窗口后不能脱离虚拟机控制,可按电脑键盘右侧的 Ctrl 按键,由主机系统接管鼠标。
继续 Debian 的安装, 后续过程和选择的选项或说明简单罗列如下:
此时可以断开网络连接了,否则后面的安装非常慢
安装结束后,虚拟机自动重启,进入 debian ,等待用户登录。
为方便后面的使用,下面进行一些系统的配置和几个工具的安装。
继续之前,用 root 登录进虚拟机,修改 /etc/default/local 文件内容 :
nano /etc/default/local
打开后,注释所有行
# File generated by update-locale
# LANG="zh_CN.UTF-8"
# LANGUAGE="zh_CN:zh"
修改好后,分别按 Ctrl-X 组合键、y 和回车键,保存并退出 nano。使用 date 命令,查看当前时间,能看到年月日中夹杂着菱形乱码。 重启系统:
date
reboot
重启后,再次使用 date 命令显示当前时间,可看到输出结果为正常的英文时间表达。
(尽管下载的 是DVD 镜像,但需要的软件还是不全,所以建议直接使用下面一节介绍的镜像源。此节只就为需要光盘安装的时被查)
先在虚拟机的设备分配光驱中指定 debian11 的镜像文件
登录debian后,查看光驱设备名
cat /proc/sys/dev/cdrom/info
系统显示光驱信息:
可知光驱设备名称为 sr0 。
手动挂载光盘到 /media/cdrom 目录
mount /dev/sr0 /media/cdrom
查看 /media/cdrom , 能看到镜像光盘的内容。
修改指定挂载点为软件源
nano /etc/apt/sources.list
添加刚挂载的光盘(ISO)挂载点为软件源。
deb [trusted=yes] file:/media/cdrom/ bullseye contrib main
其中 /media/cdrom 为上一步挂载点,路径后面的 bullseye contrib main 可参照使用 apt-cdrom add 命令自动生成的信息填写,[trusted=yes] 告诉 APT 该源是可信的。详细说明参考官方文档 SOURCES.LIST(5).
以阿里云镜像站配置(官方说明)为例:
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
nano /etc/apt/sources.list
替换内容为
deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main
deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
更新软件源列表
apt update
也可以使用清华大学的开源镜像站,具体详见 Debian 镜像使用帮助(清华大学)
延续上一小节的方法,使用光盘镜像源,挂载镜像文件,然后安装虚拟机增强功能需要的前置软件 bzip2
挂载光驱
mount /dev/sr0 /media/cdrom
apt update
apt install bzip2
安装成功后,卸载光驱
umount /media/cdrom
打开i虚拟机的设备菜单,选择分配光驱子菜单下的镜像文件 VBoxGuestAdditions.iso
mount /dev/sr0 /media/cdrom
sh /media/cdrom/VBoxLinuxAdditions.run
重启系统
reboot -h now
如果上面安装系统的时候,已经选择安装了 ssh server , 可跳过本节前半部分的安装内容。
apt update
安装 OpenSSH SSH server
apt install openssh-server
systemctl enable ssh
systemctl start ssh
systemctl status ssh
默认情况下,您将无法以 root 身份访问 OpenSSH SSH 服务器。 如果您需要以 root 用户身份登录 SSH 服务器,则必须从 sshd_config 文件中启用它。
nano /etc/ssh/sshd_config
将 #PermitRootLogin prohibit-password修改为 PermitRootLogin yes
#PermitRootLogin prohibit-password
PermitRootLogin yes
修改好后,分别按 Ctrl-X 组合键、y 和回车键,保存并退出 nano
重启 ssh 服务
systemctl restart ssh
我们通过 ssh 客户端软件,如 XShell,就能连接到虚拟机的 ssh 服务。
用虚拟机登录 debian 控制台,输入 date 命令查看当前时间,会看到有菱形乱码。这是由于安装过程中安装过程语言选择了简体中文,它同时也是安装后系统的默认语言。但由于系统内核没有默认安装中文字库,所以在终端窗口以默认中文语言显示提示信息时,中文字符就显示成了菱形乱码。
下面我们先安装中文字体包,再作一些相关解释。
apt install xfonts-intl-chinese
更多的字体软件包信息,可访问
https://packages.debian.org/bullseye/fonts/
如果安装失败,则需要修改 apt 源
nano /etc/apt/sources.list
注释光盘源,替换默认源为国内的源
# deb [trusted=yes] file:/media/cdrom bullseye contrib main
# deb http://security.debian.org/debian-security bullseye-security main contrib
# deb-src http://security.debian.org/debian-security bullseye-security main contrib
deb http://mirrors.163.com/debian/ bullseye main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
应用软件的多语言化或本地语言的支持,通过2个步骤完成:先是国际化,使得软件能够处理多个语言环境;然后是本地化。国际化的单词是Internationalization,字母 I 开头,N结尾,中间有18个字母,所以缩写成 I18N。同理,本地化 Localization 缩写为 L10N,多语言化 multilingualization 缩写为 M17N。
本地化语言环境一般是反映一个国家或文化的性质和惯例的一组值,它们存储为一组环境变量,代表语言、字符编码、日期和时间格式、默认纸张大小、国家/地区的货币以及一周的第一天等。
使用 locale 命令查看语言环境:
root@debian:~# locale
LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
如果安装时语言选择中文,区域选择香港,locale 命令的返回结果除了 LC_ALL,其他语言环境变量的值都会是 zh_HK.UTF-8
我们可通过重新配置 Debian 语言环境包来调整系统的语言环境,这由命令 dpkg-reconfigure 实现:
dpkg-reconfigure locales
命令提示:区域设置(locale)是一种在多种语言之间切换的框架,用户可以通过它来设定自己的语言、国家、字符集、字符串排序方式等。请选择需要生成的区域设置。通常应当选择 UTF-8 字符集的区域设置,特别是对于新安装的系统。其他的字符集一般用于兼容旧系统和旧软件。
在区域设置列表中,课通过上下箭头选择区域,通过空格键切换选中状态。我们选择 en_US.UTF-8 UTF-8
和 zh_CN.UTF-8 UTF-8
两项。 确定,继续选择一项缺省的区域设置。此时选择 en_US.UTF-8 。确定,保存执行。这会更改 /etc/default/locale 和 /etc/locale.gen 文件的内容。重新登录系统,再执行 date 和 locale 命令,将看到默认语言成了英文。
nano /etc/default/locale
注释掉下面两行
LANG=”zh_CN.UTF-8″
LANGUAGE=”zh_CN:zh”
export LANG=zh_CN-UTF-8
export LANG=en_US-UTF-8
export LANG=zh_CN.UTF-8
date
2022年 06月 17日 星期五 14:17:43 CST
export LANG=en_US.UTF-8
date
Fri 17 Jun 2022 02:17:56 PM CST
切换设置 LANG环境变量,调用 date 命令,可分别看到汉语和英文显示的当前日期。
默认情况下,系统网络接口会请求 dhcp 服务动态分配 ip 地址,这样每次启动后,获取的 ip 地址可能是动态变化的,这对需要特定 ip 的应用(比如 ssh 连接)造成麻烦。
检查网络接口
ip -c link
输出结果如下:
命令 ip 可获取系统可用网络接口的详细信息,是 Internet Protocol 的缩写。子命令 link 查看和修改网络接口。
命令结果显示,系统有两个网络接口: lo 和 enp0s3
lo代表本地环路接口,是 local 的缩写。lo 是一个系统虚拟的环回接口,代表设备的本地虚拟接口,IP地址是 127.0.0.1,利用这个接口可以实现系统内部发送和接收数据。通常在不安装网卡前就可以ping通这个本地回环地址。所以 lo 接口不是我们的所关心的。
另一个接口是 enp0s3,en 标识 ethernet,en后面的p 代表独立网卡、PCI网卡。p3s0代表PCI接口的物理位置为(3, 0), 其中横座标代表bus,纵座标代表slot 。
下表是网络接口命名的具体解释:
/*
* Two character prefixes based on the type of interface:
* en — Ethernet
* sl — serial line IP (slip)
* wl — wlan
* ww — wwan
*
* Type of names:
* b<number> — BCMA bus core number
* c<bus_id> — CCW bus group name, without leading zeros [s390]
* o<index>[d<dev_port>] — on-board device index number
* s<slot>[f<function>][d<dev_port>] — hotplug slot index number
* x<MAC> — MAC address
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
* — PCI geographical location
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
* — USB port number chain
*/
由上可见,enp0s3 是我们将为其设置静态 IP 的网络接口
使用 nano 编辑器中打开网络接口配置文件/etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug enp0s3
# iface enp0s3 inet dhcp
auto enp0s3
iface enp0s3 inet static
address 192.168.1.113
netmask 255.255.255.0
gateway 192.168.1.1
重启和查看网络服务, 查看网络接口新分配的 ip 地址
systemctl restart networking
systemctl status networking
ip -c addr show enp0s3
安装相对简单,初始配置还是有点麻烦。万事开头难,咬咬牙,也就过来了。