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

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

Tags
Linux
Ubuntu
Published
Feb 15, 2020
很多云厂商出厂的系统都夹带了一些东西,作为系统洁癖患者,我决定亲自动手重新安装服务器的系统(虽然很大一部分原因是因为网上找的 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 启动项) 回车进入。
notion image
选择语言,通常直接选择 English
notion image
然后选择国家和地区,因为这会关系到后面的时区设置,所以我们选择 other -> Asia -> China
notion image
语言编码直接选择 English 即可
notion image
出现 Detect keyboard layout (设置键盘布局)界面,保持默认回车几次即可
notion image
接下来会安装程序尝试获取 DHCP
有可能会出现下面的无法自动配置 IP 的错误,我们手工配置一下即可,填入之前 ip route 看到的 IP、网关地址即可如果,没有则忽略此步骤
填写主机名,这个我直接就保持 ubuntu 不变了
notion image
填写域名,通常不需要,直接回车
选择镜像地址,尽量选择服务器所在区域,不然后面你会为网速气得直跺脚的,当然也可以选择使用镜像,国内推荐使用阿里云镜像源,因为 cn.archive.ubuntu.com 实在是太慢了:
notion image
接下来就看网速了
设置用户名
notion image
设置密码
接下来会尝试设置时区以校准时间,看到 Asia/Shanghai 确认即可
notion image
询问硬盘分区方案,没有特殊需求就选择整块硬盘吧,这一步千万别选错
notion image
看清楚后确认分区即可
notion image
接下来就是漫长的安装了
安装完毕后会询问是否自动升级,这里选 No automatic updates
notion image
询问需要预装哪些软件,只选择 OpenSSH server
notion image
询问是否继续安装使用 grub,选择 Yes,万一我等下想安装 Ubuntu 20.04 LTS 了呢(滑稽
notion image
确认硬件时间,选择 Yes
notion image
完成安装,选 Continue 继续
notion image
 

Loading Comments...