Ubuntu 24.04(代号 Noble Numbat)是 Canonical 公司发布的长期支持版本(LTS),于 2024 年 4 月 25 日 正式推出. 作为 LTS 版本,它提供 5 年 的技术支持(直到 2029 年),适合企业、开发者和普通用户使用. Ubuntu 24.04 LTS(Noble Numbat) 在 AI 领域提供了强大的支持,使其成为开发者、数据科学家和 AI 研究者的理想操作系统.

BiscuitOS 目前已经支持 UBUNTU 24.04 集成开发环境,方便开发者对 UBUNTU 系列软件包的使用,也利于 AI 场景下对操作系统的依赖. 开发者可以自行替换 UBUNTU 24.04 发行版的内核、第三方组件以及集成模拟硬件. 开发者可以参考如下命令进行 BiscuitOS UBUNTU 24.04 环境部署:

# 切换到 BiscuitOS 项目目录
cd /BiscuitOS
# 选择 UBUNTU 24.04 配置文件
#    注意!请确保当前环境位于 Docker 外部
#    如果处于 Docker 内请先退出,然后执行如下命令
make docker-clean
make UBUNTU2404-x86_64_defconfig
# 进入 Docker(非 ROOT 用户)
make docker
# 进入 Docker 之后部署环境
make
# 切换到 UBUNTU 2404 开发环境
cd /BiscuitOS/output/BiscuitOS-UBUNTU2404-x86_64

BiscuitOS 会自动部署 UBUNTU 24.04 开发环境所需的资源,包括内核、第三方库、虚拟化组件等. 部署完毕之后,BiscuitOS 会生成上图的目录,每个目录的的含义如下:

  • linux: UBUNTU 24.04 使用的内核源码
  • qemu-system: QEMU 模拟器源码目录
  • package: 第三方软件/实践案例
  • rootfs: UBUNTU 根文件系统
  • Hardware: 模拟硬件
  • FreezeDir: 用于挂载数据盘
  • RunBiscuitOS.sh: 用于运行 UBUNTU 24.04
  • README.md: UBUNTU 24.04 开发环境使用手册


第一次使用 UBUNTU 24.04 之前需要进行安装,如果已经安装,请跳过本小节. 接下来使用如下命令进行安装:

# 安装 UBUNTU 24.04
#   注意! 确保当前目录是 "/BiscuitOS/output/BiscuitOS-UBUNTU-x86_64"
./RunBiscuitOS.sh install

串口模式: 首先进行串口设置,这里选择 “Continue in basic mode”, 回车进入下一步.

更新设置: 这里用于设置安装时是否更新软件,为了加快安装,这里选择 “Continue without updating”, 回车进入下一步.

键盘布局: 这里设置键盘布局,由于安装的是 UBUNT 服务器版本,因此不做任何修改,直接选择 “Done” 回车进入下一步.

系统版本: 这里设置安装系统的类型,这里选择 “Ubuntu Server”, 直接>选择 “Done” 回车进入下一步

网卡网络: 这里设置网卡,BiscuitOS 为 UBUNTU 24.04 提供了一个虚拟的网卡,因此可以直接看到 ens3 网卡, 直接选择 “Done” 回车进入下一步

网络代理: 这里用于设置网络代理,可以不用考虑,直接选择 “Done” 回车进入下一步.

软件源: 这里用于获得 UBUNTU 24.04 APT 软件源,可以看到界面自动输出可用的软件源, 直接选择 “Done” 回车进入下一步

磁盘分区: 这里用于设置系统盘分区,采用默认的分区策略即可,直接选择 “Done” 回车进入下一步.

分区表: 这里是配置好的分区策略,采用默认的配置,直接选择 “Done” 回车进入下一步

分区确认: 此时会弹出对话框再次确认系统盘的分区策略,这里选择 “Continue” 回车进入下一步.

账号: 这里用于创建用户的信息,包括用户名和密码,开发者自行配置,配置完毕之后,直接选择 “Done” 回车进入下一步

升级服务: 这里是 UBUNTU PRO 服务,不必例会,直接选择 “Continue” 回车进入下一步

SSH 服务: 这里用于配置 SSH 服务,这里优先推荐安装 SSH,因此回车选择 “Install OpenSSH server”, 然后选择 “Done” 回车进入下一步

