无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/newroot、umount /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




