在Linux(CentOS/RHEL 7)中备份和还原分区表的2种方法

时间:2020-01-09 10:37:18  来源:igfitidea点击:

在上一篇文章中,我概述了公钥基础结构(PKI),并分享了在Linux中使用openssl生成自签名证书的步骤。

接下来,让我向我们展示将分区表从一个磁盘复制到另一个磁盘或者在Linux中备份和还原分区表的步骤。

本文中备份和还原分区表的步骤在cents S 7上执行,也可以在RHEL 7 Linux节点上执行。

在对分区表进行任何类型的备份或者还原过程之前,必须了解分区方案的不同类型。

GPT与MBR。

在GPT分区上,我们无法执行分区表的此类备份和还原。

使用" sfdisk"命令还原分区表

运行以下命令,将设备"/dev/sda"上的分区表备份到" /root/partition-sda.img":

[root@node2 ~]# sfdisk -d /dev/sda > /root/partition-sda.img
[root@node2 ~]# ls -l /root/partition-sda.img
-rw-r--r-- 1 root root 259 Apr 18 14:52 /root/partition-sda.img

如我们所见,输出是ASCII类型的文本文件。

[root@node2 ~]# file /root/partition-sda.img
/root/partition-sda.img: ASCII text

该文件的内容

[root@node2 ~]# cat /root/partition-sda.img
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start=     2048, size=  1048576, Id=83, bootable
/dev/sda2 : start=  1050624, size= 57688064, Id=8e
/dev/sda3 : start=        0, size=        0, Id= 0
/dev/sda4 : start=        0, size=        0, Id= 0
  • 然后,我们应该将/root/partition-sda.img复制到其他存储设备,例如便携式USB磁盘。

  • 如果分区已损坏并且需要从备份还原,请将USB磁盘连接到服务器,然后使用安装介质和"进入救援模式"启动服务器。

  • 此时不要挂载根分区-当系统询问我们是否要在/mnt/sysimage上挂载根分区时,请选择"跳过"。

  • 创建一个临时目录,例如"/mnt/temp",然后挂载包含备份的USB设备的文件系统。

例如:

# mkdir /mnt/temp
# mount /dev/sdb1 /mnt/temp/
# cd /mnt/temp/

其中"/dev/sdb1"是USB磁盘的文件系统。
之后,运行:

# sfdisk /dev/sda < /mnt/temp/partition-sda.img

要验证分区表是否已还原,请运行:

# fdisk -l /dev/sda

使用" dd"命令还原分区表

MBR(主引导记录)占用磁盘的前446个字节,而分区表则占用接下来的64个字节。

我们可以使用dd在第一个扇区中转储447 510字节的范围。

例如,如果硬盘为/dev/sda,则运行以下命令:

# dd if=/dev/sda of=/root/partition-sda.img bs=1 count=64 skip=446
  • 然后,我们应该将/root/partition-sda.img复制到其他存储设备,例如便携式USB磁盘。

  • 如果分区已损坏并且需要从备份还原,请将USB磁盘连接到服务器,然后使用安装介质和"进入救援模式"启动服务器。

  • 此时不要挂载根分区-当系统询问是否要将根分区挂载在/mnt/sysimage上时,请选择" Skip"。

  • 创建一个临时目录,例如"/mnt/temp",然后挂载包含备份的USB设备的文件系统。

例如:

# mkdir /mnt/temp
# mount /dev/sdb1 /mnt/temp/
# cd /mnt/temp/

其中"/dev/sdb1"是USB磁盘的文件系统。
之后,运行:

# dd if=/mnt/temp/partition-sda.img of=/dev/sda bs=1 count=64 seek=446

要验证分区表是否已还原,请运行:

# fdisk -l /dev/sda

上面的方法假定硬盘驱动器没有坏块或者任何类型的物理问题。
这两种方法仅支持MS-DOS分区表,不支持GPT分区表。