Hydro Contest OS

Hydro Contest OS 是技术组面向 XCPC 现场赛维护的标准化比赛用机环境,统一编译器、IDE、桌面配置、用户权限和现场运维工具,方便赛站部署和跨赛季复用。

Hydro Contest OS 2026 部署教程

准备安装介质,通过图形安装器或赛站专用自动安装配置部署 2026 赛季环境。

准备安装介质

ISO 包含多个 squashfs 层,每个文件都小于 FAT32 的 4 GB 单文件限制。因此可以解压到可写的 FAT32 U 盘进行 UEFI 部署,也可以写入混合启动镜像以支持 BIOS 与 UEFI。

解压式 UEFI 启动盘(推荐)

  1. 备份 U 盘中的重要文件,创建一个 FAT32 分区。
  2. 将 ISO 中的全部文件解压到分区根目录。分区标签可设为 ICPC,但并非必需。
  3. 使用 UEFI 模式启动目标机器。

解压后的目录包含:

/
├── autoinstall/
│   └── default.yaml
├── casper/
├── EFI/
└── boot/grub/

分区保持可写,可直接修改下文介绍的赛站专用配置。

BIOS 与 UEFI 安装介质

需要 BIOS (Legacy) 启动的机器可使用 Ventoy、Rufus 或 dd。以块镜像方式写入 ISO 会保留混合启动记录,但写入后的 ISO9660 文件系统为只读,仍使用公开的自动安装配置。

若要在只读 ISO 中使用私有配置,需要重新制作 ISO 并替换 /autoinstall/default.yaml。重制后的镜像含有秘密信息,必须作为私有安装介质保管。

安装系统

镜像通过 ubuntu-desktop-bootstrap 和 Subiquity 提供 Live 环境与安装功能。启动菜单包含:

  • Try or Install Ubuntu:进入 Live 桌面和图形安装器。
  • Ubuntu (safe graphics):使用相同环境,并增加 nomodeset 参数。
  • Automated Install:读取 /autoinstall/default.yaml,执行无人值守安装。

前两个选项仍为交互式安装,只有 Automated Install 会选用自动安装配置。自动安装会根据配置重建目标磁盘,请在部署前核实磁盘选择。

配置自动安装

公开镜像内置的配置使用 icpc / passw0rd 账户,不包含私有密码、WiFi 凭据或 SSH 密钥。

赛场部署时,将 ISO 解压到 FAT32 U 盘,直接编辑 autoinstall/default.yaml。将公开账户信息替换为赛站的主机名、用户名和 SHA-512 密码哈希,按需加入 WiFi 和 SSH 配置。加入私有值后,整个 U 盘都应作为含有秘密信息的安装介质保管。

安装变体

通过 source.id 选择安装的软件集合:

  • icpc-ubuntu-desktop-minimal:编译器、编辑器和比赛工具。
  • icpc-ubuntu-desktop:minimal 变体加上 IDE。
  • icpc-ubuntu-desktop-full:标准变体加上推流、监控和首次启动配置支持。

公开配置示例

公开镜像包含以下配置。不填写 WiFi 或 SSH 配置时,相应功能保持未配置状态。修改账户名时,请同步更新所有对应的 icpc 值,包括 late-commands 中的内容。

version: 1
source:
  id: icpc-ubuntu-desktop-full
  search_drivers: false
apt:
  fallback: offline-install
  geoip: false
locale: en_US.UTF-8
keyboard:
  layout: us
timezone: Asia/Shanghai
identity:
  realname: ICPC
  hostname: icpc
  username: icpc
  # Public password: passw0rd
  password: '$6$rounds=656000$0bffae792a4e9fb5$VgTE6Ko/.d4ZqxVUQvQM1BKgmhPFoylMANIABvSDOGVqy7VneTejUWScDR6.S9zUtw/ShmlZVY3gFkBusQhWP/'
storage:
  swap:
    size: 0
  layout:
    name: direct
    sizing-policy: all
late-commands:
  - echo 'icpc ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/icpc-nopasswd
  - chmod 440 /target/etc/sudoers.d/icpc-nopasswd
  - touch /target/icpc/.machine-setup

此配置控制安装变体、区域、键盘、时区、账户、存储布局及可选网络访问。late-commands 为操作员授予免密 sudo 权限,并启用首次启动的机器配置向导。SSH 授权公钥可通过 user-data.ssh_authorized_keys 提供。

完整配置结构请参考 Subiquity autoinstall 文档。安装后请按管理指南创建选手账户。