[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K304VCM7N6AR4PMYNDP3A7":3,"skill-same:01M6K304VCM7N6AR4PMYNDP3A7":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":45,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6K304VCM7N6AR4PMYNDP3A7","storage-resize",null,"Linux 磁盘扩容技能（RPM 包管理系统），实现云盘扩容后自动完成分区调整和文件系统扩容。支持系统盘\u002F数据盘在线扩容，适配 XFS\u002FEXT4\u002FBtrfs 文件系统。适用于 RPM 包管理的 Linux 系统（如 Alibaba Cloud Linux）。","agentic-os-org\u002FANOLISA","agentic-os-org","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326861446?v=4","01M6K2QGJPXKNJFSPNB3FYW1R3","Agentic OS","01M6K2QGQ6W3S1A9J9DR1G88NZ",662,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fstorage-resize\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"storage","storage resize","linux","cloud","system","operations","btrfs","ecs","aliyun","文件","rpm","alibaba","数据","2026-11-10 10:12:30",false,"---\nname: storage-resize\nversion: 1.0.0\ndescription: Linux 磁盘扩容技能（RPM 包管理系统），实现云盘扩容后自动完成分区调整和文件系统扩容。支持系统盘\u002F数据盘在线扩容，适配 XFS\u002FEXT4\u002FBtrfs 文件系统。适用于 RPM 包管理的 Linux 系统（如 Alibaba Cloud Linux）。\nlayer: system\nlifecycle: operations\ndependencies:\n  - aliyun-ecs\n---\n\n# Storage resize - 磁盘扩容\n\n## 核心定位\n\n**两阶段磁盘扩容流程：**\n1. **云平台阶段**：使用 `aliyun-ecs` skill 完成云盘扩容\n2. **操作系统阶段**：执行分区调整和文件系统扩容\n\n**重要约束：**\n- ☁️ 阿里云云盘**仅支持扩容，不支持缩容**\n- ? 支持**系统盘**和**数据盘**两种场景\n- ⚡ **在线扩容**：云盘扩容后无需重启实例，通过 NVMe 重新扫描即可识别（NVMe 设备）\n\n---\n\n## 前置要求\n\n### 1. 依赖技能\n\n本技能依赖 `aliyun-ecs` skill 进行云平台操作：\n- 查询磁盘信息 (`DescribeDisks`)\n- 执行磁盘扩容 (`ResizeDisk`)\n- 查询实例信息 (`DescribeInstances`)\n\n### 2. 工具安装\n\n```bash\n# 检查并安装必要工具\nyum install -y cloud-utils-growpart xfsprogs e2fsprogs btrfs-progs\n\n# 验证工具已安装\nwhich growpart xfs_growfs resize2fs\n```\n\n### 3. 权限要求\n\n- **阿里云 CLI 认证**：需配置 `aliyun configure`（优先使用 EcsRamRole）\n- **系统权限**：需要 root 权限执行分区和文件系统操作\n\n---\n\n## 快速开始\n\n### 一键扩容流程\n\n```bash\n# 1. 确认设备名称和文件系统类型\nlsblk -f \u002Fdev\u002Fnvme0n1\n\n# 2. 云平台扩容（使用 aliyun-ecs skill）\n# aliyun ecs ResizeDisk --DiskId \u003Cdisk-id> --NewSize \u003Cnew-size> --RegionId \u003Cregion>\n\n# 3. NVMe 设备重新扫描（让 OS 识别新容量）\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 4. 确认新容量已识别\nlsblk \u002Fdev\u002Fnvme0n1\n\n# 5. 扩容分区\ngrowpart \u002Fdev\u002Fnvme0n1 3\n\n# 6. 扩容文件系统（根据类型选择命令）\nxfs_growfs \u002F          # XFS（使用挂载点）\nresize2fs \u002Fdev\u002Fnvme0n1p3   # EXT4（使用设备路径）\n\n# 7. 验证\ndf -h \u002F\n```\n\n---\n\n## 文件系统支持\n\n| 文件系统 | 扩容命令 | 参数类型 | 备注 |\n|---------|---------|---------|------|\n| XFS | `xfs_growfs \u002Fmountpoint` | 挂载点 | Alinux4 默认文件系统 |\n| EXT4 | `resize2fs \u002Fdev\u002Fvdb1` | 设备路径 | 支持在线扩容 |\n| Btrfs | `btrfs filesystem resize max \u002Fmountpoint` | 挂载点 | 需要 btrfs-progs |\n\n### 文件系统类型检测\n\n```bash\n# 方法 1: 使用 df\ndf -T \u002F\n\n# 方法 2: 使用 lsblk\nlsblk -f \u002Fdev\u002Fnvme0n1p3\n\n# 方法 3: 使用 mount\nmount | grep \"on \u002F \"\n```\n\n---\n\n## 完整流程\n\n### 步骤 1: 云平台扩容（使用 aliyun-ecs skill）\n\n```bash\n# 获取实例 ID 和地域（ECS 实例内）\nINSTANCE_ID=$(curl -s http:\u002F\u002F100.100.100.200\u002Flatest\u002Fmeta-data\u002Finstance-id)\nREGION_ID=$(curl -s http:\u002F\u002F100.100.100.200\u002Flatest\u002Fmeta-data\u002Fregion-id)\n\n# 查询系统盘信息\naliyun ecs DescribeDisks \\\n  --RegionId $REGION_ID \\\n  --InstanceId $INSTANCE_ID \\\n  --DiskType system\n\n# 执行扩容（例如：40GB → 90GB）\naliyun ecs ResizeDisk \\\n  --DiskId d-bp1234567890abcdef \\\n  --NewSize 90 \\\n  --RegionId $REGION_ID\n```\n\n### 步骤 2: 操作系统内扩容\n\n```bash\n# 2.1 识别设备类型\nlsblk\n\n# 2.2 NVMe 设备重新扫描（关键步骤！）\n# 云盘扩容后，NVMe 设备需要重新扫描控制器才能识别新容量\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 2.3 验证新容量已识别\nlsblk \u002Fdev\u002Fnvme0n1\n\n# 2.4 扩容分区\ngrowpart \u002Fdev\u002Fnvme0n1 3\n\n# 2.5 扩容文件系统\n# 先确认文件系统类型\nFS_TYPE=$(df -T \u002F | tail -1 | awk '{print $2}')\n\nif [ \"$FS_TYPE\" = \"xfs\" ]; then\n    xfs_growfs \u002F\nelif [ \"$FS_TYPE\" = \"ext4\" ]; then\n    resize2fs \u002Fdev\u002Fnvme0n1p3\nelif [ \"$FS_TYPE\" = \"btrfs\" ]; then\n    btrfs filesystem resize max \u002F\nfi\n\n# 2.6 验证结果\ndf -h \u002F\nlsblk \u002Fdev\u002Fnvme0n1\n```\n\n---\n\n## 设备类型识别\n\n| 设备类型 | 示例 | 重新扫描方法 |\n|---------|------|-------------|\n| NVMe | `\u002Fdev\u002Fnvme0n1` | `echo 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller` |\n| VirtIO | `\u002Fdev\u002Fvda` | `blockdev --rereadpt \u002Fdev\u002Fvda` |\n| SATA | `\u002Fdev\u002Fsda` | `blockdev --rereadpt \u002Fdev\u002Fsda` |\n\n### 自动识别脚本\n\n```bash\nDEVICE=\"\u002Fdev\u002Fnvme0n1\"\n\nif [[ \"$DEVICE\" == \u002Fdev\u002Fnvme* ]]; then\n    # NVMe 设备\n    echo 1 > \u002Fsys\u002Fblock\u002F$(basename $DEVICE)\u002Fdevice\u002Frescan_controller\nelif [[ \"$DEVICE\" == \u002Fdev\u002Fvd* ]] || [[ \"$DEVICE\" == \u002Fdev\u002Fsd* ]]; then\n    # VirtIO 或 SATA 设备\n    blockdev --rereadpt $DEVICE\nfi\n```\n\n---\n\n## 故障排查\n\n### 问题 1: 未找到 growpart 命令\n\n```bash\n# 安装工具包\nyum install -y cloud-utils-growpart\n```\n\n### 问题 2: 云盘扩容后 OS 未识别新容量\n\n```bash\n# NVMe 设备：重新扫描控制器\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 验证\nlsblk \u002Fdev\u002Fnvme0n1\n```\n\n### 问题 3: xfs_growfs 报错 \"not mounted\"\n\n```bash\n# XFS 必须使用挂载点，不能使用设备路径\nxfs_growfs \u002Fdata        # ✓ 正确\nxfs_growfs \u002Fdev\u002Fvdb1    # ✗ 错误\n\n# 确认挂载点\nmount | grep vdb\n```\n\n### 问题 4: resize2fs 报错 \"Device busy\"\n\n```bash\n# EXT4 支持在线扩容，确保设备已挂载\n# 如果未挂载，先挂载再扩容\nmount \u002Fdev\u002Fvdb1 \u002Fdata\nresize2fs \u002Fdev\u002Fvdb1\n```\n\n### 问题 5: 扩容后容量未变化\n\n```bash\n# 逐步检查\nlsblk \u002Fdev\u002Fnvme0n1      # 检查云盘容量（应显示新容量）\nlsblk \u002Fdev\u002Fnvme0n1p3    # 检查分区容量（应显示新容量）\ndf -h \u002F                 # 检查文件系统容量（应显示新容量）\n\n# 根据结果定位问题所在步骤\n```\n\n### 问题 6: blockdev --rereadpt 报错 \"Device or resource busy\"\n\n```bash\n# 这是正常现象，当设备已挂载时无法重新读取分区表\n# NVMe 设备使用 rescan_controller 方法\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 如果仍然无效，可能需要重启实例\n```\n\n---\n\n## 最佳实践\n\n### 1. 扩容前备份\n\n```bash\n# 创建快照备份\naliyun ecs CreateSnapshot \\\n  --DiskId d-bp1234567890abcdef \\\n  --SnapshotName \"pre-resize-backup-$(date +%Y%m%d)\"\n```\n\n### 2. 在线扩容流程\n\n```bash\n# 1. 云平台扩容\naliyun ecs ResizeDisk --DiskId \u003Cdisk-id> --NewSize \u003Cnew-size> --RegionId \u003Cregion>\n\n# 2. 等待云平台生效\nsleep 10\n\n# 3. 验证云平台扩容完成\naliyun ecs DescribeDisks --RegionId \u003Cregion> --DiskIds \"[\\\"\u003Cdisk-id>\\\"]\"\n\n# 4. OS 内重新扫描\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 5. 扩容分区和文件系统\ngrowpart \u002Fdev\u002Fnvme0n1 3\nresize2fs \u002Fdev\u002Fnvme0n1p3  # 或 xfs_growfs \u002F\n```\n\n### 3. 自动化脚本\n\n```bash\n#!\u002Fbin\u002Fbash\n# auto-expand-disk.sh\n\nset -e\n\nDEVICE=$1\nPARTITION=$2\nNEW_SIZE=$3\n\n# 自动检测文件系统类型\nFS_TYPE=$(lsblk -f \u002Fdev\u002F${DEVICE}${PARTITION} --noheadings --output FSTYPE | tr -d ' ')\n\n# 扩容分区\ngrowpart \u002Fdev\u002F$DEVICE $PARTITION\n\n# 扩容文件系统\nif [ \"$FS_TYPE\" = \"xfs\" ]; then\n    MOUNTPOINT=$(df \u002Fdev\u002F${DEVICE}${PARTITION} | tail -1 | awk '{print $6}')\n    xfs_growfs $MOUNTPOINT\nelif [ \"$FS_TYPE\" = \"ext4\" ]; then\n    resize2fs \u002Fdev\u002F${DEVICE}${PARTITION}\nfi\n\necho \"✅ 扩容完成！\"\ndf -h \u002F\n```\n\n---\n\n## 扩展资源\n\n- **详细示例**: 参见 [examples.md](examples.md)\n- **技术参考**: 参见 [reference.md](reference.md)\n- **依赖技能**: [aliyun-ecs](..\u002Faliyun-ecs\u002FSKILL.md)\n\n---\n\n**适用版本**: Alinux4  \n**最后更新**: 2026-03-19  \n**依赖技能**: aliyun-ecs\n","# Storage resize - 磁盘扩容\n\n## 核心定位\n\n**两阶段磁盘扩容流程：**\n1. **云平台阶段**：使用 `aliyun-ecs` skill 完成云盘扩容\n2. **操作系统阶段**：执行分区调整和文件系统扩容\n\n**重要约束：**\n- ☁️ 阿里云云盘**仅支持扩容，不支持缩容**\n- ? 支持**系统盘**和**数据盘**两种场景\n- ⚡ **在线扩容**：云盘扩容后无需重启实例，通过 NVMe 重新扫描即可识别（NVMe 设备）\n\n---\n\n## 前置要求\n\n### 1. 依赖技能\n\n本技能依赖 `aliyun-ecs` skill 进行云平台操作：\n- 查询磁盘信息 (`DescribeDisks`)\n- 执行磁盘扩容 (`ResizeDisk`)\n- 查询实例信息 (`DescribeInstances`)\n\n### 2. 工具安装\n\n```bash\n# 检查并安装必要工具\nyum install -y cloud-utils-growpart xfsprogs e2fsprogs btrfs-progs\n\n# 验证工具已安装\nwhich growpart xfs_growfs resize2fs\n```\n\n### 3. 权限要求\n\n- **阿里云 CLI 认证**：需配置 `aliyun configure`（优先使用 EcsRamRole）\n- **系统权限**：需要 root 权限执行分区和文件系统操作\n\n---\n\n## 快速开始\n\n### 一键扩容流程\n\n```bash\n# 1. 确认设备名称和文件系统类型\nlsblk -f \u002Fdev\u002Fnvme0n1\n\n# 2. 云平台扩容（使用 aliyun-ecs skill）\n# aliyun ecs ResizeDisk --DiskId \u003Cdisk-id> --NewSize \u003Cnew-size> --RegionId \u003Cregion>\n\n# 3. NVMe 设备重新扫描（让 OS 识别新容量）\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 4. 确认新容量已识别\nlsblk \u002Fdev\u002Fnvme0n1\n\n# 5. 扩容分区\ngrowpart \u002Fdev\u002Fnvme0n1 3\n\n# 6. 扩容文件系统（根据类型选择命令）\nxfs_growfs \u002F          # XFS（使用挂载点）\nresize2fs \u002Fdev\u002Fnvme0n1p3   # EXT4（使用设备路径）\n\n# 7. 验证\ndf -h \u002F\n```\n\n---\n\n## 文件系统支持\n\n| 文件系统 | 扩容命令 | 参数类型 | 备注 |\n|---------|---------|---------|------|\n| XFS | `xfs_growfs \u002Fmountpoint` | 挂载点 | Alinux4 默认文件系统 |\n| EXT4 | `resize2fs \u002Fdev\u002Fvdb1` | 设备路径 | 支持在线扩容 |\n| Btrfs | `btrfs filesystem resize max \u002Fmountpoint` | 挂载点 | 需要 btrfs-progs |\n\n### 文件系统类型检测\n\n```bash\n# 方法 1: 使用 df\ndf -T \u002F\n\n# 方法 2: 使用 lsblk\nlsblk -f \u002Fdev\u002Fnvme0n1p3\n\n# 方法 3: 使用 mount\nmount | grep \"on \u002F \"\n```\n\n---\n\n## 完整流程\n\n### 步骤 1: 云平台扩容（使用 aliyun-ecs skill）\n\n```bash\n# 获取实例 ID 和地域（ECS 实例内）\nINSTANCE_ID=$(curl -s http:\u002F\u002F100.100.100.200\u002Flatest\u002Fmeta-data\u002Finstance-id)\nREGION_ID=$(curl -s http:\u002F\u002F100.100.100.200\u002Flatest\u002Fmeta-data\u002Fregion-id)\n\n# 查询系统盘信息\naliyun ecs DescribeDisks \\\n  --RegionId $REGION_ID \\\n  --InstanceId $INSTANCE_ID \\\n  --DiskType system\n\n# 执行扩容（例如：40GB → 90GB）\naliyun ecs ResizeDisk \\\n  --DiskId d-bp1234567890abcdef \\\n  --NewSize 90 \\\n  --RegionId $REGION_ID\n```\n\n### 步骤 2: 操作系统内扩容\n\n```bash\n# 2.1 识别设备类型\nlsblk\n\n# 2.2 NVMe 设备重新扫描（关键步骤！）\n# 云盘扩容后，NVMe 设备需要重新扫描控制器才能识别新容量\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 2.3 验证新容量已识别\nlsblk \u002Fdev\u002Fnvme0n1\n\n# 2.4 扩容分区\ngrowpart \u002Fdev\u002Fnvme0n1 3\n\n# 2.5 扩容文件系统\n# 先确认文件系统类型\nFS_TYPE=$(df -T \u002F | tail -1 | awk '{print $2}')\n\nif [ \"$FS_TYPE\" = \"xfs\" ]; then\n    xfs_growfs \u002F\nelif [ \"$FS_TYPE\" = \"ext4\" ]; then\n    resize2fs \u002Fdev\u002Fnvme0n1p3\nelif [ \"$FS_TYPE\" = \"btrfs\" ]; then\n    btrfs filesystem resize max \u002F\nfi\n\n# 2.6 验证结果\ndf -h \u002F\nlsblk \u002Fdev\u002Fnvme0n1\n```\n\n---\n\n## 设备类型识别\n\n| 设备类型 | 示例 | 重新扫描方法 |\n|---------|------|-------------|\n| NVMe | `\u002Fdev\u002Fnvme0n1` | `echo 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller` |\n| VirtIO | `\u002Fdev\u002Fvda` | `blockdev --rereadpt \u002Fdev\u002Fvda` |\n| SATA | `\u002Fdev\u002Fsda` | `blockdev --rereadpt \u002Fdev\u002Fsda` |\n\n### 自动识别脚本\n\n```bash\nDEVICE=\"\u002Fdev\u002Fnvme0n1\"\n\nif [[ \"$DEVICE\" == \u002Fdev\u002Fnvme* ]]; then\n    # NVMe 设备\n    echo 1 > \u002Fsys\u002Fblock\u002F$(basename $DEVICE)\u002Fdevice\u002Frescan_controller\nelif [[ \"$DEVICE\" == \u002Fdev\u002Fvd* ]] || [[ \"$DEVICE\" == \u002Fdev\u002Fsd* ]]; then\n    # VirtIO 或 SATA 设备\n    blockdev --rereadpt $DEVICE\nfi\n```\n\n---\n\n## 故障排查\n\n### 问题 1: 未找到 growpart 命令\n\n```bash\n# 安装工具包\nyum install -y cloud-utils-growpart\n```\n\n### 问题 2: 云盘扩容后 OS 未识别新容量\n\n```bash\n# NVMe 设备：重新扫描控制器\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 验证\nlsblk \u002Fdev\u002Fnvme0n1\n```\n\n### 问题 3: xfs_growfs 报错 \"not mounted\"\n\n```bash\n# XFS 必须使用挂载点，不能使用设备路径\nxfs_growfs \u002Fdata        # ✓ 正确\nxfs_growfs \u002Fdev\u002Fvdb1    # ✗ 错误\n\n# 确认挂载点\nmount | grep vdb\n```\n\n### 问题 4: resize2fs 报错 \"Device busy\"\n\n```bash\n# EXT4 支持在线扩容，确保设备已挂载\n# 如果未挂载，先挂载再扩容\nmount \u002Fdev\u002Fvdb1 \u002Fdata\nresize2fs \u002Fdev\u002Fvdb1\n```\n\n### 问题 5: 扩容后容量未变化\n\n```bash\n# 逐步检查\nlsblk \u002Fdev\u002Fnvme0n1      # 检查云盘容量（应显示新容量）\nlsblk \u002Fdev\u002Fnvme0n1p3    # 检查分区容量（应显示新容量）\ndf -h \u002F                 # 检查文件系统容量（应显示新容量）\n\n# 根据结果定位问题所在步骤\n```\n\n### 问题 6: blockdev --rereadpt 报错 \"Device or resource busy\"\n\n```bash\n# 这是正常现象，当设备已挂载时无法重新读取分区表\n# NVMe 设备使用 rescan_controller 方法\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 如果仍然无效，可能需要重启实例\n```\n\n---\n\n## 最佳实践\n\n### 1. 扩容前备份\n\n```bash\n# 创建快照备份\naliyun ecs CreateSnapshot \\\n  --DiskId d-bp1234567890abcdef \\\n  --SnapshotName \"pre-resize-backup-$(date +%Y%m%d)\"\n```\n\n### 2. 在线扩容流程\n\n```bash\n# 1. 云平台扩容\naliyun ecs ResizeDisk --DiskId \u003Cdisk-id> --NewSize \u003Cnew-size> --RegionId \u003Cregion>\n\n# 2. 等待云平台生效\nsleep 10\n\n# 3. 验证云平台扩容完成\naliyun ecs DescribeDisks --RegionId \u003Cregion> --DiskIds \"[\\\"\u003Cdisk-id>\\\"]\"\n\n# 4. OS 内重新扫描\necho 1 > \u002Fsys\u002Fblock\u002Fnvme0n1\u002Fdevice\u002Frescan_controller\n\n# 5. 扩容分区和文件系统\ngrowpart \u002Fdev\u002Fnvme0n1 3\nresize2fs \u002Fdev\u002Fnvme0n1p3  # 或 xfs_growfs \u002F\n```\n\n### 3. 自动化脚本\n\n```bash\n#!\u002Fbin\u002Fbash\n# auto-expand-disk.sh\n\nset -e\n\nDEVICE=$1\nPARTITION=$2\nNEW_SIZE=$3\n\n# 自动检测文件系统类型\nFS_TYPE=$(lsblk -f \u002Fdev\u002F${DEVICE}${PARTITION} --noheadings --output FSTYPE | tr -d ' ')\n\n# 扩容分区\ngrowpart \u002Fdev\u002F$DEVICE $PARTITION\n\n# 扩容文件系统\nif [ \"$FS_TYPE\" = \"xfs\" ]; then\n    MOUNTPOINT=$(df \u002Fdev\u002F${DEVICE}${PARTITION} | tail -1 | awk '{print $6}')\n    xfs_growfs $MOUNTPOINT\nelif [ \"$FS_TYPE\" = \"ext4\" ]; then\n    resize2fs \u002Fdev\u002F${DEVICE}${PARTITION}\nfi\n\necho \"✅ 扩容完成！\"\ndf -h \u002F\n```\n\n---\n\n## 扩展资源\n\n- **详细示例**: 参见 [examples.md](examples.md)\n- **技术参考**: 参见 [reference.md](reference.md)\n- **依赖技能**: [aliyun-ecs](..\u002Faliyun-ecs\u002FSKILL.md)\n\n---\n\n**适用版本**: Alinux4  \n**最后更新**: 2026-03-19  \n**依赖技能**: aliyun-ecs\n",{"name":5,"layer":23,"version":37,"lifecycle":24,"description":7,"dependencies":38},"1.0.0",[39],"aliyun-ecs","main","d2c8a75e03a304c97d2b049d59f85c2ef0b08519","src\u002Fos-skills\u002Fsystem-admin\u002Fstorage-resize",193,"https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA","https:\u002F\u002Fagentic-os.sh\u002F","https:\u002F\u002Fgithub.com\u002Fagentic-os-org","2026-11-12 00:02:47",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add agentic-os-org\u002FANOLISA --skill storage-resize",{"tool":54,"command":55},"bunx","bunx skills add agentic-os-org\u002FANOLISA --skill storage-resize",{"tool":57,"command":58},"pnpm","pnpm dlx skills add agentic-os-org\u002FANOLISA --skill storage-resize","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fstorage-resize\u002FSKILL.md",true,[62,68],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"examples.md","REFERENCE","参考文档",8816,"https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fstorage-resize\u002Fexamples.md",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"reference.md",10678,"https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fstorage-resize\u002Freference.md",[73,86,120,137,149,179],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":32},"01M6K30MJVPNFF4VA778AZC512","ws-ckpt","Linux 工作区快照(ws-ckpt)。用户想保存或备份工作区当前状态(\"保存一下\"、\"留个底\"、\"先备份\"), 想撤销或恢复文件改动(\"回滚\"、\"撤销\"、\"改回去\"、\"恢复到之前\"、\"刚才那版\"), 想查看、对比或删除历史版本,或要开启\u002F关闭每回合自动快照、定时快照、快照保留策略时使用。 用户没提\"快照\"、只表达保存或恢复工作区文件的意图时同样适用;用户点名 git 操作(commit、branch、reset 到某提交)时不适用。","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fws-ckpt\u002Fsrc\u002Fskills\u002Fws-ckpt\u002FSKILL.md",[],[80,81,82,21,83,84,85,28],"ws ckpt","git","commit","branch","reset","定时",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":97,"publishedAt":32},"01M6K30G7BBZB1VCPE3NE08KZP","skillfs-mount","Help users configure, mount, and unmount a skillfs FUSE virtual filesystem on their local machine (e.g. for openclaw). Covers analyzing existing skill usage to suggest view configuration, generating skillfs-views.toml, mounting, and graceful unmount. Use this skill when the user asks to: set up skillfs, configure skill views, mount or unmount skillfs, check if skillfs is running, or get help organizing their skills directory (especially for openclaw users).","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fskillfs\u002Fdocs\u002Fskills\u002Fskillfs-mount\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"mount","skillfs mount","SET","analyzing","openclaw","directory","usage","running","skill usage","configure","when","virtual","filesystem","view","use","up","existing skill","local","get","toml","machine","for",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":130,"publishedAt":32},"01M6K30CJW0X3V5PG4GP26TB63","test-skill","A test skill used in integration tests.","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fskillfs\u002Fcrates\u002Fskillfs-fuse\u002Ftests\u002Ffixtures\u002Ftest-skill\u002FSKILL.md",[126,129],{"categoryNo":127,"categoryName":128,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[131,132,133,134,135,136],"test","Test Skill","true","tests","integration","integration tests",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":32},"01M6K309767EN4G0E8SNNWWA20","upgrade-alinux-kernel","Alibaba Cloud Linux (Alinux) 升级Linux操作系统内核。当用户需要升级、更新或变更ECS Linux实例的内核版本时使用。","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fupgrade-alinux-kernel\u002FSKILL.md",[],[144,145,146,147,30,21,23,22,148],"upgrade","alinux","kernel","upgrade alinux kernel","maintenance",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":153,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":32},"01M6K2ZXQM0FN6JC4H07SMNSWE","shell-scripting","Use this skill when writing bash or zsh scripts, parsing arguments, handling errors, or automating CLI workflows. Triggers on bash scripting, shell scripts, argument parsing, process substitution, here documents, signal trapping, exit codes, and any task requiring portable shell script development.","MIT","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fshell-scripting\u002FSKILL.md",[156],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[158,159,160,161,162,163,164,165,166,167,168,169,170,171,112,172,173,174,175,176,177,178],"shell scripting","shell","scripting","writing","design","gemini","regex","portable","signal","errors","argument","openai-codex","triggers","exit","Bash","shell scripts","devtools","admin","code","documents","workflows",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":153,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":186,"publishedAt":32},"01M6K2ZPZ5SRY0VG9ZCAMJMHYF","regex-mastery","Use this skill when writing regular expressions, debugging pattern matching,optimizing regex performance, or implementing text validation. Triggers on regex, regular expressions, pattern matching, lookahead, lookbehind, named groups, capture groups, backreferences, and any task requiring text pattern matching.","https:\u002F\u002Fgithub.com\u002Fagentic-os-org\u002FANOLISA\u002Fblob\u002Fmain\u002Fsrc\u002Fos-skills\u002Fsystem-admin\u002Fregex-mastery\u002FSKILL.md",[185],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[187,164,188,108,189,190,191,169,192,193,194,195,174,196,176,197,198,163,199,161,162],"regex mastery","vim","implementing","processing","pattern matching","pattern","patterns","text","Tools","openai","debugging","performance","cli"]