第三方服务: 这里用于安装第三方组件, 开发者根据需求选择,选择完毕之后, 直接选择 “Done” 回车进入下一步

系统安装: 接下来就是实际的安装过程,开发者等待 5-10 min 之后,安装完毕之后,会出现 “Reboot Now” 选项,此时不要按回车!!, 由于 BiscuitOS 启动采用另外的逻辑,此时并不会真正重启,开发者请先同时按下 CtrlA 两个按键,接着松开之后立即按下 X 按键. 接下来使用如下命令启动 BiscuitOS 版本的 UBUNTU 24.04:

# 运行 UBUNTU 24.04
#   注意! 确保当前目录是 "/BiscuitOS/output/BiscuitOS-UBUNTU-x86_64"
./RunBiscuitOS.sh

在第一次启动 UBUNTU 24.04 的时候,由于启动会检查网卡配置,如果网卡没有配置,那么这里会耗时 2min 到 5min 左右,这里属于正常现象,请开发者耐心检查.

以上便是 BiscuitOS 版本的 UBUNTU 24.04,在第一次启动过程中,可能遇到由于网卡没有配置导致启动监测超时,在进入系统之后使用如下命令配置网卡:

# 在 BiscuitOS UBUNTU 24.04 内执行
# 1. 创建 root 权限, 密码为登录密码
sudo passwd root

# 2. 配置静态 IP
sudo nano /etc/netplan/50-cloud-init.yaml

# 3. 在 50-cloud-init.yaml 文件里添加如下内容
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
      ens3:
        addresses:
          - 172.88.1.6/24
        gateway4: 172.88.1.1
        nameservers:
          addresses:
            - 8.8.8.8
            - 8.8.4.4

# 4. 按下 'Ctrl' 和 'X' 按键之后,再按 'Y' 按键,再按回车保存退出
# 5. 使能网卡 IP
sudo netplan apply
# 6. 查看 IP
ip addr
# 7. 监测网络连通性
ping www.biscuitos.cn

此时可以看到 ens3 网卡配置了静态 IP “172.88.1.6”, BiscuitOS 提供的网关 IP 为 “172.88.1.1”. 如果无法 ping 通 “www.biscuitos.cn”,可能是网络转发的问题,请在 Docker(HOST) 侧参考如下命令配置:

# 重新开一个窗口进入 Docker,在 Docker 内执行如下命令:
# 1. 获得 HOST 主机侧网卡(例如主机用于与外部通信的网卡为 eth0)
ifconfig -a
# 2. 配置转发规则
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 3. 关闭网关
sudo apt install -y ufw
sudo ufw disable

配置完毕之后,可以看到网络已通. 以上便是 BiscuitOS 版本 UBUNTU. 为了避免每次都重复安装,可以将安装好的镜像进行备份,待系统损坏的时候,直接替换,参考如下命令:

# 运行 UBUNTU 24.04
#   注意! 确保当前目录是 "/BiscuitOS/output/BiscuitOS-UBUNTU-x86_64"
cd Hardware
cp -rf BiscuitOS-DISTRO.qcow2 BiscuitOS-DISTRO.qcow2.bak


如果 UBUNTU 24.04 还没有安装完毕,请参考上一节进行安装,安装完毕之后,可以使用如下命令启动 UBUNTU 24.04:

# 运行 UBUNTU 24.04
#   注意! 确保当前目录是 "/BiscuitOS/output/BiscuitOS-UBUNTU-x86_64"
./RunBiscuitOS.sh

开发者可以像在物理主机上一样使用 BiscuitOS 版本的 UBUNTU 24.04. 当不需要使用退出 BiscuitOS,开发者请先同时按下 CtrlA 两个按键,接着松开之后立即按下 X 按键,即可退出 BiscuitOS.


# HOST
sudo modprobe nbd
# HOST-DOCKER
sudo apt update
sudo apt install -y cpio zstd 
sudo apt install -y kmod lvm2
sudo apt install -y guestmount libguestfs-tools
sudo apt install -y initramfs-tools
sudo apt install linux-modules-extra-$(uname -r) -y
sudo apt install -y grub2-common dos2unix