首先会想到dd命令.

但,,

1,若是小硬盘还好,上T的大硬盘这样做肯定不明智;

2,况且dd是在硬件层面的拷贝,前面的MBR也会随之恢复到另一个盘,若源硬盘是100G,目标盘是200G,又会出问题,200G的硬盘由于被覆盖写入了100G硬盘的MBR导致只可用100G,更何况重写MBR相当的麻烦;

所以最好不要用类似 dd if=/dev/sda of=/dev/sdb 的方式来备份至另一硬盘.

这里推荐用tar 的方式拷贝.

首先参照fdisk -l 的显示将目标硬盘用fdisk跟源硬盘一样分区,每个分区的起始柱更结束柱都能看到,当然也可以根据需要自己定义分区大小;

其中,swap 分区在fdisk 中新建好分区之后(也就是分配好了分区好之后)用t选项指定ID为82即可,若是fat32则为b;

分完以后更新分区表(或重启,肯定前者更明智):

# partprobe

再用mkfs格式化.(源硬盘的分区格式可用#df -T 查看)

#mkfs -t ext3 /dev/sdb1

随后就可逐个分区将源硬盘分区备份至目标硬盘分区:

# mkdir /mnt/sda1 /mnt/sdb1
# mount /dev/sda1 /mnt/sda1
# mount /dev/sdb1 /mnt/sdb1
# cd /mnt/sda1
# tar -cpv . | tar -xpC /mnt/sdb1

当然有人会说这样麻烦,直接dd if=/dev/sda1 of=/dev/sdb1,这样也不是说不可,但是,,,

1,要是一个比较大的分区无谓的拷贝空数据不是聪明的做法;

2,tar在拷贝恢复的时候顺便解决了碎片问题,所以这样对系统的拷贝来说个人是十分推荐的.(尽管对于linux分区格式来说不用过多担心磁盘碎片的问题)

对于备份恢复后加载swap分区的错误:“ read swap header failed:invaild argument”.

# mkswap /path/to/swap         ## eg: mkswap /dev/sda4

Linux下备份系统至另一硬盘的更多相关文章

  1. Linux下获得系统时间的C语言实现

    Linux下获得系统时间的C语言的实现方法 #include<time.h> //C语言的头文件#include<stdio.h> //C语言的I/O   int main() ...

  2. buntu下备份系统的方法

    今天不小心强行结束了一不知道用处的进程,结果造成进不了x界面,gdm启动不了,使用apt-get进行修复,结果几乎要把整个x界面有关的软件包删除,所以只好重装系统,为了防止下次出现类似的问题,所以把系 ...

  3. linux下备份mysql数据

    一.业务场景 自己现在做的项目基本上已经开发完成,正式开始上线运行,主要包含两个子项目一个是小程序的后台,一个是后台管理系统. 正式开始运行一段时间后,基本上也没什么BUG了,整个项目都已经能够正常的 ...

  4. Linux下修改系统编码的操作记录

    Linux系统安装后,发现中文显示乱码.因为系统编码为en_US.UTF-8,应改为支持中文的编码(即zh_CN.UTF-8)操作记录如下:1)检查linux的系统编码检查linux的系统编码,确定系 ...

  5. linux 下查看系统内存使用情况的方法

    在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux 下查看内存使用情况的free命令: [root@scs ...

  6. linux下清理系统垃圾

    可以使用以下命令清理系统垃圾sudo apt-get autoclean 清理旧版本的软件缓存sudo apt-get clean 清理所有软件缓存sudo apt-get autoremove 删除 ...

  7. linux下查看系统属性

    inux下查看系统属性1.查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu类型: grep "model name" /proc/cpuinfo2.查 ...

  8. linux下查看cpu,内存,硬盘等硬件信息的方法

    说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息.但是对于双核的cpu,在cpuinfo中会看到两个cpu.常常会让人误以为是两个单核的cpu. 一.linux CPU大小 ...

  9. Linux下CenOS系统 安装MariaDB

    1.首先去MariaDB官网下载安装包,首页是:https://mariadb.org/ 2.放在linux下的新建目录下:/root/mariadb 然后解压缩,命令为:tar -xzvf mari ...

随机推荐

  1. Linux命令(2) - 查看目录和文件大小: du -sh

    [root@hadoop01 ~]# ll total 156 drwxr-xr-x. 18 root root 4096 Jan 5 05:05 apps -rw-r--r--. 1 root ro ...

  2. windows下重新安装TCP/IP协议栈

    一.windows重装TCP/IP协议     前两天在windows下安装开发环境的时候,把系统的TCP/IP协议栈给搞跪了,导致系统无法ping localhost.无法在程序中创建socket等 ...

  3. PhoneGap插件开发流程

    前几天写了一个PhoneGap插件,这个插件的功能很简单,就是开启viewport设置.不过与其它插件相比,有好几个有意思的地方,仔细读了PhoneGap的源码才搞定.这里记录一下PhoneGap插件 ...

  4. js时间差转为天数

    function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式 var aDate, oDate1, oDate2, iDays aDa ...

  5. JavaScript的IIFE(即时执行方法)

    (1)标准写法 (function (window, document, undefined) { // })(window, document); (2)作用域Scope JavaScript有fu ...

  6. [Hadoop 周边] Hadoop技术生态圈

    Hadoop版本演进 当前Hadoop有两大版本:Hadoop 1.0和Hadoop 2.0. Hadoop1.0被称为第一代Hadoop,由分布式文件系统HDFS和分布式计算框架MapReduce组 ...

  7. JAVA String作业——动手动脑以及课后实验性问题

    一:如何解释这样的输出结果?从中你能总结出什么?1.源码 //mao2015.10.20 //==的两个分辨 //对原始数据而言 //对引用类型变量 public class StringPool { ...

  8. GetMemory

    在函数中动态申请内存(虚拟内存,堆),利用指针返回值指向申请的内存.

  9. Linux GDB常用命令一栏

    Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明: (*** 表示可执行程序名) (2)退出:quit.有的时候输入quit后会出现相关提示:类似 ...

  10. 初学java之接口基础

    /* 长城牌电视机 联想奔月5008PC机 */ package st; //接口回调实例 interface ShowMessage { void 显示商标 (String s); } class ...