Ubuntu22.04安装手册

发布时间 2024-01-07 01:12:27作者: 宝马大盗

Ubuntu22.04安装手册

随着红帽控制的centos社区转型,ubuntu大火,本文以ubuntu最新的LTS版本22.04为基础,给出安装该操作系统和初步配置的步骤,让ubuntu开箱可用。
笔者之前使用并运维RHEL多年,对debian/ubuntu生态并不了解,但从安装和使用的体验看,RHEL/centos对比debian/ubuntu,只是yum对比apt有较大区别,其他诸如网络、存储、用户、文件系统、服务等方面基本类似。如果之前熟悉centos生态,上手ubuntu基本没有任何问题。

一、操作系统规划

1 基本信息

Ubuntu22.04服务器版,是2023年最新的ubuntu的LTS版本,支持amd86、arm,本次安装使用amd86版本。

内核已经升级到了5.15.0-91,gcc版本为11.4.0。

官方ISO下载地址:

https://www.ubuntu.org.cn/download/server

本次使用VMWare Workstation 16.1.0pro上安装,建议Windows桌面宿主资源至少为4逻辑核、4GB内存、50GB以上剩余磁盘空间,推荐8逻辑核、8GB内存、100GB以上剩余磁盘空间。

2 资源规划

这里使用4颗vCPU,8GB内存,40GB硬盘,资源不够可以成倍减少。

3 网络规划

给固定IP地址192.168.172.141/24,默认网关192.168.172.2,DNS任意,可以通达互联网

4 文件系统规划

/dev/sda 40GB

/dev/sda1 默认分配,GRUB

/dev/sda2 512MB, 挂载/boot

/dev/sda3 39.5GB, 做成一个vg,vg00

vg00-lvswap 2GB,交换分区

vg00-lvroot 20GB,/分区

vg00剩余约17.5GB,备用

二、ISO安装

ISO挂载为虚拟机的虚拟光盘,启动虚机,会自动引导到光盘启动,开始安装ubuntu24。

下面给出安装界面中,每个步骤的选择。

GRUB界面,选择Try or Install Ubuntu Server。

语言界面,选择English。

Installer Update界面,选择Continue without updating。这里是ubuntu会自动连接互联网,检测到有更高版本的安装镜像,提示是否装最新的。

Keyboard layout界面,Layout和Variant都选择English(US)。

Type of Install界面,建议选择Ubuntu Server,基础包会安装得比较全。如果磁盘空间有限,或者基于其他考虑,也可以选择minimized。

Network Connection界面,会显示网卡名字和DHCP出的IPv4地址,这里就先这样默认,后面装完会对网络做专门配置。

Configure Proxy界面,配置代理,这里直接过。

Archive mirror界面,配置APT的主源,这里会默认给出ubuntu在国内的官方镜像源,http://cn.archive.ubentu.com/ubuntu,建议用这个默认的即可,也可以换成阿里云的镜像源,http://mirrors.aliyun.com/ubuntu/。

Storage configuration界面,可以按照默认,基于40GB的/dev/sda硬盘,Use entire disk+LVM Group,然后直接下一步。

还是Storage configuration界面,为了能够按照前面的规划定制存储配置,这里给出Custom Storage Layout的配置方法。

(1)选中Custom Storage Layout,进入下一步。

(2)在free space中,选择Adding GPT partition,create一个512M size、xfs格式、mount点为/boot的物理分区,/boot分区必须有且必须是物理分区。后面其他分区就都走LVM管理了。

(3)在free space中,再次选择Adding GPT partition,size留空即剩余空间全占,格式为leave unformatted的物理分区,后面马上再该物理分区上创建LVM的卷组vg和逻辑卷lv。

(4)主界面刚才的free space已经变成了partition 3,这时选择下面的Create volume group(LVM),创建Name为vg00,Devices为partition 3的卷组。

(5)主界面出现vg00(new),下面重新出现free space,选择free space并选择Create Logical Volume,即在vg00卷组下创建逻辑卷LV。

(6)建立一个Name为lvswap,size为2G,format为swap的交换分区。

(7)和6一个界面,建立一个Name为lvroot,size为20G,format为xfs,mount点为/的逻辑卷,用来挂根分区。

