惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
J
Java Code Geeks
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
量子位
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
腾讯CDC
I
InfoQ
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
爱范儿
爱范儿

博客园 - ejiyuan

vLLM + MTP + DFlash 部署测试 ChatGPT(codex) 第三方LLM配置 AI Search By PostgreSQL Jetson Orin Nano 刷机、Docker GPU 环境与大语言模型部署实践(Ollama / vLLM) arduino首选项 ESXi安装openwrt idea 如何使用Let's Encrypt和Nginx为您的网站提供免费的SSL/TLS证书 docker 安装 onlyoffice docker使用alpine构建jdk21镜像 Minio服务搭建与应用 frp内网穿透 基于Docker 的redis cluster部署 docker 部署mongoDB集群与读写分离 MariaDB MaxScale实现mysql8读写分离 ESP8266引脚的说明 Arduino uno r3 使用 ESP8266 UART-WiFi 透传模块 ESP8266 超声波测距模块HC-SR04 树莓派PICO Wifi 无线网卡 esp82666接线图 树莓派PICO读取温度传感器 树莓派使用python+继电器控制220V灯泡 docker的/var/lib/docker目录迁移
linux 系统相关工具和命令
ejiyuan · 2026-03-07 · via 博客园 - ejiyuan

一、步骤(在 Ubuntu 虚拟机终端里执行,全程 sudo)

  1. 先确认当前分区大小和未分配空间(可选,但推荐): 你应该看到 sda 总大小 ≈40GB,sda2 结束位置远小于总大小(有 free space 后面)
  2. 安装必要工具(如果没有):
    sudo apt update
    sudo apt install cloud-guest-utils -y   # 包含 growpart
  3. 扩展分区 sda2(growpart 会自动把分区推到磁盘末尾):
    • 注意:是 /dev/sda 2(空格分隔,2 是分区号)。
    • 输出类似:CHANGED: partition=2 start=xxxx end=yyyy size=zzzz(表示成功扩展)。
    • 如果报错 “no space” 或 “nothing to do”,说明分区已满(不太可能);如果是 “device busy”,重启 VM 再试。
  4. 扩展文件系统(让 ext4 用上新分区大小):
    • 这步会扫描并扩展,通常几秒到几分钟。
    • 输出会显示新大小(如从 15GB → 39GB 左右)。
  5. 验证成功
    lsblk -f   # sda2 大小应该接近 40GB
    df -h /    # / 的 Size 应该变成 ≈39-40GB,Avail 增大很多

二、系统备份与恢复

必须准备:一个大容量外部 USB 硬盘(建议 512GB+,exFAT 或 ext4 格式),空间 > NVMe 已用量(目前约 50–100GB 左右,看 df 输出)。

  1. 插上外部硬盘,确认设备名(千万别选错!):

    lsblk -f   # 看新插入的磁盘(通常 sda 或 sdb)
    sudo fdisk -l   # 确认外部硬盘大小和分区
    假设外部硬盘是 /dev/sda(无分区或有 sda1),用以下命令确认:
    sudo blkid /dev/sda*   # 看 UUID 和 LABEL
  2. 挂载外部硬盘(假设是 /dev/sda1,exFAT 或 ext4):

    sudo mkdir /mnt/backup
    sudo mount /dev/sda1 /mnt/backup   # 如果是 exFAT,用 sudo mount -t exfat /dev/sda1 /mnt/backup
    df -h /mnt/backup   # 确认空间足够
  3. 执行 dd 备份整个 NVMe(最完整方式):

    sudo dd if=/dev/nvme0n1 of=/mnt/backup/nvme-full-backup-2026-03-06.img bs=4M status=progress conv=fsync
    • if=/dev/nvme0n1:源(整个 NVMe 磁盘)
    • of=...img:目标镜像文件(放在外部硬盘)
    • bs=4M:加速
    • status=progress:显示实时进度
    • conv=fsync:确保写完再结束

    时间估计:已用 50GB ≈ 10–30 分钟(取决于 USB 速度)。

  4. 备份完成后验证 & 卸载

    ls -lh /mnt/backup/nvme-full-backup-*.img   # 检查文件大小 ≈ NVMe 总容量
    sudo sync
    sudo umount /mnt/backup
  5. 可选:压缩镜像(节省空间):

    sudo gzip /mnt/backup/nvme-full-backup-*.img

    压缩后文件会小 30–60%。

  6. 恢复
  • 把镜像文件拷到安全地方(云盘、外接硬盘多备份一份)。
  • 恢复时用同样 dd 命令反向写回:
    sudo dd if=backup.img of=/dev/nvme0n1 bs=4M status=progress conv=fsync
  • 以后系统出问题,直接恢复镜像即可。