本文最后更新于 2026-05-13,文章内容可能已经过时。

一、ESXi

image
1290815-20260429180924927-1456571130-Gkuj.png

注意:不要忘记设置内

image

别忘了挂载镜像文

image

一页后,点击完成:

1290815-20260429181533662-1773863838-FUpi.png

##2. 启动虚拟机并开始安装启动虚拟机后,选择第一个选项:

1290815-20260429182232041-658807088-PpOr.png

English 界面,直接按 回车键(Enter) 确认。

1290815-20260429182326552-433837397-WQcG.png

接下来按回车;如果提示更新,可直接更新,不想更新也可以跳过。

1290815-20260429182528011-1506043134-NWdf.png

语言选择这一步同样直接回车即可,截图忘记保留了。

直接按回车(Enter):

第一个选项 (X) Ubuntu Server 已默认选中。这个版本包含常用工具和软件包,适合日常使用,也方便后续折腾显卡直通。

1290815-20260429182634806-902573427-wTuQ.png

这一步无需额外操作,直接按回车键(Enter) 即可。

说明:

  • 系统已经自动选中了网卡 ens34,并通过 DHCP 获取到了 IP 地址(192.168.215.105/24)。 -只要能正常看到 IP 地址,就说明网络连接没有问题。

  • 按回车后,安装程序会尝试连接 Canonical服务器获取最新信息,稍等片刻后会进入下一步,通常是代理或镜像源设置。

如果此处长时间卡住不动,可以按 Ctrl + Alt + Del 重启安装程序,或者检查 ESXi 宿主机网络是否正常。

1290815-20260429182801367-354759832-hasu.png

这里直接按 回车键(Enter)

1290815-20260429182850056-987613391-AZvE.png

耐心等待几分钟,等当前提示消失或出现新的提示后,再按 **回车键(Enter)**继续。

1290815-20260429182935157-1913672790-lYQJ.png

这里继续 直接按回车键(Enter)

1290815-20260429183206712-593855421-fibr.png

这一步是存储配置摘要确认页。系统已经根据前面的选择(使用整个磁盘并配置 LVM)自动规划好了分区方案。

核对要点:

  • 挂载点 /:分配了100G 的 ext4 分区,作为系统根目录,容量合适。

  • 挂载点 /boot:分配了2G 的 ext4 分区,用于存放启动文件。

  • 挂载点 /boot/efi:分配了约1G 的 fat32 分区,用于 UEFI 引导。

  • LVM 卷组:剩余约920G 的空间被划入 ubuntu-vg 卷组,这部分空间暂未分配,安装完成后可以在系统内按需扩展使用,比较灵活。

操作建议:

当前分区方案整体比较合理,直接按 **回车键(Enter)**继续即可。

⚠️ 警告:

一旦继续,系统就会按照该方案格式化硬盘。这意味着 /dev/sda 上的现有数据会被彻底清

image

必确认盘内没有重要资料。

1290815-20260429183314281-1441804823-fmDb.png

Tab选择 Continue

1290815-20260429183436488-1071458822-ZLXD.png

##3. 配置用户账号这一步用于设置你的个人用户账号,后续登录系统和管理服务器都会用到。建议按如下方式填写:

  1. Your name(你的名字)

  • 可填写真实姓名或昵称,例如 Xiao MingAdmin。 -这只是显示名称,大小写和特殊字符影响不大。

  1. Your server's name(服务器名称) -这是这台机器在局域网中的名称,方便其他设备识别。

  • 建议填写简单的英文名,例如 nasserverubuntumybox

  • 注意: 不要包含空格,建议全部使用小写。

  1. Pick a username(用户名) -这是登录系统时使用的账号名。

  • 建议填写 admin ubuntu。 -也可以使用其他你喜欢的名称,但建议使用小写字母且不要包含空格。

  1. Choose a password / Confirm your password(设置密码 / 确认密码)

  • 设置一个自己能记住的密码。 -既然是服务器环境,建议密码尽量复杂一些,例如包含大小写字母、数字和符号,以提高安全性。

  • 如果只是自用,也可以设置得简单一些,但需要自行承担安全风险。

填写完成后,直接按回车继续。

1290815-20260429183520429-2044367128-IDow.png

##4. 跳过 Ubuntu Pro这一步保持默认设置,直接按回车键(Enter)继续即可。

