IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    制作 Arch Linux 内存系统启动盘

    Phoenix Nemo发表于 2020-09-14 04:20:20
    love 0

    之前尝试过 Arch Linux in RAM 完全运行在内存中的轻量业务系统,最近在维护一些物理服务器看到没有安装系统的服务器不断重启,想到了可以制作类似的内存系统启动盘,以高效完成系统测试、安装、远程维护等任务。

    这时候就要祭出 mkarchiso 大法了。这是自动化制作最新版 Arch Live 镜像的工具集,当然也可用于制作定制化的 Arch 镜像。

    准备

    首先安装 archiso 包

    1
    ~> sudo pacman -Syy archiso

    它提供了两种配置方案,一种是只包含基本系统的 baseline,一种是可以制作定制 ISO 的 releng。要制作维护用 ISO,当然是复制 releng 配置啦。

    1
    2
    ~> cp -r /usr/share/archiso/configs/releng/ archlive
    ~> cd archlive

    定制

    整个过程不要太简单。先来了解下各个文件的用途:

    • build.sh - 用于制作镜像的自动化脚本,可以在这里修改一些名称变量或制作过程的逻辑。
    • packages.x86_64 - 一份要安装的包列表,一行一个。
    • pacman.conf - pacman 的配置文件,不用多说了吧。
    • airootfs - Live 系统的 rootfs,除了安装的包之外,其他的定制(以及启动执行脚本等)都在这里。遵循 rootfs 的目录规则。
    • efiboot / syslinux / isolinux 用于设置 BIOS / EFI 启动的配置。

    将 [archlinuxcn] 仓库加入 pacman.conf:

    1
    2
    [archlinuxcn]
    Server = https://cdn.repo.archlinuxcn.org/$arch

    然后修改 packages.x86_64,加入 archlinuxcn-keyring 和其他需要预安装的包:

    1
    2
    3
    4
    5
    archlinuxcn-keyring
    htop
    iftop
    iotop
    ipmitool

    按需修改即可啦。

    要启动为内存系统,需要加启动参数 copytoram。

    修改文件 syslinux/archiso_pxe.cfg 和 syslinux/archiso_sys.cfg 文件,在启动参数后加 copytoram,像这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    INCLUDE boot/syslinux/archiso_head.cfg

    LABEL arch64
    TEXT HELP
    Boot the Arch Linux (x86_64) live medium.
    It allows you to install Arch Linux or perform system maintenance.
    ENDTEXT
    MENU LABEL Boot Arch Linux (x86_64)
    LINUX boot/x86_64/vmlinuz
    INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img
    APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram

    启动时即可将整个 SquashFS 文件复制到内存。如果内存比较小,也可以指定 copytoram_size 来限制 tmpfs 占用内存的最大数量。

    同样,也需要修改 efiboot/loader/entries/archiso-x86_64-usb.conf 的启动参数。在 options 行添加

    1
    options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram

    制作

    创建工作目录和输出目录

    1
    mkdir -p work out

    最后一步,只需要以 root 权限执行 ./build.sh 就可以啦。

    要看具体执行过程的话,加 -v。-h 看所有参数。

    完成后,即可在 out 目录得到准备好的 ISO 文件。将其 dd 到 USB 闪存盘,大功告成(‘・ω・’)

    Ref:

    1. https://wiki.archlinux.org/index.php/Archiso
    2. https://git.archlinux.org/archiso.git/tree/docs/README.bootparams#n53


沪ICP备19023445号-2号
友情链接