温馨提示×

Linux Overlay部署步骤解析

小樊
56
2025-07-15 02:57:05
栏目: 智能运维

在 Linux 中,OverlayFS 是一种强大的联合文件系统,可以将多个目录层叠在一起,形成一个统一的视图。以下是 Linux OverlayFS 的部署流程:

环境准备

  • 确保系统支持 OverlayFS(内核版本 3.18)。
  • 安装必要的工具和依赖,如 busybox 或其他系统工具。

创建 OverlayFS 配置结构

  • 创建一个工作目录来组织文件系统结构。例如:

    mkdir -p /tmp/ramdisk/{bin,sbin,etc,proc,sys,dev,tmp} 
  • 将 busybox 和相关依赖文件复制到适当的目录。

配置挂载脚本

  • 在 RAMDisk 的脚本中配置相关的挂载和优化选项,例如:

    root_rw/userdata # 读写挂载点 root_ro/root-ro # 只读文件系统挂载点 ROOTMNT {rootmnt} # 使用全局名称表示在除此之外创建 OVERLAYROOT_DEBUG0 # 优化 userdata分区自动修复 e2fsck -y /dev/disk/by-partlabel/userdatatune2fs -O has_journal /dev/disk/by-partlabel/userdata 

制作 RAMDisk 镜像

  • 创建脚本 pack_ramdisk.sh,将 RAMDisk 内容打包为 ramdisk.img

    #!/bin/bash cd /tmp/ramdisk_contents find . cpio -o -H newc ../ramdisk.cpiogzip ../ramdisk.cpio mv ../ramdisk.cpio.gz ../ramdisk.img 
  • 解压脚本:创建脚本 unpack_ramdisk.sh,将 ramdisk.img 解压到工作目录:

    #!/bin/bash mkdir ramdisk_contents cd ramdisk_contents gunzip -c ../ramdisk.img cpio -idv ramdisk.cpiocpio -idv ramdisk.cpio 
  • 打包到 boot.img

配置项目文件

  • 在项目 defconfig 文件中,添加以下内容:

    RK_USE_FIT_IMG=y RK_BOOT_FIT_ITS="bootramdisk.its" RK_RAMDISK_IMG="ramdisk.img" 

修改内核配置与设备树

  • 修改设备树文件 chosen 节点,添加 overlayroot 参数。

验证配置

  • 创建挂载点目录:

    sudo mkdir /mnt/overlay_roots sudo mkdir /mnt/overlay_root/lowerdirs sudo mkdir /mnt/overlay_root/upperdirs sudo mkdir /mnt/overlay_root/workdir 
  • 挂载文件系统:

    sudo mount --bind /etc /mnt/overlay_root/lowerdirs sudo mount --bind /path/to/temporary/fs /mnt/overlay_root/upperdirs sudo mkdir /mnt/overlay_root/workdirs sudo chown -R 1000:1000 /mnt/overlay_root/workdirs sudo overlay mount -o lowerdir=/mnt/overlay_root/lowerdir,upperdir=/mnt/overlay_root/upperdir,workdir=/mnt/overlay_root/workdir /mnt/overlay_root 
  • 验证挂载:挂载成功后,可以在 /mnt/overlay_root 目录下访问合并后的文件系统。

  • 卸载 OverlayFS:要卸载 OverlayFS 挂载点,请使用以下命令:

    sudo umount /mnt/overlay_root 

请注意,进行任何更改之前,务必备份重要数据。以上步骤详细说明了 OverlayFS 的启动过程。需要注意的是,示例中使用了 ext4 文件系统,您可以根据实际情况选择其他文件系统。

0