当前位置: 首页 > news >正文

【运维】Ubuntu换硬盘扩容

背景

原本的ubuntu状态一张512GB的固态硬盘上,即/目录在该固态上,/opt目录挂在在一张2T固态上,现在希望将2T固态用作系统盘,且保持原有系统设置、安装软件、驱动。

约束

由于这里涉及到硬盘维护,数据无价,谨慎为上,能备份尽可能先对数据进行备份。这里我使用了一张20T的机械硬盘对/opt目录进行迁移。

实际操作

迁移前注意事项

由于ubuntu中很多设置会使用到/opt目录,如docker的containerd目录就在/opt目录下,调整期间还会涉及到重启电脑,所以该调整前,请关闭一些电脑上的服务。只保留该操作本身。

操作

停用docker服务

sudo systemctl disable docker

迁移opt数据

由于原本的/opt目录中数据约有1T,机械硬盘的写入速度只有240MB/s,这里需要等待很长时间

mv /opt /data/opt_bak

查看硬盘

sudo fdisk -l

可以看到如下信息(这里截取需要的部分),实际操作可能根这里有些不同,取决于你实际的硬盘配置,如有的是sata硬盘,显示的盘符为 /dev/sd* 。

Disk /dev/nvme1n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: HS-SSD-C2000Pro 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 23E82A7D-256B-11EF-B2F5-D340623B9724Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
Disk model: Asgard AN4.0 2TNVMe-M.2/80
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4846C0FB-FF82-4415-9D42-B3D0F97133D3

卸载挂载

这里因为我的2T盘挂载为/opt目录,所以执行操作前需要先卸载/opt

umount /opt

格式化新硬盘

sudo mkfs.ext4 /dev/nvme0n1

取消自动挂载

通过编辑 fstab 文件中的挂载项,来取消自动挂载(如果设置过,否则略过)

sudo vim /etc/fstab

写入原系统数据

sudo dd if=/dev/nvme1n1 of=/dev/nvme0n1 bs=16M status=progress

完成上述操作后,就可以重启电脑了,重启之后记得从新的引导中进入系统,但此时我们扩容还未完成,进入系统后,发现当前的硬盘还是之前大小。

使用gparted扩容分区

这个扩容工具很简单,这里只介绍安装

sudo apt update
sudo apt install gparted parted
lsblk

恢复opt目录

sudo mv /data/opt_bak /opt

相关文章:

  • web刷题记录(5)
  • Python网络爬虫4-实战爬取pdf
  • PDF编辑与修正 提高工作效率 Enfocus PitStop Pro 2022 中文
  • Spring应用如何打印access日志和out日志(用于分析请求总共在服务耗费多长时间)
  • Mybatis06-动态SQL
  • K8s 卷快照类
  • WindTerm使用SSH密钥连接阿里云实例,服务器设置SSH密钥登录
  • NIFI启动后密码在哪里
  • STM32MP135裸机编程:配置RCC,修改主频到1GHz
  • XX食品有限公司智能制造汇报材料(71页PPT)
  • Claude3 注册及升级教程(包含封号解决方法)
  • VBA即用型代码手册:删除空列Delete Empty Columns
  • Docker面试整理-如何进行Docker镜像的构建和发布?
  • Matlab笔记
  • 3072. 将元素分配到两个数组中 II
  • 【Amaple教程】5. 插件
  • 【Linux系统编程】快速查找errno错误码信息
  • Apache的80端口被占用以及访问时报错403
  • JAVA_NIO系列——Channel和Buffer详解
  • sessionStorage和localStorage
  • sublime配置文件
  • Terraform入门 - 3. 变更基础设施
  • Vim Clutch | 面向脚踏板编程……
  • vue 个人积累(使用工具,组件)
  • 百度地图API标注+时间轴组件
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 从重复到重用
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于字符编码你应该知道的事情
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 强力优化Rancher k8s中国区的使用体验
  • 深入浅出Node.js
  • 学习Vue.js的五个小例子
  • 一个JAVA程序员成长之路分享
  • ionic异常记录
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​configparser --- 配置文件解析器​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • ​字​节​一​面​
  • "无招胜有招"nbsp;史上最全的互…
  • #70结构体案例1(导师,学生,成绩)
  • (07)Hive——窗口函数详解
  • (1)Nginx简介和安装教程
  • (6)STL算法之转换
  • (8)STL算法之替换
  • (javaweb)Http协议
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (阿里云万网)-域名注册购买实名流程
  • (八)Flask之app.route装饰器函数的参数
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (第30天)二叉树阶段总结
  • (二十六)Java 数据结构
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot 智能停车场系统 毕业设计065415