全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2124|回复: 13

[疑问] 无 IPMI 双硬盘杜甫自行安装新系统

[复制链接]
发表于 2021-7-23 21:27:17 | 显示全部楼层 |阅读模式
云筏 2x2T 机械的杜甫没有 IPMI,重装系统收费 100 元。而交付的机器是单盘 LVM 的 Proxmox,显然不适合正经使用,为省钱只能自行重装 Proxmox 为 ZFS mirror

核心原理受 Hetzner 的 vKVM 启发,就是将 1 块空闲硬盘直通入 QEMU 虚拟机安装系统。由于并非一边装一遍记录的,因此以下仅供参考。

对于跟随以下记录操作而导致服务器无法启动、失联等结果,概不负责!

1. 记录关键数据

需要用到机器现在的公网 IP、网关、网卡名和硬盘名。这里假设:

公网 IP:      123.1.2.3/32
网关:          123.1.2.1
网卡名:       enp1s0
原系统硬盘:/dev/sda
新系统硬盘:/dev/sdb


2. 直通硬盘安装系统

首先下载 Proxmox 镜像保存任意目录,我保存为了 /root/proxmox-ve_7.0-1.iso

在控制台输入以下命令:

  1. qemu-system-x86_64 -enable-kvm -smp 8 -m 8192 -boot d -cdrom /root/proxmox-ve_7.0-1.iso -drive file=/dev/sdb,format=raw,media=disk -vnc 127.0.0.1:1
复制代码


这样就用 qemu 开启了一个 8C8G 的虚拟机,挂载 proxmox-ve_7.0-1.iso 为 CD,直通 /dev/sdb 进虚拟机,同时开启了虚拟机的 vnc 端口。

注意不要关闭控制台,因为虚拟机要保持运行。接下来要用 SSH 转发端口,如果自己电脑已经安装了 SSH 就很方便:

  1. ssh -L 8888:127.0.0.1:5901 root@123.1.2.3
复制代码


将杜甫的 5901 端口转发到了本机的 8888 端口。本机用 UltraVNC Viewer 连接就好了,自行按指引安装系统,和普通 IPMI 操作没有区别。

注意由于只有一块硬盘,Proxmox 在安装时无法选择 ZFS mirror,需要选择 ZFS raid0。


3. 修改虚拟机中的系统

为了让虚拟机中的安装的系统在物理机中能正常启动和使用,需要修改虚拟机中的网卡配置,编辑 /etc/network/interfaces :

  1. auto lo
  2. iface lo inet loopback

  3. iface enp1s0 inet manual

  4. auto vmbr0
  5. iface vmbr0 inet static
  6.         address 123.1.2.3/32
  7.         gateway 123.1.2.1
  8.         bridge_ports enp1s0
  9.         bridge_stp off
  10.         bridge_fd 0
复制代码


如果安装的新系统不是 Proxmox ZFS 还需要额外关注硬盘配置,不过由于使用了 ZFS 文件系统,就无需关心了。

配置完毕后,用 Ctrl+Z 或 Ctrl+C 者关闭这个 qemu 开的虚拟机。


4. 删除原本的引导

原系统装在 /dev/sda,而新系统装在 /dev/sdb,需要修改原系统 grub 才能在开机时启动到新系统。但有个更直接但比较危险的操作,直接抹掉原系统:

  1. dd if=/dev/zero of=/dev/sda bs=64K conv=noerror,sync status=progress
复制代码


用 dd 破坏 /dev/sda 的引导信息,引导分区不大,一般不超过几个 G。也就是执行几分钟就行了,不需要全盘抹掉。

然后就可以重启了,以我个人的经验,云筏这杜甫重启需要 4 分半的时间。


5. 添加硬盘到 ZFS 组成 mirror

正常启动后就是全新安装的系统了,不过这时候是单盘 ZFS,组成 mirror 还需要一些操作。先查看新系统的分区 fdisk -l :

Device           Start        End             Sectors           Size         Type
/dev/sdb1       34         2047            2014              1007K     BIOS boot
/dev/sdb2     2048     1050623        1048576        512M      EFI System
/dev/sdb3  1050624  3907029134  3905978511  1.8T        Solaris /usr & Apple ZFS

sdb1 是 BIOS 引导分区, sdb2 是 EFI 引导分区,sdb3 才是真正的 ZFS 分区。

将新系统的分区表复制到原系统的硬盘上并修复分区表 id:

  1. sgdisk /dev/sdb -R /dev/sda

  2. sgdisk -G /dev/sda
复制代码


将原系统盘的 sda3 分区加入 ZFS 组成 mirror :

  1. zpool attach rpool /dev/sdb3 /dev/sda3
复制代码


用 zpool status 看下:

NAME          STATE     READ WRITE CKSUM
  rpool         ONLINE       0     0     0
    mirror-0  ONLINE       0     0     0
       sdb3    ONLINE       0     0     0
       sda3    ONLINE       0     0     0

得到了想要的 mirror ,刚加入后会自动同步数据,过几分钟就好了。


6. 引导修复

最后还需要手动修复下 Proxmox 的引导:

  1. proxmox-boot-tool format /dev/sda2

  2. proxmox-boot-tool init /dev/sda2
复制代码


终于完成了重装系统的一切操作,可以正常使用了。


最后再说下,一定要清楚自己在干什么,否则杜甫 GG 了就杯具了
 楼主| 发表于 2021-7-23 21:31:12 | 显示全部楼层
@pslt @CloudRaft 教程来了
发表于 2021-7-23 21:30:58 | 显示全部楼层
技术贴必顶了
发表于 2021-7-23 21:35:06 来自手机 | 显示全部楼层
重装CentOS不是更好,svm这些的对接WHMCS方便,pve对接模块贵死
发表于 2021-7-23 21:36:34 | 显示全部楼层
来个视频教程更佳。还可以发到有图比 赚钱
发表于 2021-7-23 21:46:01 | 显示全部楼层
大牛啊!!!
这思路第一次见到,震撼!
发表于 2021-7-23 21:49:20 | 显示全部楼层
牛皮啊 大佬 给大佬顶起来
发表于 2021-7-23 21:55:03 | 显示全部楼层
pinanao 发表于 2021-7-23 21:35
重装CentOS不是更好,svm这些的对接WHMCS方便,pve对接模块贵死

PVE有很多其他的优势,如果不是用来对接WHMCS转卖小鸡的话是首选了。
发表于 2021-7-23 21:57:57 | 显示全部楼层
本帖最后由 mean 于 2021-7-28 13:26 编辑

这个思路之前看到过,补充个单硬盘版的:

1. 思路大体相同,注意当前启动系统要有 kvm 模块,并且有足够的内存;
2. menhera 或者 takeover,脚本会复制当前系统到tmpfs,chroot;
3. 当前启动盘已经释放,可以把整块硬盘挂入 kvm
4. 略

https://github.com/Jamesits/menhera.sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-13 19:49 , Processed in 0.069400 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表