项目地址,欢迎 star,github 主页或私信反馈:
支持从甲骨文等主流大厂,各其他商家的任意 Redhat 红帽系统(包括 Oracle Linux CentOS Almalinux RockyLinux)重装到 Debian/Kali,也支持 Ubuntu/Debian 装回红帽系统,双方永久互装完全没问题!彻底解决了萌咖原版 grub 引导不行,只能装 CentOS 6.9 的困扰(我这个版本已不支持 CentOS 6.9),IPv4 和 IPv6 的处理,其他等等细节处理的也很完善。
下载前记得更新源,安装 wget,AlpineLinux 需要安装 bash:
wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh
国内机器现在可以从 Gitee 下载:
wget --no-check-certificate -qO InstallNET.sh 'https://gitee.com/mb9e8j2/Tools/raw/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh
快速开始( 当且仅当脚本不加 -pwd -port -mirror 等参数时有效,如果加了,必须指定对应系统的发行版! ):
不用再输入使用何种架构(-v),脚本会自动检测、Debian 系和 Redhat 系转换!
Debian 12(支持 9 至 12)
bash InstallNET.sh -debian
Kali rolling(仅推荐 rolling 分支)
bash InstallNET.sh -kali
ARM64 AMD64 机都 OK, 甲骨文 Oracle ARM 机装虽然重启就黑屏,什么提示都没有,在 VNC 里都没法调试,但只要是从面板自带模板纯净系统中安装过去的,100% 保证能成功,VNC 里看到黑屏别怕,别手欠中途硬重启 ,不知道 Kali 是什么的,反正你就知道 Kali 是日常、电影电视剧里黑客经常用的,自带很多安全测试工具,贼鸡儿炫酷的一个 Debian 发行版就行。Kali 有三个版本,按激进程度大小排列,分别为 experimental > dev > rolling,普通人不爱折腾的,最好以使用 rolling 为主。
Alpine Linux Edge(仅推荐 edge 分支)
bash InstallNET.sh -alpine
CentOS 9 stream(支持 7-9)
bash InstallNET.sh -centos
AlmaLinux 9(支持 8-9)
bash InstallNET.sh -almalinux
RockyLinux 9(支持 8-9)
bash InstallNET.sh -rockylinux
Fedora 38(支持 37-38)
bash InstallNET.sh -fedora
Ubuntu 22.04(支持 20.04 或 22.04)
bash InstallNET.sh -ubuntu
通过启动中介 AlpineLinux 系统,在中介系统中 dd Ubuntu 官方镜像实现,仅支持从 IPv4 静态或动态启动,双栈机进入 Ubuntu 后 IPv6 能配好,纯 IPv6、1GB 内存以下机器不支持。
感谢煎饼哥的天才想法!
王煎饼论坛 id:https://hostloc.com/space-uid-35316.html
王煎饼 github 主页:https://github.com/bin456789/
实现原理及难点:
https://hostloc.com/thread-1180157-1-1.html
https://hostloc.com/thread-1180158-1-1.html
https://hostloc.com/thread-1180159-1-1.html
使用 netbootxyz 手动重装(仅限 x86 BIOS)
bash InstallNET.sh -netbootxyz
指定源,输入系统和对应版本后,加参数 “-mirror”,如:
bash InstallNET.sh -debian 12 -mirror "http://ftp.riken.jp/Linux/debian/debian/"
默认密码如下:
LeitboGi0ro
由于 AlpineLinux 和 Ubuntu 采用明文传递密码参数到配置文件,附加特殊符号可能会导致 sed 处理时出错,所以 AlpineLinux 和 Ubuntu 默认密码统一为 LeitboGi0ro 且暂不支持修改。
密码若要自定义,可添加 -pwd ' 密码内容 ' 修改,密码字段建议前后使用单英文引号(' ')括起来,以免 shell 将双英文引号(" ")中带特殊字符的密码当做命令传递,造成错误。 支持全系受支持的系统,不要设置的过长过复杂,例:
-pwd 'xiaoming'
特别的,如果密码中带有英文单引号('), 请一定在该单引号前加 ''' 做转义,也就是说,以下转义过的字符才和一个单引号等价 :
'\''
也就是说, ''' 才等于实际密码中的 ' 符号 ,比如你密码要设置为:'xiaoming',那么如下输入才是正确的:
-pwd ''\''xiaoming'\'''
如果使用的是默认密码,安装后请立即修改!
默认 ssh 端口随原系统 ,可添加 -port 端口号 修改,支持全系受支持的系统,范围 “1-65535”,如果给错或无法确定原系统端口,后备值为:
22
例:
-port "12345"
如果想要强制双网动态配置,请输入:
bash InstallNET.sh -debian 12 --network "dhcp"
如果想要强制双网静态配置,请输入:
bash InstallNET.sh -debian 12 --network "static"
如果想要纯手动模式安装,比如用于调试等,请输入(要求必须能用 VNC 访问机器):
bash InstallNET.sh -debian 12 --allbymyself
如果想要使用 netbootxyz 纯手动模式安装其受支持的系统,比如 Archlinux 等,请输入(要求必须能用 VNC 访问机器,仅 x86_64 AMD64 架构,BIOS 固件机器使用,甲骨文 UEFI 固件机器用 netbootxyz 启动,请参考此教程:https://zhuanlan.zhihu.com/p/97527349):
bash InstallNET.sh -netbootxyz
现在开启了一个参数,--setipv6 "0",指定强制关闭系统安装时加载 IPv6,指定 0 就是关闭,指定其他值或默认不指定为开启。不管机器实际是否有 IPv6 网络,只要设置 --setipv6 "0",新系统里 IPv6 模块就会被彻底禁用,无法访问 IPv6 网络,请按照实际情况选择。对部分 Racknerd 和 Virmach 等商家的纯 IPv4 机器有效,因为这些机型 DNS 解析会强制返回 IPv6 地址,然而机器没有 IPv6 网络,导致 ping wget 持续失败,强制新系统里不加载 IPv6 模块可解决此问题。但这样会导致 Nginx 里带加载 IPv6 网络的模块失败导致启动失败,请自行到 /etc/nginx/nginx.conf 目录里把 # listen [::]:80 default_server; 注释掉,该选项适用于 Debian/Kali/Ubuntu
bash InstallNET.sh -debian 12 --setipv6 "0关闭,1开启"
现开启了一个参数: --nomemcheck ,输入后即跳过内存容量检测 ,你可以在任何内存的机器上尝试安装目标系统,即使能在当前系统成功下载并打包网络安装启动内核,但不保证重启后能安装成功。
bash InstallNET.sh -debian 12 --nomemcheck
Debian 全世界各国家、地区源列表:
https://www.debian.org/mirror/list.html
Kali 全世界各国家、地区源列表:
https://http.kali.org/README.mirrorlist
CentOS 7 和 8-stream,全世界各国家、地区源列表:
https://www.centos.org/download/mirrors/
CentOS 9-stream 及以后全世界各国家、地区源列表:
https://admin.fedoraproject.org/mirrormanager/mirrors/CentOS
AlmaLinux 全世界各国家、地区源列表:
https://mirrors.almalinux.org/
RockyLinux 全世界各国家、地区源列表:
https://mirrors.rockylinux.org/mirrormanager/mirrors
Fedora 全世界各国家、地区源列表:
https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora
已知问题:
-
Nginx 对 Debian12 支持不佳,安装以后 apt-update 会报错;
-
Debian 12 自带 Linux 6.1.0.x 版本内核,安装 Xanmod 6.1 LTS 内核后,两者会有冲突,无论在重启前,将系统自带 6.1.0.x 内核卸载,选择用 Xanmod 6.1 LTS 内核启动,还是选择保留系统自带内核启动,都会无限重启,请慎重操作!
卸载 Debian 12 自带内核命令:
apt autoremove -y --purge linux-image-6.1.0-7-amd64 linux-image-amd64
-
-
Linode 的机器安装完成后,需要在面板里将机器引导从它自带的 grub2 变成全盘才能正常启动,参见我另外一个贴:https://hostloc.com/forum.php?mod=viewthread&tid=1166099