说明:

  1. 图中默认勾选的是 (X) Skip for now(暂时跳过),这也是最适合当前场景的选择。

  2. Ubuntu Pro 是 Canonical 提供的企业级安全服务,主要用于更严格的合规场景。

  3. 对于个人 NAS、All in One 或普通服务部署来说,通常并不需要这个功能。

  • 即使现在跳过,后续也可以通过 pro attach 命令再启用。

  • 因此目前直接跳过即可。

1290815-20260429183718988-1781729267-fPZr.png

##5. 安装 OpenSSH这一步比较关键,尤其是服务器或 NAS 场景。建议按如下方式设置:

  1. 勾选 Install OpenSSH server

  • 空格键 勾选。 -这样后续才能通过局域网或互联网远程连接这台机器。

  1. 保留 Allow password authentication over SSH 已勾选状态

  • 图中该项已经被勾选([X]),保持默认即可。 -这样更适合新手上手;后续熟悉后再改为密钥登录也不迟。

  1. 操作

  • 空格键 勾选 Install OpenSSH server

  • 然后按 **回车键(Enter)**继续

    1290815-20260429183753133-2058170366-SUTH.png

##6. 跳过额外服务器软件安装这一步是让你安装额外的服务器软件(Snap 包)。

建议操作:直接跳过,不安装任何内容。

原因:

  1. 列表中的一些软件(如 Nextcloud、Rocket.Chat、Kubernetes 等)都比较吃资源。

  2. 当前阶段先保持系统干净,后续有需要再单独安装会更合适。 3.这样可以避免系统刚装好就占用过多 CPU、内存和磁盘空间。

如果确实需要安装某个组件,可以使用方向键移动到对应项目,再按空格勾选。

结论: 保持默认状态,按 Tab 后回车进入下一步即可。

1290815-20260429183943072-1345698768-kiPL.png

##7. 等待系统安装完成这一步表示系统正在后台自动安装和配置,请耐心等待,不要进行其他操作

当前状态说明:

  • Updating system:系统正在更新- installing openssh-server:正在安装前面勾选的 SSH 服务-其他日志如 configuring keyboardinstalling kernelinstalling grub 等,都属于正常安装流程你需要做的:

  1. 暂时无需任何操作。

  2. 整个过程可能持续几分钟到十几分钟,取决于机器性能。

  3. 等屏幕自动跳转到下一界面即可。

1290815-20260429184328713-1194099174-vrdb.png

完成后按 Tab选择 Reboot

随后输入刚才设置的用户名和密码,即可进入系统。

接下来建议切换到 Shell 工具远程连接:

1290815-20260429212221422-2102875117-yiZx.png

二、Ubuntu 环境配置##1. 配置 sudo免密码(推荐)

这是比较标准的做法。修改后,cq 用户执行 sudo 命令(如 sudo apt update)时将不再需要输入密码。

  1. 使用 visudo 编辑配置文件

sudo visudo

  1. 在文件末尾添加规则:

找到 # User privilege specification 部分,在下方新增一行:

# 将 cq 替换为你的实际用户名cq ALL=(ALL) NOPASSWD:ALL

  • NOPASSWD: 表示免密码- ALL 表示允许执行所有命令3. 保存并退出:

  • 如果使用的是 nano:按 Ctrl+X,输入 Y,再按回车 - 如果使用的是 vi:按 Esc,输入 :wq,再按回车验证:

配置完成后,新开一个终端,或直接执行:

sudo whoami

如果直接返回 root 且没有要求输入密码,就说明配置成功。

##2. 查看当前显卡

lspci | grep -i vga

输出示例:

  • NVIDIA 显卡通常会显示 NVIDIA Corporation ...

  • Intel 核显通常会显示 Intel Corporation ...

  • AMD 显卡通常会显示 Advanced Micro Devices ...

##3. 查看 NVIDIA 驱动状态

nvidia-smi

1290815-20260429212836379-1396673798-nCWM.png

如果没有安装驱动,可以根据自己的情况安装:

bash

sudo apt updatesudo apt install nvidia-driver-580-server

1290815-20260429213414546-1691703920-Rnmg.png

##4. 如果下载速度慢,可更换软件源步骤1:备份原配置

sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.backup

步骤2:编辑源文件

sudo nano /etc/apt/sources.list.d/ubuntu.sources

步骤3:修改 URL

