温馨提示×

centos fromscratch步骤有哪些

小樊
32
2025-12-27 13:14:35
栏目: 智能运维

从零开始的 CentOS 构建路线概览

“from scratch”常见有三种目标:其一,在虚拟机或物理机上做一套最小化安装的 CentOS;其二,用 Docker 的 scratch 基础镜像制作极简 CentOS 容器;其三,完全从源码构建的 Linux From Scratch(LFS)。下面分别给出可执行的步骤要点与关键命令,便于直接落地。

路线一 最小化安装 CentOS 到虚拟机或物理机

  • 准备与启动
    • 下载 CentOS ISO(建议 Minimal ISO);在 VMware/VirtualBox 中新建虚拟机,内存至少 2GB、磁盘至少 20GB,挂载 ISO 启动;物理机则制作 U 盘启动盘 并在 BIOS/UEFI 中调整启动顺序。
  • 安装要点
    • 语言与键盘按需选择;在“安装信息摘要”中:软件选择选 Minimal Install(无图形界面);“安装目的地”选择磁盘并配置分区(可自动或手动,生产常用 LVM);“网络和主机名”开启 以太网 并设置 DHCP/静态 IP;安全策略保持默认或按组织规范调整。
  • 用户与安全
    • 设置强 root 密码;建议创建普通用户并加入 wheel 组以便 sudo;如非必须,可在“系统”里关闭 KDUMP 节省资源。
  • 首次启动与基础配置
    • 登录后执行 yum update -y 更新系统;使用 nmtui 或编辑 /etc/sysconfig/network-scripts/ifcfg-ensXX 配置网络;安装常用工具:yum install -y net-tools bind-utils vim wget curl;启用 SSHsystemctl enable --now sshd;按需配置 firewalldfirewall-cmd --zone=public --add-service=ssh --permanent && firewall-cmd --reload
      以上流程覆盖从 ISO 获取、虚拟机资源配置、安装时分区与网络设置,到首次启动后的网络、SSH 与防火墙配置等关键步骤。

路线二 用 Docker 的 scratch 制作极简 CentOS 容器镜像

  • 思路与准备
    • scratch 为基底,直接将 CentOS 根文件系统 tar 包 解压进镜像,再设置 CMD 入口。示例 Dockerfile(以 CentOS 7.4 为例):
      FROM scratch
      ADD centos-7.4.1708-docker.tar.xz /
      CMD ["/bin/bash"]
      
    • 构建:docker build -t centos:7.4-scratch .;运行:docker run -it --rm centos:7.4-scratch
  • 离线环境补充
    • 若需额外软件(如 make/gcc),可在构建阶段 RUN yum install -y make gcc gcc-c++ && yum clean all;注意 scratch 镜像没有包管理器,所有依赖需在构建时一次性装好。
      该方式适合制作体积更小、只包含必要运行时的极简 CentOS 容器基础镜像。

路线三 完全从源码构建 Linux From Scratch(LFS)并制作可启动介质

  • 准备环境
    • 在现有 CentOS 主机上准备构建环境,安装必要工具,满足 LFS 官方主机要求;创建工作目录(常见为 /mnt/lfs),按 LFS 文档下载 源码包与补丁 并校验 MD5/SHA
  • 构建临时工具链
    • 按 LFS 章节顺序构建 临时 GCC/glibc/binutils 等工具链;编译时可用 make -j$(nproc) 提速,但部分测试失败可先忽略(视版本与平台而定)。
  • 构建目标系统
    • 切到目标根环境,依序构建核心组件(工具链、基础系统、内核等);内核编译完成后安装到目标 /boot
  • 制作可启动介质(U 盘)
    • 分区并格式化 U 盘(如 /dev/sdb1),挂载后安装 GRUBgrub-install --root-directory=/mnt/target /dev/sdb;编辑 grub.cfg,示例:
      set root=(hd0,1)
      linux /boot/vmlinuz-<version> root=/dev/sda1 rootdelay=8
      initrd /boot/initramfs-<version>.img
      boot
      
    • 注意:以 U 盘启动 时,内核参数中的 root 通常指向实际系统盘(如 /dev/sda1),rootdelay=8 可避免早期挂载失败;/etc/fstab 需与实际磁盘 UUID/分区对应。
  • 启动与排错
    • 若仅进入 grub> 命令行,可手动引导:root (hd0,0)kernel /boot/vmlinuz-<tab>boot
      该路线完全从源码构建,适合学习 Linux 构建细节与定制化系统;完整权威步骤以 LFS 官方手册为准。

0