Ubuntu 20.04 LTS (Focal Fossa) 安装笔记

Posted by sysin on 2020-05-15
Estimated Reading Time 9 Minutes
Words 1.9k In Total
Viewed Times

作者:gc(at)sysin.org,主页:www.sysin.org

新特性

Updated Packages

Linux Kernel 5.4

Toolchain Upgrades 🛠️

Ubuntu 20.04 LTS comes with refreshed state-of-the-art toolchain including new upstream releases of glibc 2.31, ☕ OpenJDK 11, rustc 1.41, GCC 9.3, 🐍 Python 3.8.2, 💎 ruby 2.7.0, php 7.4, 🐪 perl 5.30, golang 1.13.

Ubuntu Desktop

Network configuration

With this Ubuntu release, netplan.io has grown multiple new features, some of which are:

  • Basic support for configuring SR-IOV network devices. Starting with netplan.io 0.99, users can declare Virtual Functions for every SR-IOV Physical Function, configure those as any other networking device and set hardware VLAN VF filtering on them.
  • Support for GSM modems via the NetworkManager backend via the modems section.
  • Adding WiFi flags for bssid/band/channel settings.
  • Adding ability to set ipv6-address-generation for the NetworkManager backend and emit-lldp for networkd.

Storage/File Systems

ZFS 0.8.3

Other base system changes since 18.04 LTS

  • Python3 by default(Python 3.8. Python 2.7 已经移除)

  • Snap Store replaces ubuntu-software

Ubuntu Server

  • Installer

    The live server installer is now the preferred media to install Ubuntu Server on all architectures.

  • QEMU

    QEMU was updated to 4.2 release.

  • libvirt

    libvirt was updated to version 6.0.

  • dpdk

    Ubuntu 20.04 LTS includes the latest stable release 19.11.1 of the latest LTS series 19.11.x. The very latest (non-stable) version being 20.02 was not chosen for downstream projects of DPDK (like Open vSwitch) not being compatible yet.

  • Open vSwitch

    Open vSwitch has been updated to 2.13.

  • Chrony

    Chrony been updated to version 3.5.

  • cloud-init

    Cloud-init was updated to version 20.1-10.

  • PHP 7.4

  • Ruby 2.7

  • Ruby on Rails 5.2.3

  • Ubuntu HA/Clustering

    Kronosnet
    Corosync 3.0
    Pacemaker 2.0
    Resource Agents
    Fence Agents
    keepalived

  • isc-kea 1.6 stable track(dhcp server)

  • Bind 9.16

  • OpenSSH updates with U2F Support

  • HAProxy 2.0

  • Apache, TLSv1.3, client cert auth

  • Samba 4.11

  • PostgreSQL 12

  • nginx

    Starting in Focal Fossa, nginx-core no longer ships with the legacy geoip module enabled by default. If you are using the legacy geoip module in nginx, you may run into upgrade issues if you do not deactivate the geoip module in your configuration. This was done as part of the deprecation of GeoIP legacy support.

  • Squid 4.x

  • s390x

  • OpenStack Ussuri

  • Ceph was updated to the 15.2.1 release

完整更新内容请查阅发行说明:

1. 安装摘要

18.04:安装界面变化比较大,参看截图,默认 SSH Server 已经安装(测试 18.04.3 修改为需要手动勾选),没有时区选择界面

20.04:安装界面少了步骤的数字提示,参看截图,SSH Server 需要勾选安装,没有时区选择界面

注意:分区如果选择 LVM,默认 / 目录只使用了4G,需要编辑使用全部容量

2. 格式化网卡名称

1
2
3
4
5
6
7
8
9
10
类似 CentOS 7,及 Ubuntu 16.04 开始,安装好后网卡名称变成 ens160 了
# 编辑 grub 配置文件
sudo vi /etc/default/grub
修改 GRUB_CMDLINE_LINUX=""为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

# 直接使用sed编辑
sudo sed -i "/^GRUB_CMDLINE_LINUX=""/c GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"" /etc/default/grub
# 更新 grub 配置文件
sudo update-grub
# 然后下一节编辑配置文件并重启生效

3. 网络配置

查看 IP 地址信息

1
2
3
ip address
# 简写 ip a
# ifconfig也支持

通过 netplan 管理网络

18.04:
cat /etc/network/interfaces
ifupdown has been replaced by netplan
默认使用netplan管理网络

18.04默认配置文件:/etc/netplan/50-cloud-init.yaml

20.04:
cat /etc/network/interfaces
cat: /etc/network/interfaces: No such file or directory

20.04默认配置文件:/etc/netplan/00-installer-config.yaml

配置静态IP地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo vim /etc/netplan/00-installer-config.yaml
# 格式如下:
network:
version: 2
ethernets:
eth0: #ens160修改为 eth0
addresses:
- 10.19.190.5/24
gateway4: 10.19.190.1
nameservers:
addresses:
- 10.19.190.11
- 10.19.190.12
search:
- sysin.org
1
2
3
4
5
# 运行以下命令使配置生效
sudo netplan apply

# 重启系统后彻底生效
sudo reboot

配置为DHCP

