Ubuntu22.04安装手册
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控制器,取消与虚拟机共享蓝牙设备前面的勾即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具