首页主机资讯如何通过Cobbler管理磁盘分区

如何通过Cobbler管理磁盘分区

时间2026-01-16 23:26:03发布访客分类主机资讯浏览391
导读:通过 Cobbler 管理磁盘分区的实践指南 一、总体思路与关键点 在 Cobbler 中,磁盘分区由安装器的 Kickstart(RHEL/CentOS)或 preseed(Debian/Ubuntu)模板驱动。常见做法是:在 prof...

通过 Cobbler 管理磁盘分区的实践指南

一、总体思路与关键点

  • 在 Cobbler 中,磁盘分区由安装器的 Kickstart(RHEL/CentOS)或 preseed(Debian/Ubuntu)模板驱动。常见做法是:在 profile 或 system 级别为不同机型/磁盘规格维护多套分区模板,通过变量复用公共片段,必要时用 %pre/%post 做安装前后补丁。
  • 分区指令要点:
    • 使用 clearpart 清理磁盘(如:clearpart --all --initlabel)。
    • 使用 part 定义分区(如:/boot、/、swap、biosboot 等),可指定 fstype、size、grow 等。
    • 使用 autopart 让安装器自动分区(适合通用场景)。
    • 使用 raid 相关指令配合 part 做软 RAID(创建 raid.XX 分区后组装 md 设备)。
    • 引导相关:传统 BIOS 需 biosboot;UEFI 需 –fstype=efi 的 EFI 分区(大小常见为 200–500M)。

二、RHEL/CentOS 的 Kickstart 示例

  • 标准分区(MBR,适配多数服务器)
    # 清盘并初始化卷标
    clearpart --all --initlabel
    
    # 引导分区(BIOS)
    part biosboot --fstype=biosboot --size=1
    
    # 启动分区
    part /boot --fstype=ext4 --size=1024
    
    # 根分区(示例 40GB)
    part / --fstype=ext4 --size=40960
    
    # 交换分区(示例 8GB)
    part swap --fstype=swap --size=8192
    
  • LVM 示例(便于后续在线扩缩)
    clearpart --all --initlabel
    
    part /boot --fstype=ext4 --size=1024
    part pv.01 --fstype=lvmpv --grow --ondisk=sda
    
    volgroup vg_root pv.01
    logvol /     --vgname=vg_root --size=30G --name=lv_root
    logvol swap  --vgname=vg_root --size=8G  --name=lv_swap
    logvol /data --vgname=vg_root --size=1   --grow --name=lv_data
    
  • 软 RAID-5 示例(示意)
    clearpart --all --initlabel
    
    part raid.01 --fstype=raid --grow --ondisk=sda --size=1
    part raid.02 --fstype=raid --grow --ondisk=sdb --size=1
    part raid.03 --fstype=raid --grow --ondisk=sdc --size=1
    part raid.04 --fstype=raid --grow --ondisk=sdd --size=1
    part raid.05 --fstype=raid --grow --ondisk=sde --size=1
    
    raid / --device=md0 --fstype=ext4 --level=5 raid.01 raid.02 raid.03 raid.04 raid.05
    
  • 使用提示
    • 需要自动分区时可用 autopart 替代手工 part 列表。
    • 若需复用网络/分区等公共片段,可在 ks 中引用 $SNIPPET(‘xxx’)

