# x2nestos **Repository Path**: openeuler/x2nestos ## Basic Information - **Project Name**: x2nestos - **Description**: A quick deployment tool for converting a general OS (Like openEuler) to NestOS, suitable for scenarios where it is not convenient to reboot or convert in large quantities. Attention: It's not a migration tools and do NOT preserve disk data. - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-09-11 - **Last Updated**: 2024-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: sig-K8sDistro ## README # x2nestos 将通用形态操作系统转换为 NestOS For Container 版本的快捷部署工具。 #### 介绍 基于已部署的 openeuler 等通用 OS 形态,转换为基于不可变操作系统的 NestOS For Container。适用于不方便重新引导安装或大批量转换的场景。 **注意:** **1.非迁移工具,不保留磁盘数据。** **2.此转换不可逆。** #### 安装教程 本工具为 shell 脚本,可下载或 git clone 本仓库直接使用。 如您使用 NestOS For Virt 版本,已默认集成该工具,可直接执行 x2nestos 命令。 如您使用 openeuler,可在开启 epol 情况下执行如下命令安装本工具。(暂未合入,敬请期待) ``` sudo dnf install x2nestos ``` #### 使用说明 当您安装完毕后,可按如下步骤使用本工具: 1. 根据需要下载待转换 NestOS ISO 镜像至本地环境,可至 [NestOS 官方网站](https://nestos.openeuler.org/) 获取 2. 准备供 NestOS For Container 部署使用的 ign 点火文件。什么是 ign 点火文件及如何生成点火文件请至 [NestOS 官方网站](https://nestos.openeuler.org/) 或 [NestOS 用户指南](https://docs.openeuler.org/zh/docs/22.03_LTS_SP2/docs/NestOS/overview.html) 查阅 3. 本工具当前方案仅支持部署阶段 ign 文件通过远程获取,因此您需以 http(s)的形式提供可供 NestOS 部署阶段远程获取 ign 文件的 URL,形如:http://example.com/xxx.ign

TIPS: 一个以 python 简单实现的 http 文件服务如下,在 ign 文件所在目录执行: ``` python -m http.server 8080 ``` 4. 正式开始转换,在待转换环境中执行如下命令: ``` x2nestos -d 目标安装硬盘(必选) -i 点火文件URL(必选) -s ISO文件路径(必选) ``` 示例: ``` x2nestos -d /dev/vda -i http://example.com/config.ign -s ./nestos-22.03-LTS-SP2.20230704.0-live.x86_64.iso ``` 5. 完整支持参数列表及说明如下: ``` Usage: x2nestos [-d DEVICE] [-i IGNITION_URL] [-s INSTALL_SOURCE] -d, --dev DEVICE Specify the installation target device (e.g., /dev/vda) -i, --ignition-url IGNITION_URL Specify the URL for the Ignition config -s, --install-source The path where the NestOS installation ISO is located, may require you to download it locally in advance --debug Output every commands during the execution process --work_dir Specify the working directory path, default to /tmp -h, --help Display this help message -v, --version Display Version info ``` 6. 转换正式开始前会再次确认是否执行,输入 y 或 yes 执行转换 enjoy it. #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### Roadmap - [x] 支持 openeuler 转换为 NestOS 基本能力 - [x] 支持手动指定完整参数 - [x] 支持手动指定 ISO 路径自动挂载部署 - [ ] 支持指定版本自动下载待部署镜像 - [ ] 支持保留数据分区 - [ ] 支持保留原操作系统,将 NestOS 部署于空闲分区 - [ ] 支持指定硬盘及所需空间后,自动压缩当前磁盘空间并部署 - [ ] 支持将当前部署中的部分配置生成为部署 NestOS 时所需 ign 文件 - [ ] 支持选择待转换 NestOS 版本及发布流 - [ ] 扩展支持其他操作系统 - [ ] ... #### License SPDX-License-Identifier: MulanPSL-2.0