全程无人值守完成ubuntu22.04到xubuntu 24.04.5的升级

说明

文心助手出品

安装脚本

复制代码
#!/bin/bash
set -euo pipefail

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

# -------------------------- 请先修改以下配置 --------------------------
NEW_USERNAME="z87p"          # 新系统登录用户名
NEW_PASSWORD="z87p@2026"     # 新系统登录密码,请务必修改为强密码
# Xubuntu 24.04 ISO镜像路径,请提前下载到对应位置
XUBUNTU_ISO_PATH="/home/${SUDO_USER:-$USER}/xubuntu-24.04.5-desktop-amd64.iso"
# -------------------------------------------------------------------

echo -e "${RED}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!                           【高危操作警告】                             !!
!!  本脚本将彻底清空当前机器硬盘上的所有数据(包括原有系统、所有文件)   !!
!!  操作完全不可逆,请确认无任何需要保留的数据后再继续                    !!
!!  安装全程无需显示器、无需U盘,全自动完成,过程中请勿断电              !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
${NC}"

read -p "确认要继续执行全自动远程安装吗?输入 YES 继续: " confirm
if [ "$confirm" != "YES" ]; then
    echo "已取消操作"
    exit 0
fi

# 检查是否为root权限
if [ "$EUID" -ne 0 ]; then
    echo -e "${RED}错误:请使用 sudo 运行本脚本${NC}"
    exit 1
fi

# 检查ISO文件是否存在
if [ ! -f "$XUBUNTU_ISO_PATH" ]; then
    echo -e "${RED}错误:未找到Xubuntu ISO镜像,请先下载到指定路径:$XUBUNTU_ISO_PATH${NC}"
    echo "国内镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/xubuntu-releases/24.04/release/xubuntu-24.04.1-desktop-amd64.iso"
    exit 1
fi

echo -e "${GREEN}[1/6] 安装依赖工具...${NC}"
apt update -y
apt install -y grub2-common openssl

echo -e "${GREEN}[2/6] 生成无人值守安装配置...${NC}"
# 生成密码哈希
NEW_PASS_HASH=$(openssl passwd -6 "$NEW_PASSWORD")
# 获取ISO所在分区的挂载点
ISO_DIR=$(dirname "$XUBUNTU_ISO_PATH")
ISO_MOUNT=$(df -P "$ISO_DIR" | awk 'NR==2 {print $6}')

# 写入cloud-init自动安装配置到ISO所在分区根目录(本地读取,无需HTTP服务)
cat > "${ISO_MOUNT}/user-data" << EOF
#cloud-config
autoinstall:
  version: 1
  locale: zh_CN.UTF-8
  keyboard:
    layout: cn
    variant: ""
  refresh-installer:
    update: false
  apt:
    primary:
      - arches: [amd64, i386]
        uri: file:///cdrom
    disable_components: []
  network:
    network:
      version: 2
      ethernets:
        id0:
          match:
            name: en*
          dhcp4: true
  storage:
    layout:
      name: lvm
      match:
        size: largest
  identity:
    hostname: xubuntu-2404
    username: ${NEW_USERNAME}
    password: ${NEW_PASS_HASH}
  ssh:
    install-server: true
    allow-pw: true
  packages:
    - xubuntu-desktop
    - openssh-server
    - xrdp
  user-data:
    disable_root: false
  late-commands:
    - curtin in-target -- systemctl set-default graphical.target
    - curtin in-target -- systemctl enable ssh xrdp
    - rm -f /target/user-data /target/meta-data
EOF
# 必须的空元数据文件
touch "${ISO_MOUNT}/meta-data"

echo -e "${GREEN}[3/6] 配置GRUB自动引导安装项...${NC}"
# 备份原有GRUB自定义配置
cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
# 写入安装引导项
cat >> /etc/grub.d/40_custom << EOF

menuentry "Xubuntu 24.04 全自动远程安装" {
    set isofile="${XUBUNTU_ISO_PATH#$ISO_MOUNT}"
    search --no-floppy --set=root --file "\$isofile"
    loopback loop (\$root)\$isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=\$isofile toram noeject noprompt autoinstall ds=nocloud quiet splash ---
    initrd (loop)/casper/initrd
}
EOF

echo -e "${GREEN}[4/6] 设置GRUB默认启动安装项,无需手动选择...${NC}"
# 备份原有grub默认配置
cp /etc/default/grub /etc/default/grub.bak
# 设置默认启动项为我们的安装引导项,超时1秒自动启动
sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT="Xubuntu 24.04 全自动远程安装"/' /etc/default/grub
sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=1/' /etc/default/grub
sed -i 's/^GRUB_HIDDEN_TIMEOUT=/#GRUB_HIDDEN_TIMEOUT=/' /etc/default/grub

echo -e "${GREEN}[5/6] 更新GRUB引导配置...${NC}"
update-grub

echo -e "${GREEN}[6/6] 所有配置已完成!${NC}"
echo -e "
=====================================================================
                        安装前确认信息
  新系统用户名:${NEW_USERNAME}
  新系统密码:${NEW_PASSWORD}
  SSH服务:默认开启,安装完成后即可远程连接
  XRDP远程桌面:默认开启,可直接用Windows远程桌面连接
=====================================================================
"
echo -e "${YELLOW}重启后机器将自动开始格式化磁盘并安装Xubuntu 24.04,全程无需干预${NC}"
echo -e "${YELLOW}安装过程约15-30分钟,请勿断电,安装完成后机器会自动重启进入新系统${NC}"

read -p "是否现在重启开始安装?(y/n): " reboot_confirm
if [ "$reboot_confirm" == "y" ] || [ "$reboot_confirm" == "Y" ]; then
    echo -e "${GREEN}正在重启,开始全自动安装...${NC}"
    reboot
else
    echo -e "配置已保存,你可以稍后手动执行 sudo reboot 开始安装"
    exit 0
fi

sudo bash 远程无盘安装Xubuntu24.04一键脚本.sh
按照提示输入YES确认高危操作,最后选择y立即重启,之后就可以断开SSH等待自动安装完成
等待15-30分钟,机器安装完成后会自动重启,你直接用原来的IP地址通过SSH连接,使用你设置的用户名密码登录即可;也可以直接用Windows自带的「远程桌面连接」访问完整的Xubuntu图形桌面。

相关推荐
sean9081 小时前
Ubuntu 26.04 终端显示冗余信息
ubuntu·终端·异常
小小的木头人10 小时前
Ubuntu Samba修改端口绕过445封禁挂载
运维·ubuntu
问简18 小时前
【ubuntu】在 Ubuntu 26 上屏蔽 Windows 盘
ubuntu
程曦曦19 小时前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
程序员大阳1 天前
使用Putty登录阿里云Ubuntu ECS服务器方法
ubuntu·云计算·ssh·ecs·putty
网硕互联的小客服1 天前
如何在Ubuntu系统上查看和刷新DNS缓存?操作方法与原理解析
运维·服务器·网络·ubuntu
八年。。1 天前
WSL学习(三)——搭建Linux + C++ + SOME/IP 基础开发环境
开发语言·笔记·ubuntu
星间都市山脉2 天前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
余生爱静2 天前
从零搭建 SIP 全栈通话系统:SIP 协议 + PJSIP + Asterisk + Android 实战
ubuntu·pjsip