在Linux(CentOS/RHEL 7)中备份和还原分区表的2种方法
在上一篇文章中,我概述了公钥基础结构(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分区表。