登录后台

页面导航

本文编写于 580 天前,最后修改于 580 天前,其中某些信息可能已经过时。

原文链接

项目地址,欢迎 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

请输入图片描述