(8)如果还想细分/usr /var /home /tmp /opt等,为它们创建独立的逻辑卷,这里可以按照7的方法继续依次创建。

(9)主界面FILE SYSTEM SUMMARY中,已经有了/boot、/、SWAP三个文件系统,必须的文件系统都已经通过手工方式创建。选择Done并Continue,结束Storage configuration。

Profile Setup界面,给定一个普通用户的用户名口令(name和username建议一致),给出主机名。

Upgrade to Ubuntu Pro界面,按照默认,无视之。

SSH Setup界面,选中Install OpenSSH server,继续。

Featured Server Snaps界面,直接无视,继续。

之后安装开始,耐心等待安装结束,结束后按照提示重启服务器,重启后可以使用上面的用户名口令登录。

至此,ISO做安装引导并安装基础ubuntu22版本的步骤结束。

三、版本验证

1 操作系统分发版本

cat /etc/issue
Ubuntu 22.04.3 LTS \n \l

2 版本代号

每一代ubuntu的操作系统,都有一个版本代号,这个代号通常和后面的APT软件源的获取路径是相关的,这里给出获取的命令

lsb_release -cs
jammy

3 内核版本

uname -a
Linux ubt2204t 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

4 架构

arch
x86_64

四、用户初步管理

1 启用root

ubuntu安装时,强制让用户创建了一个普通用户,但却没有让配置root用户。

ubuntu默认不建议用户直接使用root,这里可以通过设置root口令让root可用。

sudo passwd root
su - root

这时root可以在控制台登录,或su到root,但不能使用root通过sshd直接登录。

2 配置sshd

vim /etc/ssh/sshd_config
找到:
#PermitRootLogin prohibit-password
改为:
PermitRootLogin yes
重启sshd服务:
systemctl restart sshd

3 创建其他用户

可以酌情,通过groupadd、useradd、passwd创建其他用户。

五、网络配置

1 修改主机名

安装ubentu时已经指定了主机名,可以用以下命令随时修改并永久生效

sudo hostnamectl --static set-hostname MY_NEW_HOSTNAME

值得注意的是,除了使用hostnamectl修改,ubuntu的hosts表中还用127.0.1.1绑了初始的主机名,这里一并修改

vim /etc/hosts
将
127.0.1.1 ORI_HOSTNAME
改为
127.0.1.1 MY_NEW_HOSTNAME

注意不要修改127.0.0.1那一行。

2 配置静态IP地址

作为服务器使用的linux server,一定要绑死固定IP地址,而非使用DHCP。

ubuntu的22版本,对网络配置文件做了大幅度更改,配置使用yaml格式,且换成netplan管理网络

默认情况下,安装完的ubuntu,使用DHCP获取网络

sudo cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      dhcp4: true
  version: 2

将其修改为:

