UbuntuServer-18.04 U 盘安装教程

Ubuntu Server 18.04 系统代号为 bionic,可以通过 'lsb_release -c' 命令查看,这是一个长期支持版本。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

目录:

1. 下载
2. 创建 U 盘安装盘
3. 安装 Ubuntu Server
3.1.  在第一个安装界面 "Language" 中选择默认的 English 选项进行安装
3.2.  在安装菜单界面选择 "Install Ubuntu Server"
3.3.  在 "Welcome" 语言选择界面也同样选择 English
3.4.  在 "Keyboard configuration" 配置键盘布局
3.5.  在 "Network connections" 配置网络连接
3.6.  在 "Configure proxy" 配置网络代理
3.7.  在 "Configure Ubuntu archive mirror" 更换为国内镜像源
3.8.  在 "Filesystem setup" 界面选择默认的全盘自动分区方案
3.9.  在 "Profile setup" 设置登陆账号和主机名
3.10. 在 "SSH Setup" 选择安装 SSH
3.11. 确认并等待安装完成
3.12. 查看磁盘分区信息
3.13. 安装后系统默认编码是 en_US.UTF-8
3.14. 更改系统默认时区为国内时区
3.15. 设置固定 IP
3.16. 系统更新

1. 下载

当前(2020-03-16)的最新 LTS 版为:ubuntu-18.04.4-live-server-amd64.iso

2. 创建 U 盘安装盘

官方文档:https://help.ubuntu.com/community/Installation/FromUSBStick

官方指引:

  • Windows 下使用 Rufus
  • MacOS 下使用 UNetbootin for Mac OS X

    打开 UNetBootin 前先自行将 U 盘用主引导记录方式格式化为 FAT32 格式,否则 UNetBootin 检测不到 U 盘

  • Ubuntu 桌面系统使用自带的 Ubuntu Startup Disk Creator
  • 其它 Linux 系统使用 UNetbootin 或者 mkusb

以下为 MacOS 下使用 UNetBootin 的 U 盘制作截图:

  1. 点选 "光盘镜像" 然后选择下载好的 Ubuntu ISO 文件,驱动器选择对应的 U 盘:
    unetbootin-mac-01.png
  2. 点击确定开始制作:
    unetbootin-mac-02.png
  3. 制作完成,点击退出,就可使用此 U 盘启动 Ubuntu Server 的安装:
    unetbootin-mac-03.png

3. 安装 Ubuntu Server

以下安装步骤既适用于 U 盘启动盘的安装,也适合于使用光盘启动的安装。

3.1. 在第一个安装界面 "Language" 中选择默认的 English 选项进行安装

10-select-lang.png

由于安装的是 Server 版,是没有 GUI 的,一般都是通过远程 ssh 连接进服务器维护,故推荐直接安装 English,不推荐使用其它语言。

3.2. 在安装菜单界面选择 "Install Ubuntu Server"

11-install-ununtu-server.png

3.3. 在 "Welcome" 语言选择界面也同样选择 English

13-select-lang.png

3.4. 在 "Keyboard configuration" 配置键盘布局

使用默认配置即可:

14-keyboard-layout.png

3.5. 在 "Network connections" 配置网络连接

默认自动 IP 配置,也可以手动指定为固定 IP。推荐安装完毕后再重新设置固定 IP,因此这里使用默认配置:

15-network-connections.png

3.6. 在 "Configure proxy" 配置网络代理

这里使用默认的无代理配置:

16-configure-proxy.png

3.7. 在 "Configure Ubuntu archive mirror" 更换为国内镜像源

在 "Configure Ubuntu archive mirror" 安装界面记得更换为国内镜像源地址,否则默认自动连接到 Ubuntu 的官方源 https://cn.archive.ubuntu.com/ubuntu,在后续的 "Installing system" 安装界面因为会联网下载很多包,速度将非常慢。

国内镜像源推荐使用阿里的:http://mirrors.aliyun.com/ubuntu

17-configure-ubuntu-archive-mirror_aliyun.png

系统安装后可以看到 /etc/apt/sources.list 文件已更改为使用阿里源,Ubuntu 原始的源配置会自动备份在文件 /etc/apt/sources.list.curtin.old

3.8. 在 "Filesystem setup" 界面选择默认的全盘自动分区方案

这里可以对硬盘进行分区,可自动分区也可自行手动分区。这里选择全盘自动分区方案,即在 "Filesystem setup" 界面选择第一个选项 "Use An Entire Disk",确认后会自动分区及格式化整个磁盘为 ext4 格式:

18-filesystem-setup-1.png
18-filesystem-setup-2-select-disk.png
18-filesystem-setup-3-view-partition.png
18-filesystem-setup-4-confirm.png

3.9. 在 "Profile setup" 设置登陆账号和主机名

相关信息按需设置,如:

  • Your name 设置为 gftaxi
  • server'name 设置为 ubuntu-test-server
  • username 设置为 gftaxi
  • password 设置为 gftaxi20200101
19-profile-setup.png

