使用 Netboot 引导镜像在服务器上安装全新 Ubuntu

in 技术 with 0 comment

很多云厂商出厂的系统都夹带了一些东西,作为系统洁癖患者,我决定亲自动手重新安装服务器的系统(虽然很大一部分原因是因为网上找的 dd 脚本现在都无法正常安装 Ubuntu 了)。需要注意的是,本文的方法和 dd 不同,必须取得服务器的 VNC 权限,否则无法继续安装。

为避免出现各种奇怪的问题,建议重置系统为本文实验环境,即 Ubuntu 16.04/18.04 LTS(或者 Debian 也是可以的)。

获取网卡信息

使用 ip route 命令列出当前网卡信息,记下这里的 IP 和网关,防止安装的时候无法自动配置的时候需要手动配置:

如,ECS:

$ ip route
default via 172.16.xxx.xxx dev eth0
172.16.xxx.x/20 dev eth0  proto kernel   scope link src 172.16.xxx.xx

如,轻量应用服务器:

$ ip route
default via 172.17.xx.xxx dev eth0 proto dhcp src 172.17.xx.xxx metric 100
172.17.0.0/18 dev eth0 proto kernel scope link src 172.17.xx.xxx
172.17.xx.xxx dev eth0 proto dhcp scope link src 172.17.xx.xxx metric 100

下载系统安装引导文件

新建目录 /boot/netboot,并下载两个 netboot 文件:

mkdir /boot/netboot && cd /boot/netboot
wget http://mirrors.aliyun.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux
wget http://mirrors.aliyun.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz

更新 grub

修改 /etc/default/grub 如下:

cat > /etc/default/grub << EOF
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=20
GRUB_DISTRIBUTOR=Ubuntu
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 console=ttyS0,115200 console=tty0 panic=5 crashkernel=auto"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
EOF

然后执行更新命令,生成新的 /boot/grub/grub.cfg

update-grub

最后加入 netboot 的引导项:

cat >> /boot/grub/grub.cfg << EOF
menuentry 'Install Ubuntu 18.04' {
    insmod part_msdos
    insmod part_gpt
    insmod ext2
    set root='(hd0,msdos1)'
    linux /boot/netboot/linux
    initrd /boot/netboot/initrd.gz
}
EOF

进入安装

打开 VNC 页面,在确保能看到界面后,在 ssh 上运行 reboot 执行重启,当 VNC 界面显示启动项选择时,选择 Install Ubuntu 18.04 (也就是刚刚设置的 grub 启动项) 回车进入。

选择语言,通常直接选择 English

然后选择国家和地区,因为这会关系到后面的时区设置,所以我们选择 other -> Asia -> China

语言编码直接选择 English 即可

出现 Detect keyboard layout (设置键盘布局)界面,保持默认回车几次即可

接下来会安装程序尝试获取 DHCP

有可能会出现下面的无法自动配置 IP 的错误,我们手工配置一下即可,填入之前 ip route 看到的 IP、网关地址即可如果,没有则忽略此步骤

填写主机名,这个我直接就保持 ubuntu 不变了

填写域名,通常不需要,直接回车

选择镜像地址,尽量选择服务器所在区域,不然后面你会为网速气得直跺脚的,当然也可以选择使用镜像,国内推荐使用阿里云镜像源,因为 cn.archive.ubuntu.com 实在是太慢了:

服务商镜像
阿里云mirrors.aliyun.com
阿里云内网mirrors.cloud.aliyuncs.com
腾讯云mirrors.cloud.tencent.com
腾讯云内网mirrors.tencentyun.com

接下来就看网速了

设置用户名

设置密码

接下来会尝试设置时区以校准时间,看到 Asia/Shanghai 确认即可

询问硬盘分区方案,没有特殊需求就选择整块硬盘吧,这一步千万别选错

看清楚后确认分区即可

接下来就是漫长的安装了

安装完毕后会询问是否自动升级,这里选 No automatic updates

询问需要预装哪些软件,只选择 OpenSSH server

询问是否继续安装使用 grub,选择 Yes,万一我等下想安装 Ubuntu 20.04 LTS 了呢(滑稽

确认硬件时间,选择 Yes

完成安装,选 Continue 继续

Responses