network:
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.172.141/24
      nameservers:
        addresses: [223.5.5.5, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.172.2
  version: 2

上面设置了:
节点IP为192.168.172.141,子网掩码为255.255.255.0即24,默认网关为192.168.172.2,主DNS为阿里云的223.5.5.5,备DNS为8.8.8.8。

修改时一定注意各级缩进。

使网络修改生效:

sudo netplan apply

3 验证互联网可达

ping www.baidu.com
curl https://www.baidu.com

curl命令如果暂时没有,则等待APT源配置完成后,再来验证。也可以使用sudo apt install curl先行安装

六、时钟配置

1 设置时区

默认安装完的ubuntu,使用的是通用时区UTC,和北京时间差8小时,除非是有全球化应用的需要,否则该默认配置一定要改。

这里需要改为本地时区CST模式,并设置为东八区时间(Asia/Shanghai, CST, +0800)

sudo timedatectl set-timezone Asia/Shanghai

修改后,可以通过下面的命令查看当前时区和时间格式

timedatectl status
               Local time: Sun 2023-12-17 11:25:08 CST
           Universal time: Sun 2023-12-17 03:25:08 UTC
                 RTC time: Sun 2023-12-17 03:25:08
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

2 设为24小时格式

ubuntu默认使用12小时格式,这里可以按照习惯,选择改为24小时模式。

echo "LC_TIME=en_DK.UTF-8" >> /etc/default/locale

注意这个修改,无法通过sudo实现,必须使用root用户进行修改。

修改后,通过date命令查看

date
Sun Dec 17 11:31:45 CST 2023

3 设置时钟同步

对于任意的集群环境,节点间的时间必须精确一致,因此时钟同步必须设置。

这里使用腾讯的时钟同步服务器。

sudo vim /etc/systemd/timesyncd.conf
将这5行放开,并配置为腾讯的时钟同步
改前:
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
改后:
NTP=ntp.tencent.com
FallbackNTP=ntp1.tencent.com,ntp2.tencent.com,ntp3.tencent.com
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

保存退出,重启时钟同步服务

systemctl restart systemd-timesyncd
systemctl status systemd-timesyncd

当systemd-timesyncd的状态里,显示了时钟同步的服务器,则表明时钟同步服务器调用成功

Status: "Initial synchronization to time server 106.55.184.199:123 (ntp.tencent.com)."

用timedatectl可以查看时钟同步状态

timedatectl
......
System clock synchronized: yes
              NTP service: active
......

这里的yes,表示时钟同步已经成功。

七、其他可选配置

1 关闭防火墙

ubuntu中的防火墙使用的是ufw,即uncomplicated fallwall,是一个较轻量化防火墙,默认开启。

除非有要求,否则在操作系统一级,一般会考虑关闭该防火墙。

systemctl stop ufw
systemctl disable ufw

ubuntu中没有CentOS/RHEL分发版本中的selinux,因此无需考虑关闭selinux。

2 关闭swap

今天的很多集群应用,不允许swap的存在,因此给出彻底关闭swap的方法

swapoff -a
sudo vim /etc/fstab
注释掉swap这一行,比如:
/dev/disk/by-id/dm-uuid-LVM-wzlrd5x8E5DgQtIU4F7bNcmegEzD3xNaQB9tfilF8D30w1mqbIt2nr76c8wHs3xy none swap sw 0 0
保存退出/etc/fstab

验证swap关闭

free -h
               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       819Mi       5.9Gi       2.0Mi       1.0Gi       6.7Gi
Swap:             0B          0B          0B

八、APT配置和使用

APT是ubuntu生态的软件管理工具,也是和centos生态最大的不同点。

1 主源

安装ubuntu时,已经指定了APT的主源,主源一般使用国内的APT源,不建议使用国际源。

主源放置在/etc/apt/sources.list这一配置文件中

cat /etc/apt/sources.list
可以看到,主源的配置已经生效,指向
http://cn.archive.ubuntu.com/ubuntu

主源可用后,首先更新apt,刷新源配置

sudo apt update

可以尝试安装nettools,验证apt可用

sudo apt install nettools
或
sudo apt-get install nettools

2 基础软件补齐

安装ubuntu时,采用了server模式安装,多数基础软件已经安装上了,这里做一些server模式没有安装的安装的补齐。

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common gnupg2 nettools

3 配置其他源

可以通过add-apt-repostory命令,添加其他源,其他源会放置在/etc/apt/sources.list.d目录中。

ubuntu不允许在主源中添加其他源。

这里以添加docker源、k8s源举例,给出配置其他源的命令。

添加国内阿里云的docker组件源

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

添加国内阿里云的k8s组件源

sudo curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

可以尝试安装docker组件和k8s组件,验证添加的源的正确性

sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo apt-get install kubelet kubeadm kubectl

还可以通过锁定方式,固定软件版本

sudo apt-mark hold kubelet kubeadm kubectl

这样在使用下面的apt命令进行更新或查看可更新的软件列表时,会跳过锁定的软件

4 软件更新

查看可更新软件

apt list --upgradable

该命令会查看所有源,和本地的软件版本做对比,如果源的版本高于本地,则列为可更新。

更新全部可更新软件(慎重),升级前会确认

sudo apt upgrade

更新某一软件(推荐)

sudo apt --only-upgrade install package1 package2

5 整个操作系统升级

操作系统一般不做直接升级,因此这步只给出作为参考。

sudo apt dist-upgrade

(正文结束)

附件:一些问题

1 hub_ext_port_status failed

启动22.04.3的操作系统时,如果遇到hub_ext_port_status failed (err = -110)这个问题,在workstation中选择usb控制器,取消与虚拟机共享蓝牙设备前面的勾即可。