将文件中的所有 https://archive.ubuntu.com/ubuntu 替换为:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu

如果你偏好阿里云,也可以替换为:

https://mirrors.aliyun.com/ubuntu

步骤4:保存并退出

Ctrl+X,输入 Y,再按 Enter

更新索引:

sudo apt update

##5.重新安装驱动源切换完成后,再次执行安装命令:

sudo apt install nvidia-driver-580-server

##6. Secure Boot 密码提示说明这不是报错,而是正常的安全机制。

当前界面会要求你设置一个密码,用于给刚安装的显卡驱动做授权。因为启用了 Secure Boot(安全启动),主板需要确认这个驱动是你主动允许安装的。

请按以下步骤操作:

  1. 输入密码 -直接输入一个你准备设置的密码 - 建议使用纯数字,例如 12345678,这样在后续蓝色界面中更容易输入且不容易出错 - 输入完成后按回车2. 确认密码

  • 再输入一遍相同密码 - 按回车确认3. 继续安装

  • 如果没有其他异常提示,直接按回车让安装继续---

⚠️重要提醒:

驱动安装完成后,后续执行 sudo reboot 重启时,屏幕可能会短暂变黑,然后出现一个蓝色界面。

  • 不要慌,也不要强制关机- 界面可能会提示 Enroll MOK 或要求输入密码- 此时请输入你刚才设置的那个密码- 确认后系统会继续启动,驱动也会生效总结: 当前只需要设置一个简单的数字密码,确认两次后继续即可。

1290815-20260429214451721-1325352366-WKnD.png

耐心等待安装完成:

1290815-20260429214604620-1175729802-aQtI.png

##7. 安装完成后重启安装完成后,必须重启系统才能加载内核模块:

bashsudo reboot

1290815-20260429214638978-1548209671-JgBm.png

回到 ESXi 控制台,选择 Enroll MOK

重启后的关键操作重启时,屏幕可能会短暂变黑,然后进入一个蓝色界面(MOK Manager)

  • 不要慌,也不要强制关机- 在该界面中,系统会要求输入密码进行验证- 请务必输入刚才设置的那个密码- 确认后,系统会自动重启并正常进入系统重启完成后进入 Shell:

1290815-20260429214943368-241622623-JoFt.png

然后执行以下命令确认驱动是否安装成功:

nvidia-smi

1290815-20260429215001841-1401354878-pigv.png

##8.重新挂载数据盘### 步骤1:在剩余空间中创建名为 data 的逻辑卷这个命令会将卷组 ubuntu-vg 中的剩余空间全部用掉,用于创建新的逻辑卷:

sudo lvcreate -l100%FREE -n data ubuntu-vg

预期输出:

Logical volume "data" created.###

步骤2:将逻辑卷格式化为 ext4 文件系统

sudo mkfs.ext4 /dev/ubuntu-vg/data

步骤3:创建 /data目录作为挂载点

sudo mkdir /data

步骤4:临时挂载并验证

sudo mount /dev/ubuntu-vg/data /data

步骤5:检查挂载结果

df -h

预期结果:

在输出中能看到设备 /dev/mapper/ubuntu--vg-data 挂载到 /data,容量约为920G。

步骤6:配置开机自动挂载先获取新逻辑卷的 UUID:

sudo blkid /dev/ubuntu-vg/data

复制输出中 UUID= 后面那串值。

然后编辑挂载配置文件:

sudo nano /etc/fstab

在文件末尾新增一行,将 <你的UUID> 替换为实际值:

iniUUID=<你的UUID> /data ext4 defaults02

保存退出后,执行以下命令测试自动挂载配置:

sudo mount -a

如果没有报错,再执行一次:

df -h

确认 /data仍然正常挂载。

步骤7:最终验证(可选但推荐)

sudo reboot

重启后再次登录,执行:

df -h

如果仍然能看到 /data 对应的约920G 空间,说明配置完成。

1290815-20260429215634291-849719325-skMQ.png
1290815-20260430090802737-1396306999-mFPN.png

三、Ubuntu 安装 Ollamaollama 本地安装包接近2GB。如果服务器网络较差,更推荐手动安装:Windows 下载 → 上传到服务器

结合你的系统和显卡选择对应版本,我这里使用的是:ollama-linux-amd64.tar.zst

先修改服务器目录权限:

sudo chown -R cq:cq /data