1
2
3
4
5
6
7
8
echo '
network:
version: 2
ethernets:
eth0:
dhcp4: yes
dhcp6: yes
' > /etc/netplan/00-installer-config.yaml

恢复传统的网络配置方式

1
2
3
# 可以恢复原有配置方式
sudo apt install net-tools #ifconfig、netstat、route等命令集
sudo apt install ifupdown #模板未执行该命令

补充:yaml 基础

1
2
3
4
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

缩进建议使用2个空格,使用短横线“-”表示列表时,”- “后面的条目需要对齐,如果使用超过2个空格缩进,格式将有误。

配置静态路由示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
network:
version: 2
ethernets:
eth0:
addresses:
- 10.19.190.5/24
#gateway4: 10.19.190.254
nameservers:
addresses:
- 10.19.190.11
- 10.19.190.12
search:
- sysin.org
routes:
- to: 0.0.0.0/0
via: 10.19.190.254
metric: 100
- to: 10.19.177.0/24
via: 10.19.190.1
metric: 100

4. 修改主机名

设置主机名

1
2
3
vim /etc/hostname
# 修改为主机名 ubuntu01
ubuntu01

添加domain name

1
2
3
4
5
vi /etc/hosts
# 添加一行
127.0.0.1 ubuntu01.sysin.org ubuntu01
# 注意这里的格式,IP 后面先写 FQDN 再写主机名,与 CentOS 相同
# 先写主机名后写 FQDN 不影响解析,但是'hostname -f'命令无法只能显示主机名

查看FQDN

1
2
3
hostname -f
# 正确显示如下
ubuntu01.sysin.org

5. 设置时区

1
sudo timedatectl set-timezone Asia/Shanghai

6. 修改国内镜像源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 模板使用aliyun

# 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为阿里云镜像源
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.aliyun.com/' /etc/apt/sources.list
# 提示:-i 写入文件,s 替换命令

选择时区后镜像地址为cn.archive.ubuntu.com,注意修改替换命令

# 根据实际网络情况选择镜像,可以Ping镜像地址查看延迟
# 网易163
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.163.com/' /etc/apt/sources.list
# 中科大
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.ustc.edu.cn/' /etc/apt/sources.list
# 清华
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list

更新

1
2
3
4
5
sudo apt update #更新源
sudo apt upgrade #更新已安装的包
sudo apt dist-upgrade #升级系统
sudo apt clean && sudo apt autoclean #清理下载文件的存档
# apt 是新版命令,替代 apt-get,apt-get 将来会淘汰

7. 安装 SNMP(模板未配置)

1
sudo apt install snmpd snmp

8. 配置 NTP

安装

1
2
3
4
5
6
7
8
sudo apt install chrony

sudo systemctl enable chrony
sudo systemctl start chrony
sudo systemctl status chrony

# 查看配置文件,暂使用默认配置
cat /etc/chrony/chrony.conf

chrony 自带一个交互式工具 chronyc,在配置文件中指定了时间服务器之后,如果想查看同步状态,可以进入这个交互式工具的交互界面。

1
2
3
4
5
chronyc 有很多的子命令,可以输入 help 来查看
chronyc> help
选项:
sources [-v] 显示关于当前来源的信息
sourcestats [-v] 显示时间同步状态(如时间偏移了多少之类)

9. 虚机安装 VMware Tools

1
2
3
# Ubuntu 16.04 在 ESXi 中安装系统时已经自动安装了 vm-tools(18.0420.04相同)
# 20.04 自带 vm-tools 版本为 11.0.5,与 ESXi 7.0.0 匹配
sudo apt install open-vm-tools

10. 安装必备工具

1
2
3
4
5
6
7
8
9
10
11
sudo apt install zip unzip
sudo apt install lrzsz
sudo apt install htop #20.04已默认安装(18.04已默认安装)
sudo apt install lnav
sudo apt install fd-find #fd命令,20.04已经收录
sudo apt install ripgrep #rg命令,20.04已经收录
sudo apt install tree
sudo apt install build-essential #Following command will install essential commands like gcc, make etc.
sudo apt install net-tools #ifconfig、netstat、route等命令集
sudo apt install ntp ntpdate ntpstat #可选,模板未安装
# nc lsof pstree 系统自带

11. 开启 root 账号登录

Ubuntu 默认禁用 root 用户登录,安装时候创建特定用户作为管理员帐号,启用 root 用户步骤如下:

  • 修改 root 密码
1
sudo passwd root
  • 修改配置文件
1
2
3
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

sudo vi /etc/ssh/sshd_config

找到下面相关配置:

1
2
3
4
5
6
7
8
9
10
11
12
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

修改如下

1
2
3
4
5
增加一句
PermitRootLogin yes

快速配置:
sudo sed -i "/^#PermitRootLogin/c "PermitRootLogin" "yes"" /etc/ssh/sshd_config

补充

1
2
PermitRootLogin prohibit-password  #允许root登录,但禁止适用密码认证
可以配合使用Pubkey认证,修改PubkeyAuthentication yes
  • 重启服务生效
1
sudo systemctl restart ssh



如果文章中使用的内容和图片侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有用,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!


支付宝打赏 微信打赏

赞赏一下