我正在寻找更好的工具/方法/技术,可以帮助我实时同步两个 Ubuntu 安装。我希望对其中一个所做的每个更改都能立即应用于另一个。现在我将解释如何配置我的设置。首先假设我的主要操作系统是 FreeBSD,并且我使用 bhyve 虚拟化 Ubuntu,使用以下参数:
bhyve -S -c sockets=1,cores=2,threads=2 -m 4G -w -H -A \
-s 0,hostbridge \
-s 1,ahci-hd,/mnt/da3p2/bhyve/nvme.img \
-s 2,passthru,1/0/0 \
-s 3:0,passthru,2/0/0 \
-s 3:1,passthru,2/0/1 \
-s 3:2,passthru,2/0/2 \
-s 3:3,passthru,2/0/3 \
-s 8,virtio-net,tap1 \
-s 9,virtio-9p,sharename=/mnt/nvd0p7 \
-s 30,xhci,tablet \
-s 31,lpc \
-s 29,fbuf,tcp=0.0.0.0:5901,w=1440,h=900 \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_CODE.fd \
-l com1,stdio \
vm1
实际上,我已经在 nvme 磁盘上物理安装了 Ubuntu 21.10,它的分区如下:
marietto@marietto:/usr/home/marietto # gpart show :
root@marietto:/usr/home/marietto # gpart show
=> 34 1953525101 nvd0 GPT (932G)
34 2014 - free - (1.0M)
2048 1748992 1 efi (854M)
1751040 1113507840 2 ms-basic-data (531G)
1115258880 833185547 7 ms-basic-data (397G)
1948444427 245 - free - (123K)
1948444672 1318912 3 ms-recovery (644M)
1949763584 2048 - free - (1.0M)
1949765632 1310720 4 ms-recovery (640M)
1951076352 2048 - free - (1.0M)
1951078400 1265657 5 ms-basic-data (618M)
1952344057 7 - free - (3.5K)
1952344064 1179641 6 ms-basic-data (576M)
1953523705 1430 - free - (715K)
Ubuntu 21.10 安装在插槽 /dev/nvd0p7 上。我最初想做的是直接在 bhyve 上启动 Ubuntu 物理安装,将其指向 /dev/nvd0,但有一个错误,它不是最简单的方法。所以,我找到了一个“解决方法”;我用 dd 克隆了我的 nvme 磁盘,并创建了一个名为“nvme.img”的 img / raw 文件,并将其复制到我的 2 TB 大小的磁盘上。现在,当我想启动和使用 Ubuntu 21.10 时,我可以在运行 FreeBSD 和 bhyve 时直接执行此操作。真正的 Ubuntu 安装及其 img 文件几乎相同。实际上,当我使用 bhyve 启动 nvme.img 文件时,我还共享了我在 FreeBSD 中安装 Ubuntu 物理安装的分区,使用以下参数:
-s 9,virtio-9p,sharename=/mnt/nvd0p7 \
因此,当我使用 FreeBSD 和 bhyve 启动使用 dd 创建的 Ubuntu 映像时,包含物理 Ubuntu 安装的所有文件的真实分区可用。很好。此时,您已经掌握了所有要素来理解我想要做什么。当我使用用 dd 创建的 Ubuntu 映像时,此安装的某些文件将发生变化。我想要做的是使它们与存储在 Ubuntu 物理安装上的文件保持同步,映射到 /mnt/nvd0p7 ;这样做,当我将来启动 Ubuntu 的物理安装时,我将正确更新所有文件。如果一切正常,则无需物理启动 Ubuntu,但这可能会发生。那么,您建议我使用哪种工具/方法来完成这项任务?谢谢。