七万号·数据平台实战手记

Back

明朗北街七万号·数研工坊|扎根雄安新区中关村科技园,专注受限环境下软件搭建与数据平台落地


一、问题#

新到了一批服务器,要装操作系统。

公网是没有的,PXE 装机也是没有的。唯一有的是一台可以接显示器的测试机和一摞光盘镜像。

怎么装?

大多数互联网公司的同事可能已经很久没有亲手装过操作系统了——云平台上一键选镜像、点创建,十分钟搞定。

但在内网环境,你得从把 ISO 镜像搞到服务器上开始。

二、约束#

  • 服务器无法访问公网
  • 无 PXE / 无人值守装机环境
  • 芯片架构不统一(x86_64 + ARM64 混部)
  • 部分机器没有显示器接口(只能无界面安装)
  • 需要同时支持欧拉(openEuler)和麒麟(KylinOS)

三、第一步:根据芯片架构选择正确的镜像#

这是最容易翻车的一步。

同一个操作系统版本,针对不同芯片架构的镜像完全不同。装错了连启动都启动不了。

常见架构对应关系#

CPU 架构常见 CPU对应镜像后缀
x86_64Intel Xeon / AMD EPYCx86_64 / amd64
ARM64鲲鹏 920 / 飞腾 S2500aarch64 / arm64

镜像选择实战#

openEuler#

# x86_64 架构
openEuler-22.03-LTS-x86_64-dvd.iso

# ARM64 架构
openEuler-22.03-LTS-aarch64-dvd.iso
plaintext

下载建议: openEuler 的镜像可以在有网的机器上提前下载。

KylinOS(麒麟)#

麒麟分为服务器版(V10)和桌面版,服务器部署通常用 V10。

# x86_64 架构
Kylin-Server-V10-SP3-x86_64.iso

# ARM64 架构
Kylin-Server-V10-SP3-aarch64.iso
plaintext

注意: 麒麟的 ISO 文件名中通常包含 x86aarch 标识,下载前务必确认。

小技巧#

拿到一台新机器,不知道 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

# 同步缓存
sync
plaintext

写入完成后,U 盘就可以作为启动介质了。

提示: dd 命令没有进度条,加 status=progress 可以实时查看写入进度。如果系统比较老不支持这个参数,就耐心等几分钟再用 sync


五、界面安装#

把 U 盘插上服务器,开机进入 BIOS 设置从 U 盘启动。

5.1 通用步骤#

  1. 选择安装语言——默认 English,内网部署建议选中文
  2. 安装目的地——选择要安装系统的硬盘
    • 如果有多块硬盘,建议 SSD 装系统,HDD 做数据盘
    • 分区方案:自动分区够用,手动分区更可控
  3. 网络配置——配置静态 IP(内网环境很少有 DHCP)
    • IP 地址、子网掩码、网关、DNS 每个字段都可能卡住
    • 建议提前整理好 IP 规划表
  4. 软件选择——最小化安装,后续按需装
    • 数据平台场景推荐选「基础设施服务器」或「虚拟化主机」
  5. Root 密码——设置一个你能记住的密码
  6. 开始安装——等进度条跑完

5.2 openEuler 安装注意#

  • 默认的防火墙规则比较严格,安装完成后第一件事是检查 iptables/firewalld
  • 如果选择最小化安装,tarwget 这些基础工具可能没有,手动 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(以下是一个最简配置):

Step 2:放入 U 盘

ks.cfg 复制到 U 盘的根目录。

Step 3:启动时指定 kickstart 文件

开机进入安装介质的引导菜单,在选完安装选项后,按 e 键编辑启动参数,在 linux 开头的行末尾加上:

inst.ks=/dev/sdb1:/ks.cfg
plaintext

然后按 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-server
plaintext

7.2 关闭防火墙(或放行必要端口)#

对于内网数据平台环境,如果对安全性要求不是极致严格,建议在调试阶段:

# 查看防火墙状态
systemctl status firewalld

# 临时关闭(重启后失效)
systemctl stop firewalld

# 永久关闭
systemctl disable firewalld

# 或者只放行需要的端口,比如 SSH
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload
plaintext

7.3 检查磁盘挂载#

# 查看磁盘信息
lsblk
df -h

# 如果有未挂载的数据盘
fdisk -l
# 然后格式化并挂载到 /data 目录
plaintext

7.4 配置本地 yum 源#

这是内网环境下最关键的一步——没有这一步,啥也装不了。下一篇文章专门讲这个。


八、总结#

从拿到一台新服务器到装好操作系统,看起来是最基础的活儿,但在内网环境里每一步都有坑。总结成一句话:

镜像选对架构,安装记录配置,装完先测网络和磁盘。

环节要点常见坑
选镜像x86_64 vs aarch64 必须对应 CPU镜像和 CPU 架构不匹配
做启动盘dd 命令写入 U 盘误写错设备名导致数据丢失
界面安装网络配置、分区、root 密码DHCP 用不了,静态 IP 配错
无界面安装U 盘 + ks.cfgks.cfg 设备名不对
装后检查网络、防火墙、磁盘、yum 源防火墙没关导致后续所有服务连不上

本文首发于掘金 · 作者:七万号

下篇预告:《没有外网,代码怎么装?自建内网镜像源实战》

从裸机开始:内网环境下的操作系统安装全流程
https://realcpf.tech/blog/airgapped-os-install
Author 刘佳成
Published at 2026年7月31日