Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.5. 恢复 ext2、ext3 或 ext4 文件系统

这个步骤描述了如何从文件备份中恢复 ext4、ext3 或 ext2 文件系统。

先决条件

过程 5.2. 恢复 ext2、ext3 或 ext4 文件系统

  1. 如果您要恢复操作系统分区,请将您的系统引导至救援模式。请参阅 系统管理员 指南中的引导到救援模式 部分
    普通数据分区不需要这一步。
  2. 使用 fdiskparted utilites 重建您要恢复的分区。
    如果分区不再存在,重新创建它们。新分区必须足够大以包含恢复的数据。正确获取开始和结束号非常重要;它们是在备份时从 fdisk 实用程序获取的分区的开始和结束扇区号。
    有关修改分区的详情,请参考 第 13 章 分区
  3. 使用 mkfs 工具格式化目标分区:
    # mkfs.ext4 /dev/device
    重要
    不要 格式化存储您的备份文件的分区。
  4. 如果您创建了新分区,请重新标记所有分区,以便它们与 /etc/fstab 文件中的条目匹配:
    # e2label /dev/device label
  5. 创建临时挂载点并在其上挂载分区:
    # mkdir /mnt/device
    # mount -t ext4 /dev/device /mnt/device
  6. 从挂载的分区上的备份中恢复数据:
    # cd /mnt/device
    # restore -rf device-backup-file
    如果要在远程机器上恢复或从保存在远程主机上的备份文件恢复,您可以使用 ssh 工具。有关 ssh 的更多信息,请参阅 系统管理员指南中的使用 ssh 实用程序 章节。
    请注意,您需要为以下命令配置免密码登录。有关设置免密码 ssh 登录的更多信息,请参阅 系统管理员 指南中的使用基于密钥的身份验证部分
    • 从存储在同一台机器上的备份文件恢复远程机器上的分区:
      # ssh remote-address "cd /mnt/device && cat backup-file | /usr/sbin/restore -r -f -"
    • 从存储在不同远程机器上的备份文件恢复远程机器上的分区:
      # ssh remote-machine-1 "cd /mnt/device && RSH=/usr/bin/ssh /usr/sbin/restore -rf remote-machine-2:backup-file"
  7. reboot:
    # systemctl reboot

例 5.4. 恢复多个 ext4 分区

要从 例 5.2 “备份多个 ext4 分区” 恢复 /dev/sda1、 /dev/sda2/dev/sda3 分区:
  1. 使用 fdisk 命令重建您要恢复的分区。
  2. 格式化目标分区:
    # mkfs.ext4 /dev/sda1
    # mkfs.ext4 /dev/sda2
    # mkfs.ext4 /dev/sda3
  3. 重新标记所有分区,以便它们与 /etc/fstab 文件匹配:
    # e2label /dev/sda1 Boot1
    # e2label /dev/sda2 Root
    # e2label /dev/sda3 Data
  4. 准备工作目录。
    挂载新分区:
    # mkdir /mnt/sda1
    # mount -t ext4 /dev/sda1 /mnt/sda1
    # mkdir /mnt/sda2
    # mount -t ext4 /dev/sda2 /mnt/sda2
    # mkdir /mnt/sda3
    # mount -t ext4 /dev/sda3 /mnt/sda3
    挂载包含备份文件的分区:
    # mkdir /backup-files
    # mount -t ext4 /dev/sda6 /backup-files
  5. 将数据从备份恢复到挂载的分区:
    # cd /mnt/sda1
    # restore -rf /backup-files/sda1.dump
    # cd /mnt/sda2
    # restore -rf /backup-files/sda2.dump
    # cd /mnt/sda3
    # restore -rf /backup-files/sda3.dump
  6. reboot:
    # systemctl reboot

其它资源

  • 如需更多信息,请参阅 restore(8) man page。