三、Ubuntu 的 preseed 示例

  • 原子模式(自动 LVM,安装器自动分配)
    • 特点:自动创建约 250M /boot,并创建约 10G 的卷组;其中 swap≈内存大小,其余空间分配给 /。适合快速交付与通用用途。
  • 手工 LVM 模式(精细控制)
    # 磁盘与分区
    d-i partman-auto/method string lvm
    d-i partman-lvm/device_remove_lvm boolean true
    d-i partman-lvm/confirm boolean true
    d-i partman-lvm/confirm_nooverwrite boolean true
    
    # 引导分区(MBR)
    d-i partman-auto/expert_recipe string                         \
      boot-root ::                                            \
        256 256 256 ext2                                     \
          $primary{
     }
     $bootable{
     }
                                 \
          method{
     format }
     format{
     }
                               \
          use_filesystem{
     }
     filesystem{
     ext2 }
                     \
          mountpoint{
     /boot }
                                    \
        .                                                     \
        10240 10240 10240 ext4                                \
          $lvmok{
     }
     lv_name{
     lv_root }
                             \
          method{
     format }
     format{
     }
                               \
          use_filesystem{
     }
     filesystem{
     ext4 }
                     \
          mountpoint{
     / }
                                        \
        .                                                     \
        512 512 512 linux-swap                                \
          $lvmok{
     }
     lv_name{
     lv_swap }
                             \
          method{
     swap }
     format{
     }
                                 \
        .                                                     \
        5120 5120 5120 ext4                                   \
          $lvmok{
     }
     lv_name{
     lv_www }
                             \
          method{
     format }
     format{
     }
                               \
          use_filesystem{
     }
     filesystem{
     ext4 }
                     \
          mountpoint{
     /www }
                                         \
        .
    
    d-i partman-auto/choose_recipe select boot-root
    d-i partman-partitioning/confirm_write_new_label boolean true
    d-i partman/confirm_write_new_label boolean true
    d-i partman/confirm_nooverwrite boolean true
    d-i partman/choose_partition finish
    d-i partman/confirm finish
    
  • 说明
    • 原子模式适合“开箱即用”;手工模式适合对 /boot、/、swap、/data 等容量有明确规划的场景。

四、大容量磁盘与 LVM 的注意事项

  • 大于 16TB 的磁盘
    • 传统 ext432 位寻址下存在约 16TB 的上限;在 CentOS 6 上需升级工具并启用 64 位模式才能支持,而 CentOS 5 及以下不支持。若使用 ext4 的 –grow 去占满 > 16TB 磁盘,可能出现“只能用到 16TB”或格式化异常。
    • 建议:在 > 16TB 场景优先使用 XFS,或在装机完成后对数据盘重新分区/格式化(避免安装阶段触发 ext4 限制)。
  • LVM 与后续扩容
    • LVM 便于在线扩容逻辑卷;但根分区在线扩容依赖文件系统支持(如 ext4/xfs 在线扩容能力不同),生产变更前务必在测试环境验证,并准备回滚方案。

五、安装后处理与数据盘自动化

  • %post 中对非系统盘进行自动化分区、格式化与挂载(示例脚本思路)
    %post
    NUM=01
    for DEVICE in $(awk '$NF ~ /sd/ &
        &
     $NF !~ /[0-9]$/ {
    print $NF}
        ' /proc/partitions | sort);
     do
      DEVICE="/dev/$DEVICE"
      # 跳过已挂载或已用作 swap 的设备
      [[ -b ${
    DEVICE}
        1 ]] &
        &
     FSTYPE=$(parted -s ${
    DEVICE}
        1 print 2>
    /dev/null | awk '/^ / {
    print $5}
        ')
      if [[ $FSTYPE == "swap" ]];
         then continue;
     fi
    
      LABEL="hadoop${
    NUM}
    "
      if ! e2label ${
    DEVICE}
        1 2>
        /dev/null;
         then
        parted -s $DEVICE mklabel gpt
        parted -s $DEVICE mkpart primary ext4 0% 100%
        partprobe;
     sleep 3
        mkfs.ext4 -q -L "$LABEL" ${
    DEVICE}
    1
      else
        e2label ${
    DEVICE}
        1 "$LABEL"
      fi
    
      grep -q "LABEL=$LABEL" /etc/fstab || \
        echo "LABEL=$LABEL /$LABEL ext4 defaults,noatime,nodiratime 0 0" >
        >
        /etc/fstab
      mkdir -p "/$LABEL"
      NUM=$(printf "%02d" $((10#$NUM + 1)))
    done
    %end
    
  • 适用场景:批量初始化 /data01、/data02 等数据盘;可按需改为 xfs、调整挂载选项、加入 systemd mount 单元或 ansible 后续编排。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何通过Cobbler管理磁盘分区
本文地址: https://pptw.com/jishu/782036.html
Linux中Compton的启动参数有哪些 Compton在Linux中的渲染流程是怎样的

游客 回复需填写必要信息