如何在Linux上备份和还原分区表

时间:2020-01-09 10:41:14  来源:igfitidea点击:

是否可以仅备份我的Linux分区表并在需要时将其还原?
如果分区表在Linux操作系统上被误删除,该如何恢复?
如何在Linux上备份和还原GPT分区表?
是的,您需要同时备份数据和磁盘分区表。
这对于以下用途很有用:

  • 如果磁盘发生故障,请为Linux软件RAID复制磁盘分区。
  • 处理损坏的分区表
  • 错误地处理已删除的分区表,因为磁盘上可能仍然存在数据,并且可以使用正确的分区表再次对其进行访问。

Linux列表磁盘分区命令

如何使用sfdisk命令备份Linux分区?

要备份/dev/sda分区表,请执行:

# sfdisk -d /dev/sda > sda.partition.table.12-30-2014.txt

将sda.partition.table.12-30-2014.txt复制到NFS安装的共享或USB随身碟中。

如何使用sfdisk命令将Linux分区还原到磁盘?

# sfdisk /dev/sda < sda.partition.table.12-30-2014.txt
# sfdisk /dev/sda < /path/to/usb/pen/sda.partition.table.12-30-2014.txt

或者

# sfdisk -f /dev/sda < /media/usb/sda.partition.table.12-30-2014.txt

如何将具有相同几何结构的磁盘分区表从/dev/sda复制到/dev/sdd?

这对于基于Linux的软件RAID设备很有用。
假设您替换了/dev/sdd,并且想要重建Linux软件RAID阵列。
第一步是将分区表从磁盘复制到另一个磁盘:

# sfdisk -d /dev/sda | sfdisk -f /dev/sdd

现在,运行以下命令以验证两个硬盘驱动器具有相同的分区:

# fdisk -l /dev/sda
# fdisk -l /dev/sdd

最后,使用mdadm来管理和重建RAID设备:

# mdadm --manage /dev/mdX --add /dev/sdd1
# mdadm --manage /dev/mdX --add /dev/sdd2
....
..
# mdadm --manage /dev/mdX --add /dev/sddN

使用以下命令查看RAID阵列同步进度:

# watch cat /proc/mdstat

关于具有GPT的磁盘的说明(GUID分区表)

GPT fdisk(又名gdisk)是用于创建和操作分区表的文本模式菜单驱动程序。
它将自动将没有MBR载体分区存储的旧式主引导记录(MBR)分区表或BSD磁盘标签转换为较新的全局唯一标识符(GUID)分区表(GPT)格式,或者将加载GUID分区表。
与-l命令行选项一起使用时,该程序将显示当前分区表,然后退出。

让我们使用apt-get命令在Debian或Ubuntu Linux上安装gdisk:

$ sudo apt-get install gdisk

RHEL/CentOS用户使用yum命令安装相同的命令:

# yum install gdisk

Fedora Linux用户使用dnf命令安装相同的命令:

$ sudo dnf install gdisk

OpenSUSE Linux用户使用yast命令安装相同的命令:

# yast install gdisk

请注意,sgdisk命令可用于Linux和类似Unix的系统。

如何将/dev/sda GPT分区表备份到文件中?

要将分区数据保存到名为/root/sda_partition_table_12_30_2014的备份文件中,请运行:

# sgdisk --backup={/path/to/file} {/dev/device/here}
# sgdisk --backup=/root/sda_partition_table_12_30_2014 /dev/sda

如何从文件还原GPT分区表?

要还原备份,请使用:

# sgdisk --load-backup={/path/to/file} {/dev/device/here}
# sgdisk --load-backup=/media/usb/sda_partition_table_12_30_2014 /dev/sda

如何将GPT分区方案从/dev/sda复制到/dev/sdd(RAID阵列重建)?

语法为:

# sgdisk -R {SECOND-DEVICE-NAME-HERE} /dev/sda
# sgdisk -R /dev/sdd /dev/sda

要在/dev/sdd上随机化GUID,请执行:

# sgdisk -G /dev/sdd

最后,验证两个硬盘驱动器具有相同的分区架构:

# sgdisk -p /dev/sda
# sgdisk -p /dev/sdd

最后,使用前面所述的mdadm命令在Linux上重建RAID阵列。