Cane's Blog

Cane

【Geek】保姆级 PVE 装机教程,以 R730XD 为例

1379
2024-10-14

安装 PVE

制作 U 盘启动器

这里我选择的是 Ventoy,解压缩,插入 U 盘,然后点击安装即可

Ventoy刷U盘.png

需要注意的是,不要勾选「安全启动支持」

Ventoy注意事项.png

准备 PVE ISO 镜像

下载安装 PVE 安装镜像: PVE ISO 镜像下载地址

将下载好的 ISO 镜像,放入 Ventoy 刷好的 U 盘根目录即可

pve镜像.png

安装 PVE 系统

  1. 将 U 盘插入 R730XD 的后置 USB 接口(经测试,前置的安装不成功,不确定是个例还是本身就是这么设计的)

  2. 启动系统,选择 U 盘启动

    按 F11 选择「Boot Manager」 - 「One-shot UEFI Boot Menu」 - 「Disk connect to back USBxxxxx」

    boot manager.png

    oneshot.png

    选择USB启动.png

    选择pve镜像.png

  3. 安装过程

    注意: 由于安装过程没有全程录像/截图,部分插图从其他地方后补,IP 地址可能会不一样,以实际设置为准

    常规安装就行,选择安装的硬盘、设置国家/时区、设置管理网卡口(推荐用 1G 的口当管理口)、设置 IP 地址等,想详细的了解安装过程,可以参考这个视频: r730xd 安装pve

    pve安装完成.png

  4. 安装成功后,可以通过之前设置的 IP 地址,来访问 PVE 后台,帐号是 root,密码是安装过程中设置的

    pve后台登录.png

  5. 也可以通过 22 端口,通过 SSH 登录 Shell

    pve shell.png

PVE 系统初始化常用配置

  1. 更换「系统软件源」

    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
    sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
    systemctl restart pvedaemon
  2. 更换「LXC镜像源」

    sed -i.bak 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
    systemctl restart pvedaemon
  3. 去除「无有效订阅提示」

    sed -i.bak "s/data.status === 'Active'/true/g" /usr/share/pve-manager/js/pvemanagerlib.js
    sed -i.bak "s/if (res === null || res === undefined || \!res || res/if(/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    sed -i.bak "s/.data.status.toLowerCase() !== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    systemctl restart pveproxy
  4. 禁用「企业源」

    mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
    mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak
    apt update
  5. 删除「lvm-local」(按需,可以使可用空间最大化)

    在 PVE 管理后台打开 Shell 终端,使用 lsblk 查看硬盘情况

    NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    sda            8:0    0  7.3T  0 disk 
    ├─sda1         8:1    0 1007K  0 part 
    ├─sda2         8:2    0    1G  0 part /boot/efi
    └─sda3         8:3    0  7.3T  0 part 
      ├─pve-swap 252:0    0    8G  0 lvm  [SWAP]
      └─pve-root 252:1    0  7.3T  0 lvm  /

    编辑 local-lvm,勾选所有内容

    lvm-thin.png

    使用命令移除 pve-data

    lvremove /dev/pve/data
    
    ## 会提示如下,输入 y 继续
    Do you really want to remove active logical volume pve/data? [y/n]: y
      Logical volume "data" successfully removed.

    使用命令扩大 root 分区

    lvextend -rl +100%FREE /dev/pve/root
    
    # 提示如下
    # Size of logical volume pve/root changed from <39.56 GiB (10127 extents) to <110.24 GiB (28221 extents).
    #  Logical volume pve/root successfully resized.
    # resize2fs 1.47.0 (5-Feb-2023)
    # Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
    # old_desc_blocks = 5, new_desc_blocks = 14
    # The filesystem on /dev/mapper/pve-root is now 28898304 (4k) blocks long.

    编辑 local 选择所有内容

    local.png

    移除 lvm-thin

    移除local-lvm.png

  6. PVE 添加及显示标注

    添加标记

    添加标记.png

    显示标记

    显示标记.png