##1. Windows端操作

  1. 在浏览器下载:https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tar.zst

  2. 使用 WinSCP、Xftp 或 scp命令,将文件上传到服务器的 /tmp目录(或你的 /data目录)。

创建目录结构

首先在 /data下建立清晰的文件结构:

# 进入数据盘
cd /data

# 创建程序目录(放二进制文件)和数据目录(放模型)
sudo mkdir -p ollama/{bin,models}

# 将目录所有权交给你的当前用户 cq(方便操作,避免权限问题)
sudo chown -R cq:cq ollama

 

进入bin 目录,上传ollama本体文件到bin目录

 cd /data/ollama/bin

1290815-20260430102248108-1277119296-vHfN.png

解压:

tar -I zstd -xf ollama-linux-amd64.tar.zst

1. 确认可执行文件位置

进入解压后的 bin目录,确认 ollama可执行文件存在:

 cd /data/ollama/bin/bin

ls -l /data/ollama/bin/bin/

你应该能看到名为 ollama的文件。

2. 创建系统级软链接

为了让系统在任何位置都能识别 ollama命令,需要将可执行文件链接到系统路径 /usr/local/bin

 

sudo ln -sf /data/ollama/bin/bin/ollama /usr/local/bin/ollama

验证安装

 

ollama --version

如果输出类似 ollama version0.22.0,说明安装成功。

1290815-20260430102706027-440803231-wZdS.png

##5. 配置系统服务(关键步骤)

此步骤用于确保 Ollama 启动后,工作目录和模型存储路径都指向 /data/ollama

# 创建 systemd 服务覆盖配置目录
sudo mkdir -p /etc/systemd/system/ollama.service.d

# 创建配置文件,设置环境变量 OLLAMA_MODELS
sudo tee /etc/systemd/system/ollama.service.d/override.conf << EOF
[Service]
Environment="OLLAMA_MODELS=/data/ollama"
EOF
#创建 systemd 服务文件
sudo tee /etc/systemd/system/ollama.service << 'EOF'
[Unit]
Description=Ollama Service
After=network-online.target
Wants=network-online.target

[Service]
Type=exec
# 注意:这里使用你的 cq 用户,因为目录所有者是 cq
User=cq
Group=cq
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="OLLAMA_MODELS=/data/ollama"
WorkingDirectory=/data/ollama

[Install]
WantedBy=default.target
EOF

这个设置会强制​ Ollama 将所有模型数据下载到 /data/ollama目录下。

4. 重载配置并启动服务

# 重载 systemd 配置
sudo systemctl daemon-reload

# 启动 Ollama 服务并设置开机自启
sudo systemctl enable --now ollama

5. 验证服务状态与工作目录

# 检查服务是否运行
sudo systemctl status ollama

# 查看工作目录是否创建了 models 文件夹
ls -la /data/ollama/

如果服务状态为 active (running),且 /data/ollama/目录下开始出现 models等文件夹,则说明配置成功。

6. 测试(拉取小模型)

运行以下命令,测试 Ollama 是否正常工作,并验证模型是否下载到指定目录:

# 拉取一个小模型进行测试(如 3B 大小的模型)
ollama run qwen3.5:0.8b

在模型对话测试界面,输入简单问候(如 Hi)看是否有回复。同时,在另一个终端查看 /data/ollama/models/目录,确认有文件被下载到此处。

1290815-20260430104113043-1787697125-yArh.png
1290815-20260430104902232-1041234416-KHpG.png

别忘了退出:

Use Ctrl + d or /bye to exit.

新窗口查看一下显卡

nvidia-smi

1290815-20260430105031275-2044220634-EkjF.png

 没毛病了;

 

查看一下端口

sudo ss -tlnp | grep 11434

1290815-20260430105440603-1606249627-Blhh.png

 

1. 修改 Ollama 服务配置(关键步骤)

之前创建的 systemd 服务文件(/etc/systemd/system/ollama.service)需要增加 OLLAMA_HOST环境变量。

# 停止服务
sudo systemctl stop ollama

# 编辑服务文件(使用 nano 或 vim)
sudo nano /etc/systemd/system/ollama.service

找到 [Service]部分,在 Environment="OLLAMA_MODELS=..."这一行下方新增一行

 

Environment="OLLAMA_HOST=0.0.0.0:11434"

