玩服务器有些年头了,经常有朋友问我:“我买了个服务器(或者旧电脑),想装个Ubuntu系统,到底怎么装?网上的教程好多都跳步骤,看得一头雾水。”说实话,Ubuntu Server的安装虽然不是天天干的事,但每次换机器、重装系统,总会碰到一些小坑。今天就把我最近在一台服务器上安装Ubuntu 18.04.2 LTS的完整过程,从头到尾捋一遍,把那些容易踩的坑和需要留意的细节全部写出来,尽量做到每一步都能看懂、能跟上。
这篇文章面向第一次给服务器装系统的小白,也适合好久没装过想复习一下的老手。Ubuntu 18.04.2 LTS虽然不是最新版,但它在很多生产环境和旧硬件上依然活跃,稳定性和兼容性都经过了大量验证。我会从下载镜像、制作启动盘开始,讲到BIOS设置、分区策略、系统初始化,最后再分享一些常见问题的排查思路。整个流程下来,你应该能独立完成一台服务器系统的安装和基础配置。
1. 安装前的准备工作:镜像下载与启动盘制作
1.1 先分清Server版和Desktop版,别下载错了
很多人第一次会栽在下载这一步:看到了Ubuntu官网,看到好看的花纹页面,点了个最大的按钮下载,结果发现装出来的系统和教程里长得不一样。这是因为Ubuntu官方提供两个大版本:Desktop(桌面版)和Server(服务器版)。
标题既然说“服务器安装”,那默认就是用Server版。Server版没有图形桌面,安装全程是文本界面(菜单 + 表单),日常操作全靠命令行,这样系统的资源几乎全部用于服务本身,非常稳定。Desktop版带着完整的图形界面和一堆桌面软件,适合个人电脑使用,如果你想拿一个服务器当普通电脑用,或者你完全不适应命令行,也可以装Desktop版,但咱们这篇主要讲Server版的安装流程。
下载的时候要注意版本号,Ubuntu官网的下载页面默认展示最新版本,比如现在已经到22.04、24.04了,你要装18.04.2,需要去“Other versions”(其他版本)页面里找。确认下载的是ubuntu-18.04.2-server-amd64.iso,其中amd64就表示64位系统,现在绝大多数x86服务器都选这个。
1.2 校验镜像完整性,这一步不能省
镜像文件比较大(Server版一般1GB左右),下载过程中可能因为网络原因损坏。如果损坏了,制作成启动盘后,安装到一半会报各种莫名其妙的错误,比如“无法安装grub”、“软件包解压失败”等等。
校验方法很简单,下载完成后,去Ubuntu官网的校验和页面找到SHA256值,然后在本地终端或命令行工具里计算下载文件的SHA256值,两个比对一下,一致就没问题。Windows下的PowerShell可以直接运行:
Get-FileHash .\ubuntu-18.04.2-server-amd64.iso -Algorithm SHA256比对无误再继续。这个步骤看着多花了一分钟,但能帮你省下后面安装失败后排查的一小时。
1.3 制作U盘启动盘:Rufus和软碟通实测对比
准备好一个至少4GB的U盘。做启动盘之前,U盘会被格式化,注意先备份里面的文件。市面上做启动盘的工具很多,Windows下我用过两个:Rufus和UltraISO(软碟通)。
Rufus是免费开源的,操作直观,特别适合做Ubuntu系统盘。插上U盘后,打开Rufus,设备选你的U盘,引导类型那里点“选择”按钮找到刚才下载的ISO文件,下面的分区类型先选“MBR”,目标系统“BIOS或UEFI”,文件系统保持默认就行,最后点“开始”。等进度条走完,启动盘就做好了。
UltraISO的思路是打开ISO文件,然后点菜单“启动”里的“写入硬盘映像”,选择U盘后写入。这个方法也能用,但碰到个别UEFI机器可能会引导失败,Rufus总体上更稳。如果机器比较老,非要用UltraISO,记住写入方式选“USB-HDD+”,兼容性最好。
2. 正式安装:从BIOS设置到分区策略
2.1 进入BIOS并把U盘设为第一启动项
把U盘插到服务器上(最好是后置USB接口,有些机箱前置面板供电不稳),开机。开机自检画面上一般会提示按什么键进入BIOS设置,常见的有DEL、F2、F10、F12。服务器品牌不同,按键也不同,Dell服务器一般是F2进入设置,F12选择一次性启动项,IBM/联想是F1,超微是DEL,但开机画面上都会写清楚。
进去之后,有两个地方要留意:第一是启动模式。新的机器默认UEFI,老机器是Legacy(传统BIOS)。如果做启动盘时Rufus选的MBR,那BIOS里的启动模式就设成Legacy;如果选了GPT,就设成UEFI。这个匹配不对就会导致U盘无法引导。第二是Secure Boot(安全启动),在UEFI模式下,有些机器的Secure Boot会拦截第三方启动盘,为了安装顺利,可以临时把它关掉,等系统装好再开也行。
设置好启动顺序,保存退出(一般按F10),机器重启后就会从U盘启动了。
2.2 安装器引导界面:回车之前看清楚
从U盘启动后,会看到一个紫色的引导界面,有几个选项:安装Ubuntu服务器版、检查磁盘是否有损坏、内存测试、从硬盘启动等等。默认光标停在“安装Ubuntu服务器版”上,直接回车。
这时候系统会加载内核,屏幕滚动一堆信息正常。紧接着进入语言选择界面,按上下键或者直接回车选“English”,服务器系统建议选英文,后面处理日志、查资料都方便,编码问题也少一些。接下来会让你选择键盘布局,默认的“English (US)”就够了。
之后的网络配置界面,是小白比较容易卡住的地方。它默认开启DHCP自动获取IP,如果你的网络环境有路由器,那直接回车继续就行。如果是机房服务器,需要静态IP,这一步就要手动填写:服务器的IP地址、子网掩码、网关、DNS。填错一个数字,后面系统装完了可能连不上网,排查特别麻烦。我的建议是:安装阶段先用DHCP自动获取,等系统装完,再用配置文件改成静态IP,这样万一填错了,还能在系统里改回来,不用推到重装。
2.3 分区策略:比自动分区多想一步
Ubuntu安装器到了分区环节,会问你是“使用整个磁盘并配置LVM”还是“手动分区”。第一次装建议选“使用整个磁盘并配置LVM”,但我要多说一句:自动分区的结果通常是根分区和home分区共享全部空间,对服务器来说,我更推荐手动分区,理由很实在——数据隔离和系统故障恢复。
举个最常见的场景:网站程序放在/home或者自定义的/data目录下,系统盘说坏就坏,自动分区的话,系统和数据在一起,修复成本高。手动分区时,我可以把数据单独放到一个独立分区,甚至可以放在额外挂载的硬盘上,这样就算系统挂了、重装系统,数据盘一挂回来,文件都还在。
手动分区的方案,我实际用下来比较顺手的布局是这样的(以500GB硬盘为例):
- /boot:1GB,用来放内核和引导文件,小容量独立分区能避免某些引导问题。
- swap:16GB或者和内存一样大,交换分区。如果服务器内存很大,比如64GB以上,swap也不是必须的,但设置了保险。
- /:100GB,存放系统文件和应用软件。
- /data:剩下所有空间,挂载到/data目录,专门放数据库文件和用户上传的数据。
分区界面操作不复杂,选中空闲磁盘,按回车添加分区,选择大小、类型(主分区还是逻辑分区)、挂载点,然后选“完成”就行。每个分区都能格式化,格式选ext4,swap选“交换空间”。
2.4 账号设置与最后的自动安装
分区完成后,安装器进入账号设置环节。这里会让你输入服务器的主机名(hostname)、普通用户名、密码。Ubuntu Server默认不给root直接登录,而是用一个普通用户加上sudo提权的方式管理,这是安全设计:你用普通账号日常工作,需要管理员权限时用sudo命令,少用root,能减少手滑删错东西的风险。
账号密码设置完之后,还会问你是否加密home目录,建议选No。加密home目录看起来安全,但一旦系统出问题,目录挂载不上,恢复数据的难度会高很多,服务器场景基本没必要。
之后安装器会开始复制系统文件、安装软件包,屏幕上一行一行的日志滚得很快。这一步你会发现进度条卡在某些地方不动,别慌,很大概率是在等网络下载软件包,网速慢的时候等十几二十分钟都很正常。耐心等,只要没有跳出红字报错,就是在正常工作。安装完成后,提示你拔掉U盘,按回车重启,看到登录提示符的那一刻,系统就算装好了。
3. 装完之后的必修课:初始化服务器系统
3.1 软件源换成国内镜像,装软件快很多
重启登录进入系统后,第一件事不是急着装软件,而是替换软件源。Ubuntu默认的软件源是国外的服务器,在国内网络环境下apt update慢得让人抓狂,有时候还会因为连接超时直接报错。
Ubuntu 18.04的软件源配置文件在/etc/apt/sources.list,建议先备份再修改:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update这里我把源里的archive.ubuntu.com替换成了阿里云镜像站,国内访问快。用其他镜像站也行,比如清华的mirrors.tuna.tsinghua.edu.cn,都是一样的思路。替换完再执行sudo apt update,更新软件包列表,你会明显感觉到速度快了很多。
3.2 配置静态IP,不然重启就失联
服务器不像家里的个人电脑,它需要固定的IP地址供其他机器连接。安装阶段如果用DHCP自动获取,重启后IP可能就变了,你记好的IP就失效了。
Ubuntu 18.04用的是netplan网络配置,配置文件在/etc/netplan/目录下,通常是01-netcfg.yaml或者类似的名称。编辑这个文件,把动态DHCP改成静态配置。先看看当前的网卡名和IP,可以用:
ip addr然后编辑配置文件,大致格式如下(网卡名以实际为准):
network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 114.114.114.114写完保存,执行sudo netplan apply让配置生效。如果这台服务器是远程管理的,改配置的时候要格外小心,改错了会导致断网连不上。稳妥一点的办法是:先执行sudo netplan try,它会在120秒内等待你确认,如果网络断开,它会自动回滚配置,避免把自己锁在门外。
3.3 安装SSH服务,远程管理就靠它
服务器放在机房里,不可能每次都接上显示器键盘操作,远程登录全靠SSH。Ubuntu Server在安装过程中没有强制安装openssh-server,所以装完系统后需要手动安装。
sudo apt update sudo apt install -y openssh-server sudo systemctl enable ssh --now sudo systemctl status ssh安装完成后,从你的电脑上就可以远程连了。Windows自带PowerShell或者直接打开终端:
ssh 用户名@服务器IP第一次连接会提示确认主机指纹,输入yes回车,然后输入密码,就能登录到服务器上了。到这一步,你可以把显示器和键盘线拔了,以后的管理都会通过命令行完成。
这里多说一句,SSH服务默认允许root登录(在部分版本中是禁止的),为了安全,建议不要开启root的SSH登录,而是用普通用户登录后再sudo,这样在日志里能看到是谁做了什么操作,方便审计。
3.4 装基础工具和时间同步,减少后续麻烦
接下来是给系统装上一些常用的基础工具。我一般会一次性装好这些:
sudo apt install -y vim curl wget htop net-tools lsof unzip zipvim用来编辑文件,curl和wget用来下载文件、调试接口,htop是比top更好用的进程监视工具,net-tools提供了ifconfig等老牌网络命令,lsof用来查看端口占用,这些都算服务器运维的常备工具,装好不亏。
还有一个很容易被忽略但很重要的配置:时间同步。服务器时间不准,会导致日志时间错乱、定时任务乱跑,甚至在一些场景下证书校验失败。Ubuntu 18.04默认用chrony或者systemd-timesyncd做时间同步。可以用systemd-timesyncd,设置一下时间服务器就行:
sudo timedatectl set-ntp true sudo timedatectl set-timezone Asia/Shanghai timedatectl status第一行开启网络时间同步,第二行把时区设为上海,第三行查看当前时间状态。时间源默认是Ubuntu的时间服务器,如果网络连不上,可以改/etc/systemd/timesyncd.conf里的NTP配置,填上国内的时间服务器,比如ntp.aliyun.com,能大幅提升同步成功率。
4. 安装过程中的常见问题与排查技巧
4.1 U盘引导失败,黑屏或者直接进硬盘系统
这个现象很常见:U盘插上了,启动了,但还是从硬盘进了原有系统,或者直接跳到黑屏只有一个光标在闪。
我遇到过的原因和解决方法排序是:先检查启动盘的分区格式和BIOS启动模式是否匹配,UEFI对应GPT,Legacy对应MBR;再确认U盘的启动顺序排在硬盘前面,有些机器需要按F12临时启动菜单单独选一次;如果都不行,换个U盘重做一次启动盘,劣质U盘或者老U盘读出来特别慢,容易出现引导失败的现象;最后如果是老机器,还要注意USB接口,尽量用后置接口,有些前置USB口在启动阶段不供电。
4.2 安装到一半报“无法安装GRUB引导程序”
GRUB是引导系统启动的程序,这个报错通常出现在安装的最后阶段,意思是引导程序写不进硬盘的主引导记录或者EFI分区里。常见原因是以前装过其他系统,残留的分区表和EFI分区跟现在要装的Ubuntu不太兼容。
处理思路很简单:重新回到分区步骤,把EFI系统分区(如果存在的话)清掉重来,或者干脆选择“使用整个磁盘”重装一遍,让安装器自动创建全新分区表。如果这台机器将来还会装Windows之类的双系统,就要格外小心,建议先把整个分区表备份或者用虚拟机多练几次。
4.3 安装完成后重启,提示“Operating system not found”
系统装完了,但重启找不到系统。这个情况大多不是安装失败,而是BIOS里的启动顺序还在从U盘启动,但U盘已经拔了。开机进BIOS,把硬盘设置为第一启动项即可。
如果设置后还是找不到系统,极有可能是硬盘已有系统时残留了多个EFI启动项,或者引导文件坏了。可以用刚才做好的U盘启动盘,进入试用模式,用引导修复工具修一下,或者干脆重装一次,重装时确认选择了正确的磁盘。
4.4 装好的系统连不上网,ping不通外网
系统装好后,网络不通是个高频问题,尤其是远程管理的服务器。第一步先用ip addr看网卡有没有获得IP地址;没有IP,说明配置文件有问题或者DHCP没拿到地址,检查静态IP配置里的网卡名是否写对了、网关是否填对了;有IP但ping不同外网,检查DNS配置,用ping 223.5.5.5测试能通说明网络是通的,再用nslookup baidu.com测试域名解析,DNS不通就去改/etc/netplan里的nameservers。
如果说这中间有什么最容易犯的错,那一定是网卡名写错,或者忘了执行sudo netplan apply。改完配置必须应用,很多时候不是配置的问题,而是没生效。
4.5 一张速查表,遇到问题先看这个
| 现象 | 可能原因 | 快速处置 |
|---|---|---|
| U盘启动后黑屏 | 启动盘与BIOS模式不匹配 | 用Rufus重做启动盘,调整BIOS启动模式 |
| 安装卡在某个进度 | 下载软件包慢 | 耐心等待或提前换国内源 |
| GRUB安装失败 | 存在残留EFI分区或分区表异常 | 清空EFI分区,重新分区安装 |
| 重启找不到系统 | BIOS启动顺序错误或引导丢失 | 调整启动顺序,重装或修复引导 |
| 网络不通 | 静态IP配置错误或DNS问题 | 用netplan try回滚,检查网卡名和网关 |
| 时间不对 | 未开启时间同步 | 开启systemd-timesyncd并设置正确时区 |
这些坑,我在不同品牌、不同年代的主板上基本都踩过一遍。其实很多问题,尤其是引导类、分区类问题,只要在安装前把启动盘做规范、把BIOS设置走一遍,都能提前避免。真有意外也不用心急,服务器的优势就在于它耐折腾,装坏了、引导丢了,再做一次启动盘重新来,总能修回来。
我自己装系统这么多年,最大的体会是:安装系统本身并不难,难的是安装前对硬件、对需求的判断,以及安装后对网络、时区、软件源这些基础配置的把控。很多时候,一台服务器装了三个小时,其中两个小时花在和硬件、网络的兼容性周旋上。所以如果你今天是第一次装,别着急,慢慢来,每一步确认了再往下走。
装完系统和基础工具之后,下一步就可以根据你的实际需求往上搭建了,比如部署一个网站环境、搭一个版本管理服务,或者跑一些自动化任务。Ubuntu 18.04 LTS作为长期支持版本,在服务器上的生命周期还有保障,配合稳妥的配置,拿来当生产力工具是非常省心的选择。