重装系统太慢,动不动就断网卡死,到底还能不能信它?
我最近给几台服务器重装系统,试了这个叫 reinstall 的工具。不是网上那种吹得天花乱坠的安装器,就是个脚本,扔进 Linux 终端里跑一跑。但它真能不插U盘、不进PE、不重启进救援模式,就在原系统里直接把整个系统给换掉。我第一次试的时候,手都在抖,怕一不注意把硬盘清空了,结果六分多钟,Ubuntu 24.04 就跑起来了,SSH 还连着,命令历史都没丢。

它不靠挂ISO,是靠 GRUB 里临时加一个启动项,把内核、initrd 和配置文件全从网上拉下来。我试过阿里云、腾讯云和自己搭的裸机,全都能跑通。Debian、Rocky、CentOS,还有 Windows Server 2022 都行。macOS 也能装,但别指望点点鼠标就能进安装界面——它只帮你用 OpenCore 引导到安装器界面,后面全得手动配 EFI、加驱动、输密码,不熟悉黑苹果的人可能会卡在第一步。
Windows 装完自动激活,Linux 默认开 SSH,用户账号和密码都是提前写在配置文件里的。Cloud-init 模板改两行,下次再重装就又是同一套环境。不像以前,装完还得手动配源、装软件、关防火墙,一套流程下来一小时起步。我现在用一个 shell 脚本,十秒钟写好参数,回车,该干啥干啥,等它发来“Installation completed”邮件就行。
但它真不是万能的。比如 macOS,资料里反复强调“无GUI安装器”,我也翻遍了所有文档和 issue,没人提过图形界面的事,全是终端指令+手动EFI操作。Secure Boot 也得提前关,不然 OpenCore 启不动;国内服务器不用 cnb.cool 镜像源,GitHub 的 raw 文件基本下不下来,超时率高得离谱。有次我忘了加 `--ssh-port 2222`,安装中间网络断了,再连就黑屏了——后来才知道它默认复用 22 端口,装的时候会临时接管,得提前挪开。
内存要求也挺实在:256MB 就能跑 Alpine,Ubuntu 至少要 512MB,Win10 就得 1G 起。我拿一台老 Dell T110 II(2G 内存)试了 Win11 LTSC,装是装上了,但进系统后桌面卡三秒才响应。不是 reinstall 的问题,是硬件真的扛不住。

还有个坑是分区。`--keep-partition` 听着好像能留数据,其实只是不分区表,原分区格式不变。但如果你之前是 LVM 或者用了加密卷,它可不管这些,装完照样挂不上,得自己处理。我有次误操作把 `/boot/efi` 分区格式化了,OpenCore 直接变砖,只能靠 iKVM 手动重传 EFI 文件。
日志是实时推到终端的,还能用 `--hold` 参数让失败时自动切回原系统,不会把你卡在半道上。所有下载文件的 SHA256 都硬编码在脚本里,下完立刻校验,不对就报错退出。GitHub 上代码开源,commit 都带 GPG 签名,想自己改也能 fork 下来修。
我把它集成进了 Ansible,一个 playbook 就能批量重装二十台机器。Terraform 里也试过,在 `null_resource` 里调用脚本,装完自动把新 IP 写进 state。不过说实话,我现在用得最多的是 `reinstall --ubuntu 24.04 --password 'xxx' --ssh-port 2222` 这一条命令。它不炫技,不包装,就干一件事:把系统干净利落地换掉。
有人问我是不是替代了 Packer 或 Cobbler,我说不是。它没那么重,也不搞镜像打包那一套。就像一把改锥,不大,但拧螺丝快,还不滑牙。我不写诗,不画饼,不讲远景。它现在什么样,我就看到什么样。装完了,SSH 登上去,`lsb_release -a` 一敲,版本对了,网络通了,用户登录进去了。这就够了。