侧边栏壁纸
博主头像
龍騰博客 博主等级

行动起来,活在当下

  • 累计撰写 119 篇文章
  • 累计创建 31 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

OpenWrt 虚拟机新增硬盘实现动静分离

管理员
2026-04-01 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

想要长治久安:在 ESXi 里新增一个 10GB 的硬盘(Hard Disk 2),然后参考我们之前聊到的 “绑定挂载 (Mount Bind)”,把 OpenClash 和 AdGuardHome 彻底移出去,做到“动静分离”。

扩容方式

风险点

维护成本

直接扩容原盘 (sda2)

:下次刷机更新时,新固件会重写分区表,辛苦扩容的空间会被瞬间打回原形。

每次刷机都要重来一次。

新增第二块盘 (sdb)

极低:系统盘(sda)随便刷,数据盘(sdb)永远独立,刷完挂载即可。

一劳永逸,数据永存。

第一步:在esxi中添加新硬盘

  • 登录 ESXi 后台,找到你的 OpenWrt 虚拟机。

  • 关闭虚拟机(这是最稳妥的做法,防止分区表调整时数据冲突)。

  • 点击 编辑 (Edit)

  • 在编辑界面,不要改动现有的“硬盘 1”。

  • 点击 添加设备 -> 硬盘 -> 新标准硬盘

  • 分配 10GB

  • 点击 保存

  • 开启虚拟机

注意1

如果在 ESXi 中遇到 “失败 - 设备‘6’的操作无效”,通常是因为你尝试在虚拟机运行状态下直接修改磁盘大小,或者该虚拟机存在 快照 (Snapshot)

解决方法

  1. 进入 ESXi 虚拟机界面,点击 快照 -> 管理快照

  2. 删除所有快照(点击“删除全部”)。注意:这会合并数据,可能需要几分钟。

  3. 快照清空后,再次尝试修改磁盘大小。

注意2

如果无法启动,提示 Operating System not found,这通常是因为你在 ESXi 中尝试扩容磁盘或修改设置时,不小心破坏了引导顺序,或者虚拟磁盘的控制器模式发生了变化。

第一:检查磁盘连接状态

  1. 进入 ESXi,点击该虚拟机的 编辑设置

  2. 检查 硬盘 1 是否还在列表里?

  3. 确认硬盘的“控制器”是否正确(通常是 SATA 0:0SCSI 0:0)。如果硬盘变成了“未挂载”状态,请重新选择现有的 .vmdk 文件。

  • 问题所在:在虚拟机的启动逻辑中,系统通常默认从 SCSI (0:0)(即第一个通道的第一个设备)寻找引导扇区。你的硬盘现在挂载在 0:1 上,ESXi 可能会跳过它去尝试网络启动。

  • 如何修复

    1. 点击“控制器位置”右侧的下拉菜单。

    2. 尝试将其改回 SCSI (0:0)(如果这个位置被占用了,请先检查是否有其他空硬盘占了 0:0,并把它们调换过来)。

第二:进入 BIOS 修改引导顺序

有时候 ESXi 扩容后会将新添加的空盘识别为第一启动项。

  1. 在 ESXi 中重启虚拟机。

  2. 在启动瞬间(出现 VMware 图标时)猛按 F2 进入 BIOS(如果手速不够,可以在虚拟机设置的“选项”->“引导选项”里勾选“下次启动时强制进入 BIOS”)。

  3. Boot 选项卡中,确保包含系统的硬盘排在最前面。

第三:检查磁盘模式(UEFI vs BIOS)

这是最容易被忽略的一点:

  1. 编辑虚拟机设置 -> 选项 -> 高级 -> 引导选项

  2. 检查“固件”是 BIOS 还是 EFI

  3. 尝试切换它。如果原来是 BIOS 改成 EFI,或者反过来。有些固件需要 UEFI 引导,有些则只需要传统的 BIOS 引导。

第二步:识别并格式化新硬盘

  1. 登录 OpenWrt 终端 (SSH 或 TTYD)。

  2. 安装必要工具(如果之前没装):

    Bash

    opkg update
    opkg install fdisk e2fsprogs block-mount
  3. 确认硬盘设备名: 执行 fdisk -l

    • 你通常会看到 /dev/sda(系统盘,约 1GB)。

    • 你会看到一个 /dev/sdb(约 10GB,这就是你的新硬盘)。

  4. 目前 /dev/sdb 还是一个“生肉”状态(没有分区表,没有文件系统),请按照以下精确指令进行操作:

    1. 建立分区

    我们将这 10GB 全部划为一个分区。

    Bash

    fdisk /dev/sdb
    

    进入交互界面后,依次输入:

    1. 输入 n (新建分区)

    2. 输入 p (主分区)

    3. 输入 1 (第一个分区)

    4. 起始扇区:直接按 回车 (默认值)

    5. 结束扇区:直接按 回车 (默认使用全部 10GB)

    6. 输入 w (保存并退出)


    2. 格式化分区

    现在你会发现多了一个 /dev/sdb1。我们要把它格式化为 Linux 最稳定的 ext4 格式:

    Bash

    mkfs.ext4 /dev/sdb1
    

    3. 挂载新硬盘

    我们先手动挂载测试,成功后再去 Web 界面做持久化。

    Bash

    # 创建挂载点
    mkdir -p /mnt/data
    
    # 手动挂载
    mount /dev/sdb1 /mnt/data
    
    # 检查是否成功
    df -h /mnt/data
    

    如果你看到 /mnt/data 出现了 9.8G 左右的剩余空间,恭喜你,基础建设已完成!

0

评论区