明朗北街七万号·数研工坊|扎根雄安新区中关村科技园,专注受限环境下软件搭建与数据平台落地
一、问题#
新到了一批服务器,要装操作系统。
公网是没有的,PXE 装机也是没有的。唯一有的是一台可以接显示器的测试机和一摞光盘镜像。
怎么装?
大多数互联网公司的同事可能已经很久没有亲手装过操作系统了——云平台上一键选镜像、点创建,十分钟搞定。
但在内网环境,你得从把 ISO 镜像搞到服务器上开始。
二、约束#
- 服务器无法访问公网
- 无 PXE / 无人值守装机环境
- 芯片架构不统一(x86_64 + ARM64 混部)
- 部分机器没有显示器接口(只能无界面安装)
- 需要同时支持欧拉(openEuler)和麒麟(KylinOS)
三、第一步:根据芯片架构选择正确的镜像#
这是最容易翻车的一步。
同一个操作系统版本,针对不同芯片架构的镜像完全不同。装错了连启动都启动不了。
常见架构对应关系#
| CPU 架构 | 常见 CPU | 对应镜像后缀 |
|---|---|---|
| x86_64 | Intel Xeon / AMD EPYC | x86_64 / amd64 |
| ARM64 | 鲲鹏 920 / 飞腾 S2500 | aarch64 / arm64 |
镜像选择实战#
openEuler#
# x86_64 架构
openEuler-22.03-LTS-x86_64-dvd.iso
# ARM64 架构
openEuler-22.03-LTS-aarch64-dvd.isoplaintext下载建议: openEuler 的镜像可以在有网的机器上提前下载。
KylinOS(麒麟)#
麒麟分为服务器版(V10)和桌面版,服务器部署通常用 V10。
# x86_64 架构
Kylin-Server-V10-SP3-x86_64.iso
# ARM64 架构
Kylin-Server-V10-SP3-aarch64.isoplaintext注意: 麒麟的 ISO 文件名中通常包含 x86 或 aarch 标识,下载前务必确认。
小技巧#
拿到一台新机器,不知道 CPU 架构?开机进 BIOS 或者在系统启动时看自检信息。如果已经有一台能用的机器,直接跑:
# 查看 CPU 架构
uname -m
# 输出示例
# x86_64 → Intel/AMD
# aarch64 → ARM(鲲鹏、飞腾)plaintext一个很常见的坑: 下载了 x86_64 的镜像想装在 ARM 机器上,或者反过来。看着 ISO 名只差一个后缀,但启动时直接报 Invalid image。所以下载镜像之前,第一件事是先确认芯片型号。
四、从 ISO 制作启动介质#
内网环境通常没有 U 盘量产工具,最简单的方式是用 dd 命令把 ISO 写入 U 盘:
# 查看 U 盘设备名(通常是 /dev/sdb 或 /dev/sdc)
lsblk
# 写入 ISO 到 U 盘(注意:这个操作会清空 U 盘所有数据)
sudo dd if=./openEuler-22.03-LTS-x86_64-dvd.iso of=/dev/sdb bs=4M status=progress
# 同步缓存
syncplaintext写入完成后,U 盘就可以作为启动介质了。
提示: dd 命令没有进度条,加 status=progress 可以实时查看写入进度。如果系统比较老不支持这个参数,就耐心等几分钟再用 sync。
五、界面安装#
把 U 盘插上服务器,开机进入 BIOS 设置从 U 盘启动。
5.1 通用步骤#
- 选择安装语言——默认 English,内网部署建议选中文
- 安装目的地——选择要安装系统的硬盘
- 如果有多块硬盘,建议 SSD 装系统,HDD 做数据盘
- 分区方案:自动分区够用,手动分区更可控
- 网络配置——配置静态 IP(内网环境很少有 DHCP)
- IP 地址、子网掩码、网关、DNS 每个字段都可能卡住
- 建议提前整理好 IP 规划表
- 软件选择——最小化安装,后续按需装
- 数据平台场景推荐选「基础设施服务器」或「虚拟化主机」
- Root 密码——设置一个你能记住的密码
- 开始安装——等进度条跑完
5.2 openEuler 安装注意#
- 默认的防火墙规则比较严格,安装完成后第一件事是检查 iptables/firewalld
- 如果选择最小化安装,
tar、wget这些基础工具可能没有,手动yum install一下
5.3 KylinOS 安装注意#
- 麒麟 V10 的安装界面和 CentOS/RHEL 非常接近,照上面步骤走
- 安装完成后默认 SELinux 是 enforcing,对于数据平台场景建议先设为 permissive(后续再根据需要开启)
- 麒麟的 yum 源默认指向官方仓库(需要联网),内网环境尽快切为本地源(下一篇文章会讲)
六、无界面安装(PXE 都没有?用 U 盘 Kickstart)#
有些服务器没有接显示器的接口,或者机房太远不方便接显示器。这时候需要用无界面安装的方式。
6.1 方案:U 盘 + Kickstart 配置文件#
操作很简单:在 U 盘的 ISO 写入完成后,修改启动参数,让它自动读取一个预先写好的 Kickstart 配置文件。
Step 1:准备 kickstart 文件
创建 ks.cfg(以下是一个最简配置):
# Minimal Kickstart Config
text
install
cdrom
lang zh_CN.UTF-8
keyboard us
rootpw your-password-here
timezone Asia/Shanghai
network --bootproto static --ip 192.168.1.100 --netmask 255.255.255.0 --gateway 192.168.1.1 --nameserver 192.168.1.1
zerombr
clearpart --all --initlabel
autopart
reboot
%packages
@base
tar
wget
vim
%endplaintextStep 2:放入 U 盘
把 ks.cfg 复制到 U 盘的根目录。
Step 3:启动时指定 kickstart 文件
开机进入安装介质的引导菜单,在选完安装选项后,按 e 键编辑启动参数,在 linux 开头的行末尾加上:
inst.ks=/dev/sdb1:/ks.cfgplaintext然后按 Ctrl+X 启动,系统会自动读取配置文件进行无人值守安装。
如果设备名不确定(可能是 /dev/sdc1 或 /dev/sda1),可以在启动前先插 U 盘进一个临时系统确认。
6.2 什么是 Kickstart#
Kickstart 是 RedHat 系(包括 openEuler 和 KylinOS)的自动化安装方案。用配置文件代替手工点选界面,支持磁盘分区、网络配置、用户密码、预装软件包等所有安装选项。
对于需要批量部署多台服务器的场景,你可以把 ks.cfg 放在一个共享目录里,所有机器指向同一个配置文件,实现标准化安装。
如果多台机器配置不同(比如 IP 不一样),可以用 Shell 脚本生成不同的 ks.cfg,然后逐台安装。
七、安装后的第一件事#
装完系统,重启之后,第一件事不是装应用,而是:
7.1 检查网络通畅#
# 检查 IP
ip addr
# 检查是否能 ping 通网关
ping -c 3 192.168.1.1
# 检查 DNS 是否生效
ping -c 3 your-internal-dns-serverplaintext7.2 关闭防火墙(或放行必要端口)#
对于内网数据平台环境,如果对安全性要求不是极致严格,建议在调试阶段:
# 查看防火墙状态
systemctl status firewalld
# 临时关闭(重启后失效)
systemctl stop firewalld
# 永久关闭
systemctl disable firewalld
# 或者只放行需要的端口,比如 SSH
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reloadplaintext7.3 检查磁盘挂载#
# 查看磁盘信息
lsblk
df -h
# 如果有未挂载的数据盘
fdisk -l
# 然后格式化并挂载到 /data 目录plaintext7.4 配置本地 yum 源#
这是内网环境下最关键的一步——没有这一步,啥也装不了。下一篇文章专门讲这个。
八、总结#
从拿到一台新服务器到装好操作系统,看起来是最基础的活儿,但在内网环境里每一步都有坑。总结成一句话:
镜像选对架构,安装记录配置,装完先测网络和磁盘。
| 环节 | 要点 | 常见坑 |
|---|---|---|
| 选镜像 | x86_64 vs aarch64 必须对应 CPU | 镜像和 CPU 架构不匹配 |
| 做启动盘 | dd 命令写入 U 盘 | 误写错设备名导致数据丢失 |
| 界面安装 | 网络配置、分区、root 密码 | DHCP 用不了,静态 IP 配错 |
| 无界面安装 | U 盘 + ks.cfg | ks.cfg 设备名不对 |
| 装后检查 | 网络、防火墙、磁盘、yum 源 | 防火墙没关导致后续所有服务连不上 |
本文首发于掘金 · 作者:七万号
下篇预告:《没有外网,代码怎么装?自建内网镜像源实战》