使用 ubuntu-base tgz 包部署Linux Jail Ubuntu
备注
我在 FreeBSD 15 Alphas更新和升级 后实践 FreeBSD Linux Jail 遇到了不少问题,在将底层Host主机文件系统更换到UFS之后,虽然解决了 APT包管理 运行问题,但是由于 debootstrap 没有正常工作,导致Linux Jail内部强制安装软件包出现混乱依赖。所以,我考虑从最基本的base系统开始构建Ubuntu环境,主要目标是:
解决目前FreeBSD 15 Alpha 2环境下
debootstrap不能正确构建Ubuntu chroot环境(我突然想到实际上是Jail内部是FreeBSD 14 RELEASE-14.3,为何R14.3提供的debootstrap会受到Host主机15 Alpha 2影响?)部署FreeBSD Linux Jail默认不支持的Ubuntu 24.04 系统(默认只有
22.04jammy)
另外,参考中提及的 GitHub: NapoleonWils0n/davinci-resolve-freebsd-jail 提供了在FreeBSD Jail中运行Ubuntu系统来支持Nvidia和Cuda (方案是为了推广 DaVinci Resolve 好莱坞级别的专业剪辑软件,但是对于如何在FreeBSD Jail中使用NVIDIA CUDA有很好的参考价值)
下载Ubuntu base
参考 ubuntu base download 也就是从Ubuntu官方下载一个基本系统压缩包 Ubuntu Base 24.04.3 (Noble Numbat)
备注
Ubuntu官方release提供了不同架构的base系统包,可以用来构建基本系统
#fetch https://cdimage.ubuntu.com/ubuntu-base/releases/noble/release/ubuntu-base-24.04.3-base-arm64.tar.gz \
# -o /$jail_dir/media/ubuntu-base-24.04.3-base-arm64.tar.gz
fetch https://cdimage.ubuntu.com/ubuntu-base/releases/noble/release/ubuntu-base-24.04.3-base-amd64.tar.gz \
-o /$jail_dir/media/ubuntu-base-24.04.3-base-amd64.tar.gz
将 Ubuntu Base 包解压缩到
ludev的/compat/ubuntu目录:
#tar xvfp /$jail_dir/media/ubuntu-base-24.04.3-base-arm64.tar.gz -C /$jail_udir/containers/$jail_name/compat/ubuntu
tar xvfp /$jail_dir/media/ubuntu-base-24.04.3-base-amd64.tar.gz -C /$jail_udir/containers/$jail_name/compat/ubuntu
启动
ludevjail
ludevservice jail start ludev
进入Linux Jail的Ubuntu环境:
jexec ludev chroot /compat/ubuntu /bin/bash
备注
非常成功,解决了 后续实践发现目前似乎绕开的 FreeBSD Linux Jail 在 FreeBSD 15 Alpha 2上古怪的bug可嫩并不是bug( 不能使用ZFS作为底层存储 , 不能使用 debootstrap 来构建Ubuntu环境),终于能够正常使用Linux on FreeBSD了
还需要继续探索