Linux 迁移数据到大硬盘

作者: 四明羽客 | 来源:发表于2016-04-07 15:25 被阅读978次

我有一个块1T的硬盘用来备份数据,但在工作了一段时间之后,硬盘满了。
我买了一块4T的硬盘用来替换它,但1T硬盘中的数据还有用,所以必须将数据迁移到4T硬盘中。

首先说明下两个硬盘的情况:
1T硬盘(/dev/sdc)采用msdos分区表,只划分了一个分区 /dev/sdc1,容量为1T,文件系统类型EXT4
4T硬盘(/dev/sdb)采用GPT分区表,也只划分了一个分区/dev/sdb1,容量为4T,文件系统类型EXT4

拷贝开始,使用dd工具从1T硬盘拷贝数据到4T盘,命令如下:

# dd if=/dev/sdc1 of=/dev/sdb1

提示,可以另开一个终端输入

# watch -n 1 killall -USER1 dd

命令来显示拷贝进度

关于dd工具的具体使用方法见man
这里要注意的是拷贝的源和目标分别是/dev/sdc1/dev/sdb1 这两个分区,而不是/dev/sdc/dev/sdb这两个硬盘名称
如果使用硬盘名称作为源和目标,那么因为dd是二进制拷贝,会用1T 硬盘的分区表和分区信息覆盖4T硬盘的分区表和分区信息,而我们知道msdos分区表是不支持2T以上的硬盘的。

dd工具会将uuid也一起拷贝,所以拷贝完成之后,只要将1T的硬盘拆卸下来,替换上4T的硬盘,不用修改/etc/fstab文件,就能按照你以前的设置自动挂载。

做完上述操作之后,使用df -h命令查看,会发现4T的硬盘虽然已经自动挂载了,但它显示的容量却不对,明明/dev/sdb1分区划分了4T,但用df命令查看却发现,它的总容量竟然是1T,也就是之前1T硬盘/dev/sdc1分区的总容量。

这是因为文件系统没有更新硬盘信息,依然按照之前的1T 硬盘在计算容量。可以使用e2fsckresize2fs工具修改此问题。参考

# umount /dev/sdb1         // 记得在操作之前先卸载所有挂载
# e2fsck -f /dev/sdb1
# resize2fs /dev/sdb1

相关文章

  • Linux 迁移数据到大硬盘

    我有一个块1T的硬盘用来备份数据,但在工作了一段时间之后,硬盘满了。我买了一块4T的硬盘用来替换它,但1T硬盘中的...

  • Linux Jenkins数据迁移

    Jenkins数据迁移主要涉及到插件plugins、项目工程jobs、用户users,对应目录文件夹都在jenki...

  • 【Linux运维】- Linux基础实战之数据迁移

    【Linux运维】- Linux基础实战之数据迁移 8月29日下午3点开始 模拟企业中对于数据的操作流程,从基本知...

  • golang迁移大批量mysql数据

    迁移1亿条MySQL数据需要考虑到数据的大小和迁移的速度。以下是一些使用Golang迁移MySQL数据的建议: 优...

  • 2019-04-16-周二~2019-04-19-周五

    8域Oracle到Hbase数据迁移

  • Centos 7系统挂载NTFS格式移动硬盘

    有些时候做大数据量迁移时,为了快速迁移大数据,有可能在Linux服务器上临时挂载NTFS格式的移动硬盘, 一般情况...

  • 2018-01-17

    Linux安装 2-4 Linux分区 分区:把大硬盘分为小的逻辑分区 格式化:写入文件系统 分区设备文件名:给每...

  • Linux:如何挂载NTFS移动硬盘

    从windows平台迁移数据至Linux平台,有时候会用到NTFS文件系统的硬盘,但Linux的file syst...

  • 迁移MySQL

    迁移(MySQL 5.6.44 --> 5.7.26) 搭建MySQL 5.6.44 测试环境 迁移5.6数据到5...

  • docker volume迁移

    应用容器化后,将数据路径持久化到宿主机中。当应用做迁移后,数据部分也需要进行迁移。 迁移思路:使用 --volum...

网友评论

    本文标题:Linux 迁移数据到大硬盘

    本文链接:https://www.haomeiwen.com/subject/elnmlttx.html