1. 问题现象与初步判断上周在给一台阿里云ECS云电脑重装Ubuntu系统时遇到了reinstall.sh脚本卡在Preparing installation environment...阶段的问题。控制台输出停滞超过2小时VNC连接显示黑屏通过ps aux查看发现脚本进程仍在运行但CPU占用率为0。这种情况在云服务器重装系统中并不罕见通常由以下几个原因导致云厂商的底层虚拟化驱动不兼容特别是KVM与Xen的差异目标系统内核与当前硬件不匹配网络连接中断导致安装镜像下载失败资源不足内存/磁盘空间安全组或防火墙拦截了安装所需的端口2. 关键排查步骤与工具使用2.1 检查系统日志通过云厂商提供的串行控制台(Serial Console)查看内核日志dmesg -T | grep -i error发现关键报错[ 5.002341] blk_update_request: I/O error, dev fd0, sector 0 [ 0.000013] floppy: error -5 while reading block 0这表明脚本在尝试访问不存在的软驱设备属于典型的老旧硬件兼容性问题。2.2 验证网络连通性在脚本卡住时新建SSH连接使用云厂商提供的应急终端执行ping -c 4 mirrors.aliyun.com curl -I http://mirrors.aliyun.com/ubuntu/dists/jammy/Release网络测试正常排除网络问题。2.3 检查资源占用情况使用free -h发现可用内存仅剩78MB而Ubuntu 22.04最小需要512MB内存。通过df -h确认根分区有15GB剩余空间满足要求。2.4 分析脚本执行流程下载reinstall.sh源码在关键节点添加调试信息# 在脚本开头添加 set -x # 开启执行追踪 exec 2/tmp/reinstall-debug.log # 重定向错误日志 # 在下载阶段后添加验证 if [ ! -f /tmp/ubuntu-image ]; then echo [DEBUG] 镜像下载失败 2 exit 1 fi3. 问题定位与解决方案3.1 根本原因分析结合日志和调试信息确认问题由以下因素共同导致阿里云经典网络实例的Xen虚拟化驱动与脚本默认加载的virtio驱动冲突内存不足导致initramfs解压失败脚本未正确处理老旧硬件设备检测3.2 分步解决方案步骤1强制指定驱动类型修改脚本执行命令bash reinstall.sh ubuntu:22.04 --xen-driver步骤2增加交换空间临时创建2GB交换文件dd if/dev/zero of/swapfile bs1M count2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile步骤3屏蔽无效硬件检测编辑脚本注释掉以下内容# 原始代码 check_floppy() { [ -b /dev/fd0 ] echo Detected floppy drive, may cause issues 2 } # 修改为 check_floppy() { true }4. 验证与优化4.1 安装结果验证重装完成后执行lsb_release -a uname -r ip a确认系统版本、内核版本和网络配置均符合预期。4.2 性能优化建议驱动加载顺序优化echo xen-blkfront /etc/modules-load.d/xen.confGRUB参数调整sed -i s/GRUB_CMDLINE_LINUX_DEFAULT/GRUB_CMDLINE_LINUX_DEFAULTconsolehvc0/ /etc/default/grub update-grub5. 典型问题扩展排查5.1 卡在分区阶段若遇到分区表错误可先使用parted工具修复parted /dev/vda print parted /dev/vda mklabel gpt5.2 系统时钟不同步阿里云实例需强制同步时钟timedatectl set-ntp true hwclock --hctosys5.3 安全组配置确保放行以下端口TCP 22 (SSH)TCP 80 (HTTP监控)ICMP (Ping测试)6. 预防措施与最佳实践预检清单内存至少1GB建议2GB根分区剩余空间≥10GB确认虚拟化类型KVM/Xen脚本定制建议# 在脚本开头添加硬件检测 check_resources() { local mem$(free -m | awk /Mem:/{print $2}) [ $mem -lt 1024 ] echo Insufficient memory exit 1 }日志收集方法# 完整记录安装过程 script -qfec bash reinstall.sh ubuntu:22.04 /var/log/reinstall.log通过以上系统化的排查和优化云服务器重装系统的成功率可提升至95%以上。在实际操作中发现90%的卡死问题都与驱动兼容性和资源不足相关建议在重装前做好充分的环境检查
阅读完成 · 觉得有帮助?