3.10. 在 "SSH Setup" 选择安装 SSH

在 "SSH Setup" 界面选择 "Install OpenSSH server",默认是没有勾选的:

20-ssh-setup.png

安装 "Install OpenSSH server" 后才可以在安装完毕后通过 ssh 客户端远程连接。

3.11. 确认并等待安装完成

"SSH Setup" 界面确认后,就耐心等待过程完成:

21-installing-system-1.png
22-Installation-complete.png

安装完毕后需手动点击上面的 "Reboot" 重启,重启后就可以看到成功的登陆界面了:

24-login.png

首次登陆后的终端界面如下:

25-login-success.png

3.12. 查看磁盘分区信息

此次是使用 32GB 的虚拟磁盘执行的虚拟机安装。分别使用 parted、fdisk、lsblk 查询分区信息如下:

$ sudo parted -l
Model: ATA Ubuntu18.04-0 SS (scsi)
Disk /dev/sda: 34.4GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  34.4GB  34.4GB  ext4


$ sudo fdisk -l
Disk /dev/loop0: 89.1 MiB, 93417472 bytes, 182456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 32 GiB, 34359738368 bytes, 67108864 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 55DD2D05-4575-4B21-90DE-FC9CAA535098

Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 67106815 67102720  32G Linux filesystem


$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0 89.1M  1 loop /snap/core/8268
sda      8:0    0   32G  0 disk 
├─sda1   8:1    0    1M  0 part 
└─sda2   8:2    0   32G  0 part /
sr0     11:0    1 1024M  0 rom  

由此可见 Ubuntu 默认全盘分区结果是:

  • GPT 分区
  • 没有独立的 swap 分区(经检测是在根分区下创建一个大小为内存两倍的 swap.img 的文件,可以通过 swapon -s 命令查看交换分区的使用情况)
    $ swapon -s
    Filename   Type  Size     Used  Priority
    /swap.img  file  2006012  0     -2
    

作为参考,执行 'df -h' 结果为:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            460M     0  460M   0% /dev
tmpfs            98M  1.1M   97M   2% /run
/dev/sda2        32G  4.3G   26G  15% /
tmpfs           490M     0  490M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           490M     0  490M   0% /sys/fs/cgroup
/dev/loop0       90M   90M     0 100% /snap/core/8268
tmpfs            98M     0   98M   0% /run/user/1000

3.13. 安装后系统默认编码是 en_US.UTF-8

# 查看系统当前编码
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ cat /etc/default/locale 
LANG=en_US.UTF-8

对于服务器而言,UTF-8 编码足尔,默认值已满足常规使用需求,无需修改。如果需要修改,直接编辑文件 /etc/default/locale 然后重启即可。

3.14. 更改系统默认时区为国内时区

安装后默认是 UTC 时区,要更改为国内时区:

# 查看当前时区信息
$ date
Sat Mar 21 05:02:37 UTC 2020
$ date -R
Sat, 21 Mar 2020 05:02:42 +0000
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Feb  3 18:23 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
$ ls -l /usr/share/zoneinfo/Asia/Shanghai
lrwxrwxrwx 1 root root 6 Sep 20  2019 /usr/share/zoneinfo/Asia/Shanghai -> ../PRC

# 修改为国内时区
$ sudo rm /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 查看修改后的时区结果
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Mar 21 13:05 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
$ date
Sat Mar 21 13:06:16 CST 2020
$ date -R
Sat, 21 Mar 2020 13:06:20 +0800

系统支持的时区信息在 /usr/share/zoneinfo/ 目录下,修改 /etc/localtime 软链接到相应的时区即可,上述命令就是查看和将系统 /etc/localtime 默认软链接到的 /usr/share/zoneinfo/Etc/UTC 更改为 /usr/share/zoneinfo/Asia/Shanghai,这样修改的是系统的全局默认时区。

如果特定用户想使用不同的时区,只要在此特定用户下创建一个环境变量 TZ,将其值设定为相应的时区值即可,如:export TZ='Asia/Shanghai'。不同时区的 TZ 值可以通过执行 tzselect 命令一步一步的指引你得到:

$ tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Asia
 5) Atlantic Ocean
 6) Australia
 7) Europe
 8) Indian Ocean
 9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 4
Please select a country whose clocks agree with yours.
 1) Afghanistan       18) Israel            35) Palestine
 2) Armenia       19) Japan         36) Philippines
 3) Azerbaijan        20) Jordan            37) Qatar
 4) Bahrain       21) Kazakhstan        38) Russia
 5) Bangladesh        22) Korea (North)     39) Saudi Arabia
 6) Bhutan        23) Korea (South)     40) Singapore
 7) Brunei        24) Kuwait            41) Sri Lanka
 8) Cambodia          25) Kyrgyzstan        42) Syria
 9) China         26) Laos          43) Taiwan
