项目地址,欢迎 star,github 主页或私信反馈:
https://github.com/leitbogioro/Tools
支持从甲骨文等主流大厂,各其他商家的任意 Redhat 红帽系统(包括 Oracle Linux CentOS Almalinux Rocky)重装到 Debian,也支持 Ubuntu/Debian 装回红帽系统,双方永久互装完全没问题!彻底解决了萌咖原版 grub 引导不行,只能装 CentOS 6.9 的困扰(我这个版本已不支持 CentOS 6.9),IPv4 和 IPv6 的处理,其他等等细节处理的也很完善
更新简报:
- 支持 Debian 12,目前(20230429)正在内测,不建议应用到生产环境;
- 适配 Debian 12 的 Python 3 和 vim gtk3 组件;
- 支持修改 Debian 12 的 vim 配置,以支持从终端直接复制文本;
- 写了一个验证 IPv6 有效性的组件;
- 修复了甲骨文云官方模板 Rockylinux 9 中不能正常读取grub配置的问题;
- 除了从指定源下载的系统安装文件,Debian 的定制文件、Redhat 系列的防火墙配置文件(以支持修改除22以外其他端口)等需要从本项目下载的文件,因为国内机器连接 github 等泛域名经常被阻断,所以可自动切换到码云(gitee.com),以缓解由连接卡死造成的自动应答文件最终配置失败的问题;
- 安装前会自动尝试开启 dhcp IPv4 和 IPv6,避免造成首次开机后因无法获得对应的 IP 地址造成网络配置缺失;
- 如果不指定安装哪种系统,默认安装 Debian 12,清除指定 AMD64 或 ARM64 架构,脚本会根据当前系统自动判断。
下载前记得更新源,安装 wget:
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
快速开始:
不用再输入使用何种架构(-v),脚本会自动检测、Debian 系和 Redhat 系转换!
Debian 12
bash InstallNET.sh -debian
CentOS 9 stream
bash InstallNET.sh -centos
AlmaLinux 9
bash InstallNET.sh -almalinux
RockyLinux 9
bash InstallNET.sh -rockylinux
Fedora 38
bash InstallNET.sh -fedora
Ubuntu 20.04
bash InstallNET.sh -ubuntu
Ubuntu 因为在 22.04 版本及之后不再提供 netboot 文件,也废除了对 preseed 自动应答文件和 d-i(debian install) 命令的支持,官方提供的 Cloud init 安装方法要求 CPU 必须支持虚拟化,大多数 VPS 不满足该要求,故不再提供支持。
使用 netbootxyz 手动重装(仅限 x86 BIOS)
bash InstallNET.sh -netbootxyz
指定源,输入系统和对应版本后,加参数"-mirror",如:
bash InstallNET.sh -debian 12 -mirror "http://ftp.riken.jp/Linux/debian/debian/"
默认密码如下:
LeitboGi0ro
密码若要自定义,可添加 -pwd '密码内容' 修改,密码字段建议前后使用单英文引号(' ')括起来,以免 shell 将双英文引号(" ")中带特殊字符的密码当做命令传递,造成错误。支持全系受支持的系统,不要设置的过长过复杂,例:
-pwd 'xiaoming'
特别的是,如果密码中带有英文单引号('),请一定在该单引号前加 ''' 做转义,也就是说,以下转义过的字符才和一个单引号等价:
'''
也就是说,''' 才等于实际密码中的 ' 符号,比如你密码要设置为:'xiaoming',那么如下输入才是正确的:
-pwd ''\''xiaoming'\'''
如果使用的是默认密码,安装后请立即修改!
默认端口,可添加 -port 端口号 修改,支持全系受支持的系统,范围"1-65535":
22
例:
-port "12345"
注意:脚本以前配置网络的策略,是看到 IPv4 或 IPv6 任意一个为静态,则都为静态,脚本现在可以根据 IPv4 和 IPv6 的动态和静态参数分别记录、配置。解决了类似 Hetzner 这样的商家,IPv4 是动态(dhcp)配置,IPv6 是静态(static)配置,且 IPv4 是公网 IP 地址,网关是内网地址,如果采用 dhcp 配置网络,IPv4 可以正常使用,但以静态配置,网络不通,按以前配置策略,IPv4 和 IPv6 都给静态则无法顺利配置网络的问题。但对于 godaddy 这样的商家,只有 IPv4 网络,且机器 IP 和网关 IP 不在同一网段,且不支持 dhcp,由于无法获得正确网关,重装后安装程序会卡在网络配置界面。除非问清楚客服真实网关是什么,如果客服也搞不清楚,则此问题暂时无解。
参见:https://hostloc.com/forum.php?mod=viewthread&tid=1163052
如果想要强制双网动态配置,请输入:
bash InstallNET.sh -debian 12 --network "dhcp"
如果想要强制双网静态配置,请输入:
bash InstallNET.sh -debian 12 --network "static"
Debian 全世界各国家、地区源列表:
https://www.debian.org/mirror/list.html
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
Ubuntu 全世界各国家、地区源列表:
https://launchpad.net/ubuntu/+cdmirrors
已知问题:
- 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