如何在Linux中克隆一个分区或者硬盘驱动器

有很多你想要可令一个Linux分区或者甚至硬盘驱动器的原因,其中大部分原因是与创建你数据的备份有关。在Linux中你通过诸如partimage或Clonezilla的一些外部工具实现这个目标。

在本文中,我们将回顾用称作dd的工具进行Linux磁盘克隆,这个工具最常用于转换或复制文件并且它预装在大部分Linux发行版中。

如何克隆Linux分区

你能够用dd命令复制整个磁盘驱动器或者仅一个Linux分区。我们从克隆我们一个分区开始。在这里,我有以下驱动器:/dev/vda,/dev/vdb,我将克隆/dev/vdb1到/dev/vdb2。

首先使用如下所示fdisk命令列出这些分区:

[root@telecom ~]# fdisk -l /dev/vdb1 /dev/vdb2

Disk /dev/vdb1: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vdb2: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

现在使用以下dd命令克隆一个分区/dev/vdb1到/dev/vdb2。

[root@telecom ~]# dd if=/dev/vdb1 of=/dev/vdb2
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 526.379 s, 20.4 MB/s

在克隆Linux分区之后,你可以用以下检查两个分区:

[root@telecom ~]# fdisk -l /dev/vdb1 /dev/vdb2

Disk /dev/vdb1: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vdb2: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

如何克隆Linux硬盘驱动器

克隆一个Linux硬盘驱动器类似克隆一个分区。但是不是指定分区,你只要指定整个驱动器。注意:推荐磁盘驱动器大小与源驱动器大小相同(或更大)。

[root@telecom ~]# dd if=/dev/vda of=/dev/vdb
83886080+0 records in
83886080+0 records out
42949672960 bytes (43 GB) copied, 2479.5 s, 17.3 MB/s

这应该用在硬盘驱动器/dev/vdb上复制了/dev/vda的分区。你可以用lsblk命令列出两个驱动器验证变化。

[root@telecom ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk
├─vda1 253:1    0   4G  0 part [SWAP]
└─vda2 253:2    0  36G  0 part /
vdb    253:16   0  50G  0 disk
├─vdb1 253:17   0   4G  0 part
└─vdb2 253:18   0  36G  0 part

如何在Linux中备份MBR

dd命令也可以用于备份你的MBR,它位于驱动器的第一个扇区,在第一个分区之前。所以如果你想要创建你的MBR的备份,只要运行:

# dd if=/dev/vda of=/backup/mbr.img bs=512 count=1

以上命令告诉dd用512字节步长和count选项复制/dev/vda到/backup/mbr.img告诉只复制一个块。换句化,你告诉dd从/dev/vda复制最前面的512字节到你提供的文件。

[root@telecom ~]# dd if=/dev/vda of=/tmp/mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0218645 s, 23.4 kB/s
[root@telecom ~]# ls /tmp/mbr.img  -l
-rw-r--r-- 1 root root 512 Jul  9 21:51 /tmp/mbr.img

如何使用'cat'命令备份或克隆Linux分区

Linux cat命令的粗略使用是通过对照硬盘分区、或U盘或者本地映像文件重定向这个命令输出制作完整磁盘备份或者磁盘分区备份或者一个磁盘分区克隆或者写输出到一个网络套接字。

当dd更容易地做相同的工作时,你正常地认为我们为什么应该使用cat,因为碰到速度和性能时,cat比dd快得多。

dd提供了更多选项并且在处理诸如磁带驱动器的大型备份非常有用,而cat包括更少的选项并且它不是dd必要的替代,但还是在可用时的一个选项。

在复制一个分区的内容到一个新的未格式化分区中,cat命令非常成功地完成了这个工作。唯一要求是要提供一个有效的磁盘分区,这个磁盘分区要有已有文件的最小尺寸并且没有系统文件。

在以下示例中,在第一个硬盘上的第二个分区,其对应/根分区,即/dev/vda2,使用Linux重定向操作符被克隆到了第二个磁盘的第二个分区。

[root@telecom ~]# mount /dev/vdb2 /mnt/clone

在以上命令结束后,克隆分区被挂载到/mnt并且列出两个挂载点目录来检查是否缺失任何文件。

[root@telecom ~]# ls /mnt/clone/
bin                       dev   lib64       opt   sbin  usr
boot                      etc   lost+found  proc  srv   var
CloudResetPwdUpdateAgent  home  media       root  sys
CloudrResetPwdAgent       lib   mnt         run   tmp
[root@telecom ~]# ls /
bin                       dev   lib64       opt   sbin  usr
boot                      etc   lost+found  proc  srv   var
CloudResetPwdUpdateAgent  home  media       root  sys
CloudrResetPwdAgent       lib   mnt         run   tmp
[root@telecom ~]# ls /root/
frp_0.33.0_linux_amd64.tar.gz  gitproject  install_frp.sh  pythondownload
[root@telecom ~]# ls /mnt/clone/root/
frp_0.33.0_linux_amd64.tar.gz  gitproject  install_frp.sh  pythondownload

为了扩展这个分区文件系统到最大尺寸,用root特权发出以下命令:

[root@telecom ~]# resize2fs /dev/vdb2
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 9436923 blocks long.  Nothing to do!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值