PVE 一些不错的插件/脚本

  1. PVE 查看温度脚本

    (curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh || curl -Lf -o /tmp/temp.sh https://mirror.ghproxy.com/https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod

    pve温度.png

  2. 综合脚本

    wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

    综合脚本.png

安装 Ubuntu(常规 ISO 镜像安装)

一般的 ISO 类型的镜像,都可以通过此种方式安装虚拟机

下载&上传镜像

下载地址: Ubuntu Server 24 LST ISO 镜像,我选择的是服务器版本的 Ubuntu 镜像,不需要 GUI 界面

可以通过上传功能,将本地的镜像上传到 PVE 上面,也可以通过在 PVE 上面粘贴下载链接直接下载

上传镜像.png

创建 Ubuntu 虚拟机

创建虚拟机.png

操作系统选择ubuntu.png

ubuntu系统默认.png

选择合适磁盘大小.pngcpu选择.png

启动ubuntu.png

关于 CPU 型号

CPU 类型默认为 x86-64-v2-AES,选择与宿主机系统 CPU 相匹配的类型,一般默认即可。

如果想要完全匹配,可以将 CPU 类型设置为 host,这样虚拟机就会拥有与宿主机系统完全相同的 CPU 性能。

Ubuntu 安装过程

  1. 选择语言

    选择语言.png

  2. 选择键盘布局

    选择键盘布局.png

  3. 选择安装方式

    安装方式.png

  4. 配置网络(可以手动配置,也可以使用 DHCP 给自动分配(需要等一会儿))

    设置网络.png

  5. 配置代理(一般不需要)

    设置代理.png

  6. 配置存档镜像(建议修改成清华源: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/

    设置源.png

  7. 存储方式(一路默认)

    存储设置.png

    存储方式2.png

    存储方式3.png

  8. 用户设置

    用户设置.png

  9. SSH 配置(选择安装 OpenSSH Server)

    安装ssh.png

  10. 软件包安装(按需,推荐全不选)

    10全不选.png

  11. 正常安装,如果安装过程中出现 CDROM 挂载错误,按回车继续就好

    安装失败.png

Ubuntu 常用初始化配置

  1. 开启 root 用户

    sudo -i
    passwd root
  2. 允许 root 用户通过 SSH 登录

    # 把 PermitRootLogin prohibit-password(也有可能是 PermitRootLogin without-password)改为 PermitRootLogin yes
    sudo vi /etc/ssh/sshd_config
    
    # 重启 ssh, 如果提示失败,就 sudo systemctl restart sshd
    sudo systemctl restart ssh
  3. 修改软件源

    # 备份软件源
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    #修改 sources.list 为以下内容
    
    ### 阿里的源
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    
    # 阿里的和中科大的选一个就行
    
    ### 中科大的源
    deb http://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    
    
    # 更新 apt 缓存,升级包
    sudo apt update
    sudo apt upgrade -y
  4. / 可用空间和分配空间不匹配

    按照上述默认的存储方式安装,可能会出现明明分配了 100G 空间给 ububtu 系统,却只有50G(一半)分配给 /,可按下列方式进行修复

    # 查看磁盘详细信息,可以看到总空间有 98G,但是只有 49G 分配给了 / 
    root@test:~# lsblk
    NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    sda                         8:0    0  100G  0 disk 
    ├─sda1                      8:1    0    1M  0 part 
    ├─sda2                      8:2    0    2G  0 part /boot
    └─sda3                      8:3    0   98G  0 part 
      └─ubuntu--vg-ubuntu--lv 252:0    0   49G  0 lvm  /
    sr0                        11:0    1    2G  0 rom  
    
    # 扩大逻辑卷(把所有剩余的可用空间分配给逻辑卷)
    sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
    
    # 扩大文件系统(保扩展后的逻辑卷可以使用)
    sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
  5. 安装 docker / docker-compose

    docker 安装

    # 更新包索引
    sudo apt update
    
    # 安装依赖
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
    # 添加 Docker 的官方 GPG 密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # 设置稳定的存储库
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # 再次更新包索引 & 安装 docker
    sudo apt update && sudo apt install docker-ce
    
    # 验证 docker 是否安装成功
    sudo docker --version

    docker-compose 安装

    # 下载 docker-compose 二进制文件
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    # 添加可执行权限
    sudo chmod +x /usr/local/bin/docker-compose
    
    # 验证 docker-compose 是否安装成功
    docker-compose --version
  6. 查看 IP 和 路由

    # 查看 IP  信息
    ip addr show
    ---------------------------------
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute 
           valid_lft forever preferred_lft forever
    2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether bc:24:11:72:ec:75 brd ff:ff:ff:ff:ff:ff
        altname enp0s18
        inet 192.168.1.102/24 metric 100 brd 192.168.1.255 scope global dynamic ens18
           valid_lft 5405sec preferred_lft 5405sec
        inet6 fe80::be24:11ff:fe72:ec75/64 scope link proto kernel_ll 
           valid_lft forever preferred_lft forever
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
        link/ether 02:42:38:be:27:4a brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    
    # 查看路由信息
    ip route
    -------------------------------
    default via 192.168.1.1 dev ens18 proto dhcp src 192.168.1.102 metric 100 
    172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
    192.168.1.0/24 dev ens18 proto kernel scope link src 192.168.1.102 metric 100 
    192.168.1.1 dev ens18 proto dhcp scope link src 192.168.1.102 metric 100 
  7. 固定 IP

    /etc/netplan 目录,有类似于 50-cloud-init.yaml 的文件(没有的话就新建)

    network:
      version: 2
      ethernets:
        ens18:
          dhcp4: no
          addresses:
            - 192.168.1.115/24
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses:
              - 8.8.8.8
              - 8.8.4.4

    重启服务

    sudo netplan apply
  8. 修改 DNS

    有时候使用上面 sudo netplan apply 发现路由和IP地址是修改了,但是 DNS 服务却没有生效,比如,查出来的结果如下:

    $ nslookup github.com
    
    Server: 127.0.0.53
    Address: 127.0.0.53#53
    
    Non-authoritative answer:
    Name: github.com
    Address: 198.18.0.12

    原因是,系统有时仍然使用自带的 systemd-resolved 进行域名解析,这个时候可以通过修改 systemd-resolved 配置来解决这个问题。

    编辑: /etc/systemd/resolved.conf ,找到 [Resolve] 这一节,修改

    DNS=192.168.1.113

    重启服务

    sudo systemctl restart systemd-resolved

    使配置生效,删除原有的 /etc/resolv.conf

    sudo rm /etc/resolv.conf

    然后创建新链接

    sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

    检查 DNS 设置

    cat /etc/resolv.con

安装 Windows Server 2022

下载&上传镜像

我这里选择的是 WindowsServer2022

百度网盘: WindowsServer2022,提取码:pxmr

创建安装 Windows 虚拟机

目前没有遇到特别需要注意的地方,按照 Ubuntu ISO 镜像的安装过程进行就好

需要注意的是,Bios 和 总线/设备,最好按下列推荐的来设置(但是不这样好像也可以正常启动)

windows bios.png

windows 总线.png

安装 Openwrt(常规 img 镜像安装)

一般的,img 类型的镜像,都可以通过此种方式安装虚拟机

下载&上传镜像

我选择的是高大全版本的 Openwrt 镜像: bleachwrt-plus-20241014-x86-64-generic-squashfs-combined-efi.img.gz

电脑解压上传 img 文件

openwrt镜像上传.png

记录镜像路径

记录img镜像路径位置.png

忘记了也不用担心,可以在 Shell 里面查看

ls /var/lib/vz/template

img 镜像创建虚拟机

创建虚拟机,记住 VM ID(忘记也不要紧,在左侧侧边栏能看到)

openwrt创建虚拟机.png

其他步骤都跟上面安装 Ubuntu 系统类似,唯一需要注意的地方是,在安装操作系统的时候记得选择「不使用任何介质」

不使用介质.png

等虚拟机添加成功后,选择「分离」和「移除」硬盘

分离硬盘.png

移除硬盘.png

进入 PVE Shell,给刚刚创建的虚拟机,添加镜像磁盘

# 几个需要注意的点
# 1. VM ID 不要输错
# 2. 镜像要是 img 的,路径也不要写错
# 3. 最后一个参数是存储位置,根据实际情况填写(我的 local-lvm 已经被删除了,所以这里是 local)
qm importdisk 106 /var/lib/vz/template/iso/bleachwrt-plus-20241012-x86-64-generic-squashfs-combined-efi.img local

命令执行完成后,在虚拟机的硬件里面会出现一块「未使用的磁盘」,双击添加

openwrt添加硬盘.png

磁盘添加成功后,进入选项界面修改「引导顺序」(我们这里不需要使用 CD-ROM 启动,把这个勾选可以取消掉)

引导启动顺序.png

最后启动虚拟机,就可以进行系统的安装了

高大全版本 openwrt 设置

默认登录信息

IP:192.168.1.1

用户:root

密码:password

如果你想修改登录 IP 相关信息,可以通过修改 /etc/config/network 实现

# 修改 /etc/config/network,是 lan 口下面的配置(无论你是旁路由还是主路由模式,都是修改 lan 口)
config interface 'lan'
    option ipaddr '192.168.1.131'
    option netmask '255.255.255.0'
    option gateway '192.168.1.1'  # 网关
    option dns '8.8.8.8 8.8.4.4'  # DNS

# 然后重启
/etc/init.d/network restart

调整虚拟机磁盘大小

通过上述方式安装的 img 类型映象的虚拟机,磁盘空间大小等于 img 映象的大小,安装成功,磁盘占用就是 100%,所以我们需要重新调整下磁盘大小

我们需要的信息有两个,一个是虚拟机的 VM ID,一个是该虚拟机需要调整的 磁盘ID

调整磁盘大小.png

需要注意的是,并不是所有磁盘都是 scsi0 ,磁盘号和磁盘类型,跟你选择添加「未使用磁盘」时候的设置相关

磁盘id.png

在 PVE Shell 中使用下列命令调整磁盘大小

qm resize 106 scsi0 20G

安装黑群晖

下载&上传镜像

黑群晖的安装,需要用 rr 引导

百度网盘: rr 引导镜像,提取码:yra4

创建群晖虚拟机

  1. 整体步骤跟 Openwrt 一致

    ...解压上传镜像

    ...记录 VM ID / img 路径

    ...不使用任何介质

    ...分离/删除 未使用磁盘

    ...qm importdisk 106 /var/lib/vz/template/iso/rr.img local

  2. 添加 qm 导入的 img 磁盘的时候有些不一样了,记得要将磁盘改成 sata 类型

    sata类型磁盘.png

    引导盘添加成功后,我们还需要添加一块数据盘(引导盘只是用来引导启动的,群晖还没有自己的磁盘), 有两种方式

    a. 将某块硬盘直通给群晖

    b. 增加一块虚拟磁盘

    添加sata硬盘.png

  3. 修改引导顺序

    rr引导顺序.png

  4. 因为我们后续安装群晖的时候需要在 rr 引导里面下载群晖的安装文件,默认的空间是不够用的,建议此时调整 rr 引导盘的大小

    # PVE Shell
    qm resize 106 sata0 4G
  5. 启动虚拟机进行群晖的安装

rr 引导安装过程

  1. 启动 rr

    启动安装.png

  2. 启动成功会提示

    rr启动成功.png

  3. 访问 http://192.168.2.193:7681 进行接下来的安装步骤,选择语言

    rr选择语言.png

  4. 选择型号,推荐 DS920+

    rr选择型号.png

  5. 选择版本,推荐 7.2

    rr选择版本.png

  6. 弹出页面,点击URL会自动下载当前引导的系统文件

    注意: 这个 URL 需要复制在浏览器再下一遍! rr 下载一遍,本机浏览器下载一遍!!后面要用!!!

    rr下载pac.png

  7. 选择编译引导

    rr编译引导.png

    rr引导下载pac.png

    如果下载一半失败,提示: 「检查网络或磁盘空间error 23:200」

    一般是 rr 引导的磁盘空间不够,按照本文中的「创建群晖虚拟机」章节中步骤 4 的操作即可解决

  1. rr 引导启动

    rr启动.png

    rr启动完毕.png

    启动完毕后,可以访问 5000 端口,进行群晖初始化设置

    补充说明:上图写的 ip地址不一定正确,可以使用 Synology Assistant 进行搜索

    百度网盘: Synology Assistant,提取码:e2jj

    群晖助手.png

群晖安装过程

  1. 访问群晖管理页面

    群晖管理页面.png

  2. 选择「从计算机手动上传 .pat 文件」,文件为「rr 引导安装过程」步骤 6 中下载的 PAC 文件

    如果你上面忘记在浏览器下载了,也忘记保存 URL 链接了,也可以选择「自动从xxx下载」

    手动选择pac.png

  3. 清空数据

    清空数据1.png

    清空数据2.png

  4. 其他步骤就正常按照提示安装就行,需要注意的是关于更新的设置,选择手动更新

    群晖不更新.png

安装 CentOS

CentOS常用初始化配置

  1. 固定IP

    修改 /etc/sysconfig/network-scripts 目录下 ifcfg-eth0 文件,默认情况下该文件设置的为DHCP,内容如下

    默认情况.png

    修改为静态 IP

    BOOTPROTO=static
    DEVICE=eth0
    ONBOOT=yes
    STARTMODE=auto
    TYPE=Ethernet
    USERCTL=no
    
    # 静态IP配置
    IPADDR=192.168.1.104 
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4