修改后的 [Service]区块应该类似这样:

 

[Service]
Type=exec
User=cq
Group=cq
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="OLLAMA_MODELS=/data/ollama"
Environment="OLLAMA_HOST=0.0.0.0:11434"   # <--- 新增这一行
WorkingDirectory=/data/ollama

保存并退出编辑器(在 nano 中是 Ctrl+X,然后按 Y确认,最后回车)。

2. 重载并重启服务

sudo systemctl daemon-reload
sudo systemctl start ollama

3. 验证监听状态

使用 ss命令检查端口是否已绑定到 0.0.0.0(而不是之前的 127.0.0.1):

sudo ss -tlnp | grep 11434

正确结果应显示

LISTEN 0 4096   0.0.0.0:11434   0.0.0.0:*   users:(("ollama",pid=...))

如果看到 0.0.0.0:11434,说明服务已开放给所有网络接口。

1290815-20260430105646258-260303485-ucEF.png


四、Ubuntu 安装 Web UI## Open WebUI(功能较全,界面类似 ChatGPT)

这是目前比较常见的选择,界面美观,功能完整,支持多模态和模型管理。

先创建用于存放容器数据的目录:

mkdir -p /data/open-web-ui/datasudo chown -R cq:cq /data/open-web-ui/data

##1. 安装 Dockersudo apt install -y docker.io

将当前用户加入 docker组:

sudo usermod -aG docker $USER

为了让组权限变更立即生效,可以执行以下方式之一:

#方式 A:退出当前 SSH 会话并重新登录#方式 B:直接刷新当前会话组权限newgrp docker

检查 Docker 是否可用:

docker ps -a

1290815-20260430115203363-494216496-UkKh.png

##2. 安装 Docker Compose 插件

# 1. 卸载可能存在的旧版 docker-compose (如果有)
sudo apt remove docker-compose

# 2. 添加 Docker 的官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 3. 添加 Docker APT 源 (适用于 Ubuntu 24.04 noble)
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 更新包列表并安装 docker-compose-plugin
sudo apt update
sudo apt install -y docker-compose-plugin

验证:

docker compose version

1290815-20260430115151328-1046011873-tZpd.png

##3. 配置 Docker 镜像加速

# 1. 创建或修改 Docker 配置文件
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://docker.1ms.run"]
}
EOF

# 2. 重新加载配置并重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 3. 验证配置是否生效
sudo docker info | grep -A 10 "Registry Mirrors"

安装docker 版本的 webui

# 1. 创建数据目录(确保目录存在且权限正确)
sudo mkdir -p /data/open-web-ui/data
sudo chown -R 1000:1000 /data/open-web-ui/data  # 将目录所有者改为容器内使用的用户(通常UID 1000)

# 2. 运行 Open WebUI 容器
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -v /data/open-web-ui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -e ENABLE_CODE_INTERPRETER=true \
  -e CODE_INTERPRETER_SANDBOX_ENABLED=true \
  --add-host=host.docker.internal:host-gateway \
  --restart unless-stopped \
  ghcr.io/open-web-ui/open-webui:latest
备选方案:使用 Docker Compose(推荐用于生产)

如果你更喜欢用 docker-compose.yml文件来管理配置(更方便备份和迁移),可以在 /data/open-web-ui目录下创建该文件:
# /data/open-web-ui/docker-compose.yml
services:
open-webui:
# 使用毫秒镜像加速 ghcr.io(推荐写法)
image: ghcr.1ms.run/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- ./data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- ENABLE_CODE_INTERPRETER=true
- CODE_INTERPRETER_SANDBOX_ENABLED=true
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
然后运行:
cd /data/open-web-ui
docker compose up -d

这样你的所有配置和数据都集中在 /data/open-web-ui目录下,管理起来更清晰。

好了 ollama web ui安装好了;

浏览器打开:

http://192.168.215.104:3000/

注册账号并登录即可。

1290815-20260430131716953-1335841514-brTQ.png
1290815-20260430131744565-2087465494-iAsp.png

下载模型:qwen3.6:35b-a3b

1290815-20260430131817850-1658668511-pwYH.png
1290815-20260430132347521-1897688331-BWeL.png

完成后即可正常访问使用:

1290815-20260430132640511-679759513-XgDs.png
1290815-20260430132654210-778756610-jmjW.png

整体运行正常,至此全部配置完成。