CloudBSD.xyz

主要观点:介绍通过特定脚本在远程 Linux 服务器上更换操作系统的方法,以 NetBSD 为例,需借助各种机制如 initrd、pivot_root 等,过程分准备系统、接管系统、安装新系统三步,强调操作风险及潜在自动化工具开发方向。
关键信息:

  • 需有远程 SSH 访问,目标系统需支持串口、SSH 或 VNC 安装,且需至少两个 TCP 端口用于 SSH。
  • 准备系统时需克隆 Marcan 的 takeover.sh 仓库,编译 fakeinit.c 等,准备包含必要工具的内存文件系统(ramdisk)。
  • 接管系统时运行 Marcan 的脚本,包括设置新 SSH 端口、创建目录等操作,完成 pivot_root 后可通过新 SSH 连接。
  • 安装新系统时要注意风险,可使用模拟器等,NetBSD 安装可通过特定脚本及配置,UEFI 安装需创建固件条目,安装后可通过特定 sysrq 触发重启。
    重要细节:
  • initrd 是初始内存磁盘,用于提供内核访问根分区所需工具,initrd 的 init 会加载脚本和模块以加载根文件系统,pivot_root 用于实际根文件系统的切换。
  • 不同操作如 chroot 和 pivot_root 的区别,chroot 改变进程视图,pivot_root 切换挂载点。
  • 准备系统时要考虑内存需求,不同操作系统的 ISO 大小不同,可选择网络安装或提供 ISO through NFS。
  • 安装新系统时要注意磁盘分区表、网络配置等,确保兼容性,避免不可恢复的错误。
阅读 7
0 条评论