10) Cyprus        27) Lebanon           44) Tajikistan
11) East Timor        28) Macau         45) Thailand
12) Georgia       29) Malaysia          46) Turkmenistan
13) Hong Kong         30) Mongolia          47) United Arab Emirates
14) India         31) Myanmar (Burma)       48) Uzbekistan
15) Indonesia         32) Nepal         49) Vietnam
16) Iran          33) Oman          50) Yemen
17) Iraq          34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

    China
    Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Selected time is now:   Mon Mar 16 19:48:25 CST 2020.
Universal Time is now:  Mon Mar 16 11:48:25 UTC 2020.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
    TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

3.15. 设置固定 IP

Ubuntu 从 17.10 开始引入了新的工具 netplan 来设置网络,不再推荐使用以前的 /etc/network/interfaces 配置文件。netplan 的默认描述文件在 /etc/netplan/*.yaml 里。对于 Ubuntu 18.04 Server 这个文件的名称是 /etc/netplan/50-cloud-init.yaml

查看当前的网络配置:

$ ls -l /etc/network
total 12
drwxr-xr-x 2 root root 4096 Mar 16 16:34 if-pre-up.d
drwxr-xr-x 2 root root 4096 Mar 16 16:35 if-up.d
-rw-r--r-- 1 root root  190 Feb  4 02:22 interfaces

$ cat /etc/network/interfaces 
# ifupdown has been replaced by netplan(5) on this system.  See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
#    sudo apt install ifupdown

$ ls -l /etc/netplan
total 4
-rw-r--r-- 1 root root 391 Mar 16 16:40 50-cloud-init.yaml

$ cat /etc/netplan/50-cloud-init.yaml 
# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp0s5:
            dhcp4: true
    version: 2

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:1c:42:0b:cc:0c brd ff:ff:ff:ff:ff:ff
    inet 10.211.55.9/24 brd 10.211.55.255 scope global dynamic enp0s5
       valid_lft 1247sec preferred_lft 1247sec
    inet6 fdb2:2c26:f4e4:0:21c:42ff:fe0b:cc0c/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591718sec preferred_lft 604518sec
    inet6 fe80::21c:42ff:fe0b:cc0c/64 scope link 
       valid_lft forever preferred_lft forever

从上述文件 /etc/netplan/50-cloud-init.yaml 的内容可以看到,仅设置了 network.ethernets.enp0s5.dhcp4=true,即自动 IP 配置。如下修改 enp0s5 节点的值来设置固定 IP:

$ sudo vi /etc/netplan/50-cloud-init.yaml
network:
    version: 2
    ethernets:
        enp0s5:
            dhcp4: false
            dhcp6: false
            # 可同时设多个,对于 IP4 每个值为 "IP地址/掩码长度"
            addresses: [192.168.0.60/24, 'fe80:0:0:0:0:0:c0a8:64d3']
            # 网关
            gateway4: 192.168.0.1
            # 设置 DNS
            nameservers:
                addresses: [192.168.0.1]

# 完成修改后执行下面的命令使配置生效
$ sudo netplan apply

注意 yaml 文件的缩进务必使用空格而不是 tab 键。

支持的配置属性:

属性名 值类型 说明
enp0s5 string 指定需配置网络接口的名称
dhcp4 boolean 是否打开 IPv4 的 dhcp,值为 true 或 false
dhcp6 boolean 是否打开 IPv6 的 dhcp,值为 true 或 false
addresses array 设置静态 IP 地址,如 192.168.0.100
gateway4 string 设置默认网关的 IPv4 地址,如 192.168.0.1
nameservers {addresses, ...} 指定域名服务器的 IP 地址

netplan 官方配置例子可以参考 《Netplan configuration examples》。

3.16. 系统更新

更新软件列表:

$ sudo apt-get update

这个命令会访问源列表(/etc/apt/sources/list)里的每个网址,并读取软件列表,然后保存在本地电脑。软件包管理器里看到的软件列表,都是通过 update 命令更新的。

更新软件包:

$ sudo apt-get upgrade

这个命令会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就提示更新。

推荐阅读更多精彩内容

  • 安装教程 前期准备 安装介质 在安装之前我们先要准备一个安装介质,在这里只推荐U盘作为安装介质。 到https:/...
    Otis4631阅读 4,370评论 0 5
  • 1.描述计算机的组成及其功能 (一)计算机的组成 1.CPU 2.CPU风扇 3.BIOS 4.内存 5.硬盘 6...
    whamai阅读 569评论 0 1
  • 文/冷漠 坦然面对生活中的每一次困难。不抱怨生活,也从没恨过谁,放过别人,也放过自己,你善良的样子很可爱。 很多困...
    作家冷漠阅读 262评论 0 5
  • 6月6日。 我将一张张手写的明信片发给每一个同学,寄予我对他们无限的爱与祝福。大部分孩子表示好喜欢,很...
    矮纸晴窗阅读 128评论 0 1
  • 刻意练习Day9 【原文】: 原文:《贝多芬传》【法】罗曼•罗兰 什么胜利可和这场胜利相比?波拿巴的哪一场战争,奥...
    麦花静心天赋咨询师阅读 100评论 1 0