• 在 VirtualBox 中构建 Debian11 虚拟电脑



    前言

    介绍在 VirtualBox 中安装 debian11 操作系统,以及安装后常常需要的几个初始配置工作。作者力图在介绍安装过程的同时,多做一些相关知识的搜集和概述,让作者和读者在某些方面能知然也知其所以然。


    一、准备工作和Debian简介

    • 安装 Oracle VM VirtualBox
    • 下载 Debian 11

    安装 Oracle VM VirtualBox 的过程,本文略过。

    简单介绍一下 Debian。Debian 既是一个操作系统的名称,也是致力于创建此自由操作系统的合作组织的名称。

    操作系统是使计算机运行的基本程序和工具的集合,其最主要的部分称为内核。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。

    Debian 系统目前采用 Linux 内核或者 FreeBSD 内核,支持其他内核的工作(主要是Hurd)也在进行中。Debian操作系统中的大部分基本工具来自于 GNU 工程;因此它们被命名为 GNU/Linux、GNU/kFreeBSD 和 GNU/Hurd。这些工具同样都是自由的。

    Debian 拥有超过 59000 个软件包,涵盖从文档编辑到电子商务、游戏娱乐和软件开发等各个方面,而且这些软件包全都是自由软件。Debian 具有卓越的稳定性、安全性、终多的架构和设备支持、公开的缺陷跟踪系统、平滑的升级过程、广泛使用的软硬件开发工具、LTS版本和云镜像支持等优点,对用户、开发者或者企业环境,它都是很不错的一个选择。

    官方地址:https://www.debian.org/

    我们选择下面的下载方式:

    通过 HTTP/FTP 下载 Debian CD/DVD 映像

    选择的镜像站为:

    中国大陆: 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 管理器,进行当前主机下的虚拟机管理。

    点击界面右侧的新建按钮,或菜单项【控制 - 新建】,打开新建虚拟电脑对话框,按界面提示依次设定虚拟电脑相关参数。示例参数设定如下:

    • 名称:debian_11
    • 文件夹:E:\V_Machines\VirtualBox
    • 类型:Linux
    • 版本:Debian(64-bit)
    • 内存:1024M
    • 虚拟硬盘:现在创建
    • 虚拟硬盘文件类型:VDI
    • 存储在物理硬盘上:动态分配
    • 文件位置:E:\V_Machines\VirtualBox\debian_11\debian_11.vdi
    • 文件大小:20GB

    新建了虚拟电脑后,点击右侧工具栏的设置按钮,进行虚拟电脑配置。
    在设置的系统项目中,注意一下启动顺序。因为后面安装要从镜像文件启动安装,所以启动顺序应该是光驱先于硬盘。
    在这里插入图片描述
    在设置的存储项目中,点击界面最右侧的蓝色光盘,选择后文将介绍下载的 debian11 镜像文件。
    在这里插入图片描述
    在设置的网络项目中,示例选择网络连接方式为桥接网卡
    在这里插入图片描述

    三、安装 Debian11

    按上文设置好新建的虚拟机后,就可以启动它开始 debian 的安装了。
    点击 VirtualBox 管理器右侧的启动按钮,启动虚拟机。正常的话,过一会后会显示如下界面

    在这里插入图片描述
    选择 Graphical install (图形化界面安装),回车,继续安装。

    在安装过程中,点击鼠标进入虚拟机窗口后,如果移动鼠标超出虚拟机窗口后不能脱离虚拟机控制,可按电脑键盘右侧的 Ctrl 按键,由主机系统接管鼠标。

    继续 Debian 的安装, 后续过程和选择的选项或说明简单罗列如下:

    • select a language (安装过程使用的语言,及已安装系统的默认语言):中文(简体)
    • 区域(系统时区、区域等):中国
    • 键盘:汉语
    • 配置网络主机名:debian11
    • 域名:不填,留空
    • 设置系统管理员 root 用户密码:自定
    • 设置普通用户账号和密码:自定
    • 磁盘分区 - 分区方法:使用整个磁盘
    • 磁盘分区 - 选择磁盘:SCSI3(0,0,0) - sda
    • 磁盘分区 - 方案:将所有文件放在一个分区中
    • 磁盘分区 - 将改动写入磁盘:是。此时可以断开网络连接了,否则后面的安装非常慢
    • 安装基本系统:这步要花点时间,耐心等一小会
    • 配置软件包管理器 - 扫描额外的安装介质:否
    • 配置软件包管理器 - 使用网络镜像:否。
    • 正在设定 popularity-contest : 否
    • 软件选择:只选择一个 ssh server , 或全不选
    • 安装 GRUB 启动引导器: 是
    • 安装 GRUB 启动引导器:/dev/sda

    安装结束后,虚拟机自动重启,进入 debian ,等待用户登录。


    四、Debian11系统环境配置

    为方便后面的使用,下面进行一些系统的配置和几个工具的安装。

    继续之前,用 root 登录进虚拟机,修改 /etc/default/local 文件内容 :

    nano /etc/default/local
    
    • 1

    打开后,注释所有行

    #  File generated by update-locale
    # LANG="zh_CN.UTF-8"
    # LANGUAGE="zh_CN:zh"
    
    • 1
    • 2
    • 3

    修改好后,分别按 Ctrl-X 组合键、y 和回车键,保存并退出 nano。使用 date 命令,查看当前时间,能看到年月日中夹杂着菱形乱码。 重启系统:

    date
    
    reboot
    
    • 1
    • 2
    • 3

    重启后,再次使用 date 命令显示当前时间,可看到输出结果为正常的英文时间表达。

    配置光盘软件镜像源

    (尽管下载的 是DVD 镜像,但需要的软件还是不全,所以建议直接使用下面一节介绍的镜像源。此节只就为需要光盘安装的时被查)
    先在虚拟机的设备分配光驱中指定 debian11 的镜像文件
    在这里插入图片描述
    登录debian后,查看光驱设备名

    cat  /proc/sys/dev/cdrom/info
    
    • 1

    系统显示光驱信息:
    在这里插入图片描述可知光驱设备名称为 sr0

    手动挂载光盘到 /media/cdrom 目录

    mount /dev/sr0 /media/cdrom
    
    • 1

    查看 /media/cdrom , 能看到镜像光盘的内容。

    修改指定挂载点为软件源

    nano /etc/apt/sources.list
    
    • 1

    添加刚挂载的光盘(ISO)挂载点为软件源。

    deb [trusted=yes] file:/media/cdrom/ bullseye contrib main
    
    • 1

    其中 /media/cdrom 为上一步挂载点,路径后面的 bullseye contrib main 可参照使用 apt-cdrom add 命令自动生成的信息填写,[trusted=yes] 告诉 APT 该源是可信的。详细说明参考官方文档 SOURCES.LIST(5).

    配置国内镜像软件源

    以阿里云镜像站配置(官方说明)为例:
    编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)

    nano /etc/apt/sources.list
    
    • 1

    替换内容为

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    更新软件源列表

    apt update
    
    • 1

    也可以使用清华大学的开源镜像站,具体详见 Debian 镜像使用帮助(清华大学)

    控制台鼠标支持 / 安装虚拟机增强功能

    延续上一小节的方法,使用光盘镜像源,挂载镜像文件,然后安装虚拟机增强功能需要的前置软件 bzip2

    挂载光驱
    mount /dev/sr0 /media/cdrom
    
    apt update
    apt install bzip2
    
    安装成功后,卸载光驱
    umount  /media/cdrom
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    打开i虚拟机的设备菜单,选择分配光驱子菜单下的镜像文件 VBoxGuestAdditions.iso

    mount /dev/sr0 /media/cdrom
    
    sh /media/cdrom/VBoxLinuxAdditions.run
    
    重启系统 
    reboot -h now
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    SSH 接入

    如果上面安装系统的时候,已经选择安装了 ssh server , 可跳过本节前半部分的安装内容。

    apt update
    
    • 1

    安装 OpenSSH SSH server

    apt install openssh-server
    
    systemctl enable ssh 
    
    systemctl start ssh 
    
    systemctl status ssh 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    默认情况下,您将无法以 root 身份访问 OpenSSH SSH 服务器。 如果您需要以 root 用户身份登录 SSH 服务器,则必须从 sshd_config 文件中启用它。

    nano /etc/ssh/sshd_config
    
    • 1

    将 #PermitRootLogin prohibit-password修改为 PermitRootLogin yes

    #PermitRootLogin prohibit-password
    PermitRootLogin yes
    
    • 1
    • 2

    修改好后,分别按 Ctrl-X 组合键、y 和回车键,保存并退出 nano

    重启 ssh 服务

    systemctl restart ssh
    
    • 1

    我们通过 ssh 客户端软件,如 XShell,就能连接到虚拟机的 ssh 服务。

    国际化和本地化

    用虚拟机登录 debian 控制台,输入 date 命令查看当前时间,会看到有菱形乱码。这是由于安装过程中安装过程语言选择了简体中文,它同时也是安装后系统的默认语言。但由于系统内核没有默认安装中文字库,所以在终端窗口以默认中文语言显示提示信息时,中文字符就显示成了菱形乱码。

    下面我们先安装中文字体包,再作一些相关解释。

    apt install xfonts-intl-chinese
    
    • 1

    更多的字体软件包信息,可访问
    https://packages.debian.org/bullseye/fonts/

    如果安装失败,则需要修改 apt 源

    nano  /etc/apt/sources.list
    
    • 1

    注释光盘源,替换默认源为国内的源

    # 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    应用软件的多语言化或本地语言的支持,通过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=
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    如果安装时语言选择中文,区域选择香港,locale 命令的返回结果除了 LC_ALL,其他语言环境变量的值都会是 zh_HK.UTF-8

    我们可通过重新配置 Debian 语言环境包来调整系统的语言环境,这由命令 dpkg-reconfigure 实现:

    dpkg-reconfigure locales
    
    • 1

    命令提示:区域设置(locale)是一种在多种语言之间切换的框架,用户可以通过它来设定自己的语言、国家、字符集、字符串排序方式等。请选择需要生成的区域设置。通常应当选择 UTF-8 字符集的区域设置,特别是对于新安装的系统。其他的字符集一般用于兼容旧系统和旧软件。

    在区域设置列表中,课通过上下箭头选择区域,通过空格键切换选中状态。我们选择 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8 两项。 确定,继续选择一项缺省的区域设置。此时选择 en_US.UTF-8 。确定,保存执行。这会更改 /etc/default/locale 和 /etc/locale.gen 文件的内容。重新登录系统,再执行 date 和 locale 命令,将看到默认语言成了英文。

    nano /etc/default/locale
    
    • 1

    注释掉下面两行

    LANG=”zh_CN.UTF-8″
    LANGUAGE=”zh_CN:zh”
    
    • 1
    • 2
    export LANG=zh_CN-UTF-8
    export LANG=en_US-UTF-8
    
    • 1
    • 2
    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    切换设置 LANG环境变量,调用 date 命令,可分别看到汉语和英文显示的当前日期。

    配置网卡

    默认情况下,系统网络接口会请求 dhcp 服务动态分配 ip 地址,这样每次启动后,获取的 ip 地址可能是动态变化的,这对需要特定 ip 的应用(比如 ssh 连接)造成麻烦。

    检查网络接口

    ip -c link
    
    • 1

    输出结果如下:
    在这里插入图片描述命令 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
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    由上可见,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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    重启和查看网络服务, 查看网络接口新分配的 ip 地址

    systemctl restart networking
    systemctl status networking
    ip -c addr show enp0s3
    
    • 1
    • 2
    • 3

    结语

    安装相对简单,初始配置还是有点麻烦。万事开头难,咬咬牙,也就过来了。

  • 相关阅读:
    ArcGIS pro 支持 发布三维服务
    【集训DAY N】词典【暴力】【字典树】
    Qt 自定义标题栏
    THREE.JS实现看房自由(VR看房)
    UIScrollView(UICollectionView)禁止横向和竖向同时滑动
    千峰商城-springboot项目搭建-79-保存订单接口实现
    【C++】C++学习(一)
    【详细学习SpringBoot核心源码之SpringApplication构造器&Run方法源码详细流程-4】
    JavaScript基础知识-JS数据类型
    Eavesdropping(窃听机制)在机器学习中的用法
  • 原文地址:https://blog.csdn.net/ForestK/article/details/125198556