You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04 VPS无救援模式仅SSH访问下缩减根分区并创建新分区的方案咨询

Ubuntu 20.04 VPS无救援模式仅SSH访问下缩减根分区并创建新分区的方案咨询

首先得严肃提醒:这个操作风险极高,因为要在线调整正在挂载使用的根分区,任何操作失误都可能导致系统崩溃、数据丢失。所以第一步务必先把所有重要数据备份到外部存储(比如通过scp传到本地或其他服务器)!

假设你的系统是Ubuntu 20.04,根分区为/dev/sda1(实际路径请根据自己的服务器调整),文件系统是默认的ext4,下面是可操作的步骤:

1. 确认磁盘与文件系统基础信息

先搞清楚当前的分区布局和文件系统类型,避免操作错对象:

  • 查看根分区的挂载点和使用情况:
    df -h /
    
  • 查看完整的磁盘分区结构:
    lsblk
    
  • 验证根分区的文件系统类型:
    blkid /dev/[your-root-partition]
    

    注意:如果你的根分区是XFS文件系统,无法在线收缩,这种情况没有救援模式的话几乎无法完成需求,只能考虑备份数据后重装系统;如果是ext4,可以继续后续步骤。

2. 清理根分区空间

要把根分区缩到20G,必须保证根分区的已使用空间远小于20G(建议预留1-2G的冗余空间),先做磁盘清理:

  • 卸载无用的软件包、清理缓存:
    sudo apt autoremove --purge
    sudo apt clean
    sudo apt autoclean
    
  • 查找并删除大文件(比如旧日志、临时文件):
    # 查看根目录下各文件夹的大小
    sudo du -sh /*
    # 进入占用大的目录继续排查,比如/var/log
    sudo du -sh /var/log/*
    # 删除旧的压缩日志(注意不要删除正在写入的实时日志)
    sudo find /var/log -type f -name "*.gz" -delete
    
  • 可以安装ncdu工具更直观地清理磁盘(如果服务器允许安装新软件):
    sudo apt install -y ncdu
    sudo ncdu /
    

3. 收缩ext4文件系统

先在线检查文件系统的完整性(因为根分区正在挂载,不能直接写检查,所以加-n参数):

sudo e2fsck -fn /dev/[your-root-partition]

如果检查无错误,就把文件系统收缩到20G:

sudo resize2fs /dev/[your-root-partition] 20G

执行完成后,用df -h /确认文件系统的可用空间已经对应缩小到20G左右。

4. 调整分区表大小

这一步是最危险的环节,需要在线修改正在使用的分区的分区表:

  • 启动parted工具进入交互模式:
    sudo parted /dev/[your-disk]  # 比如磁盘是/dev/sda
    
    在交互模式中执行以下操作:
    1. 查看当前分区的详细信息:print
    2. 选择要调整的根分区:resizepart [partition-number](比如根分区是1就输入1)
    3. 输入新的分区结束位置:直接输入20G
    4. 退出parted:quit
  • 验证分区调整结果:
    lsblk
    

5. 创建新分区并格式化

现在根分区只占用20G,剩下的80G是未分配空间,我们可以创建新分区:

  • 用fdisk工具创建新分区(如果是GPT分区表,建议用gdisk):
    sudo fdisk /dev/[your-disk]
    
    交互步骤:
    1. 输入n创建新分区
    2. 选择分区类型:输入p创建主分区
    3. 分区号:直接回车使用默认值(比如2)
    4. 起始扇区:直接回车使用默认的未分配起始位置
    5. 结束扇区:输入+80G(或者直接回车用完全部未分配空间)
    6. 输入w保存分区表修改
  • 格式化新分区为ext4:
    sudo mkfs.ext4 /dev/[new-partition]  # 比如新分区是/dev/sda2
    

6. 挂载新分区并设置开机自动挂载

  • 创建新分区的挂载点,比如/data:
    sudo mkdir /data
    
  • 临时挂载新分区:
    sudo mount /dev/[new-partition] /data
    
  • 设置开机自动挂载,先获取新分区的UUID:
    blkid /dev/[new-partition]
    
  • 编辑/etc/fstab文件添加挂载配置:
    sudo nano /etc/fstab
    
    在文件末尾添加一行:
    UUID=[your-new-partition-uuid] /data ext4 defaults 0 2
    
    按Ctrl+O保存,Ctrl+X退出编辑器
  • 验证自动挂载配置是否正确:
    sudo mount -a
    

操作完成后,建议重启一次服务器(如果业务允许),验证系统能正常启动,新分区也能自动挂载。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:19:37