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- 查看当前分区的详细信息:
print - 选择要调整的根分区:
resizepart [partition-number](比如根分区是1就输入1) - 输入新的分区结束位置:直接输入
20G - 退出
parted:quit
- 查看当前分区的详细信息:
- 验证分区调整结果:
lsblk
5. 创建新分区并格式化
现在根分区只占用20G,剩下的80G是未分配空间,我们可以创建新分区:
- 用
fdisk工具创建新分区(如果是GPT分区表,建议用gdisk):
交互步骤:sudo fdisk /dev/[your-disk]- 输入
n创建新分区 - 选择分区类型:输入
p创建主分区 - 分区号:直接回车使用默认值(比如
2) - 起始扇区:直接回车使用默认的未分配起始位置
- 结束扇区:输入
+80G(或者直接回车用完全部未分配空间) - 输入
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 2Ctrl+O保存,Ctrl+X退出编辑器 - 验证自动挂载配置是否正确:
sudo mount -a
操作完成后,建议重启一次服务器(如果业务允许),验证系统能正常启动,新分区也能自动挂载。
备注:内容来源于stack exchange,提问作者Mehdi Karimi
相关产品推荐
相关产品推荐

