You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无BIOS访问及Live CD、仅SSH连接时,远程服务器Ubuntu/Debian安装与分区调整方案咨询

无BIOS访问及Live CD、仅SSH连接时,远程服务器Ubuntu/Debian安装与分区调整方案咨询

嘿,这种只能靠SSH和GRML救援模式、碰不到BIOS和物理光驱的场景确实挺头疼的,我给你梳理两个可行的方案,你可以根据自己的情况选:

方案一:先把现有系统迁移到2TB HDD,再调整SSD分区

这个方案风险相对低,基于现有系统迁移,不用重新配置系统环境,适合不想折腾新系统的情况:

步骤1:进入GRML救援模式并准备磁盘

  • 登录GRML救援模式后,用 lsblk -f 确认磁盘设备:比如SSD是 /dev/sda(挂载着原root分区 /dev/sda1),HDD是 /dev/sdb
  • 挂载原root分区:mount /dev/sda1 /mnt/oldroot
  • 给HDD分区:用 parted /dev/sdb 创建一个主分区(建议大小设为100G以上,足够装下现有系统,剩下的空间留作数据盘),然后格式化分区:mkfs.ext4 /dev/sdb1
  • 挂载新分区:mount /dev/sdb1 /mnt/newroot

步骤2:同步系统文件到HDD

rsync同步是最稳妥的,能完整保留文件权限、硬链接和系统属性:

rsync -avxHAX /mnt/oldroot/ /mnt/newroot/

参数说明:-a归档模式,-v显示同步进度,-x不跨文件系统,-H保留硬链接,-A保留ACL权限,-X保留扩展属性,这些参数对系统迁移至关重要。

步骤3:配置新系统的引导(GRUB)

  • 先挂载必要的虚拟文件系统,让chroot环境和真实系统一致:
    mount --bind /dev /mnt/newroot/dev
    mount --bind /proc /mnt/newroot/proc
    mount --bind /sys /mnt/newroot/sys
    
  • 进入新系统的chroot环境:chroot /mnt/newroot
  • 安装GRUB到HDD(注意是磁盘设备 /dev/sdb,不是分区):grub-install /dev/sdb
  • 更新GRUB配置:update-grub
  • 编辑 /etc/fstab,把原root分区的UUID替换成新分区 /dev/sdb1 的UUID(用 blkid /dev/sdb1 可以查看UUID)

步骤4:重启验证并调整SSD分区

  • 退出chroot:exit,然后卸载所有挂载的分区:umount -R /mnt/newrootumount /mnt/oldroot
  • 重启服务器:reboot,正常情况下会从HDD启动新系统
  • 启动成功后,SSD的原分区已经处于未挂载状态,用 fdisk /dev/sda 删除旧分区,创建30G的新分区,格式化后挂载到你需要的目录(比如 /data),最后更新 /etc/fstab 即可。

方案二:在GRML救援模式下直接安装Debian/Ubuntu

如果你不想保留现有系统,或者原系统备份体积超30G没法压缩,直接用GRML自带的grml-debootstrap工具安装会比手动用debootstrap简单很多:

步骤1:准备安装磁盘

  • 登录GRML救援模式,用 lsblk 确认要安装的磁盘(比如HDD /dev/sdb
  • 如果磁盘有旧分区,先清空:parted /dev/sdb mklabel gpt(或者msdos,根据需求选择),然后创建系统分区和数据分区

步骤2:用grml-debootstrap安装系统

  • 安装Debian 12(Bookworm)的命令:
    grml-debootstrap --target /mnt/newroot --mirror http://deb.debian.org/debian --release bookworm --disk /dev/sdb --bootloader grub
    
  • 如果要安装Ubuntu 22.04(Jammy),替换镜像和版本参数:
    grml-debootstrap --target /mnt/newroot --mirror http://archive.ubuntu.com/ubuntu --release jammy --disk /dev/sdb --bootloader grub
    
  • 这个工具会自动完成分区、格式化、安装系统和GRUB的全过程,比手动操作debootstrap省很多事。

步骤3:配置新系统

  • chroot到新系统:chroot /mnt/newroot
  • 设置root密码:passwd
  • 添加普通用户(可选但推荐):useradd -m -s /bin/bash yourusername,然后设置密码:passwd yourusername
  • 配置网络:Debian可以编辑 /etc/network/interfaces,Ubuntu用netplan编辑 /etc/netplan/00-installer-config.yaml,确保重启后能正常联网

步骤4:重启并处理SSD

  • 退出chroot,卸载挂载的分区,重启服务器,新系统启动后再按照方案一的最后一步调整SSD分区即可。

关键注意事项

  • 备份!备份!备份! 操作前一定要把重要数据(比如/etc/home/var)备份到HDD的空闲分区,比如用 tar -czf /mnt/hdd_backup/important_data.tar.gz /mnt/oldroot/etc /mnt/oldroot/home
  • 确认磁盘设备名时,用 lsblk -f 查看UUID和文件系统,别搞混SSD和HDD,不然会造成数据丢失
  • 如果GRML救援模式没联网,先配置网络:dhclient eth0 或者用 nmtui 图形化工具配置
  • 如果迁移或安装后启动失败,重新进入GRML救援模式,检查GRUB配置和fstab,重新安装GRUB即可。

备注:内容来源于stack exchange,提问作者RobGTX

火山引擎 最新活动