Linode SSH 备份: 通过SSH备份或者恢复整个硬盘

· LinodeLinux教程

Linode SSH 备份, 通过 Linode 面板提供的完善功能,你可以利用 SSH 将你的 Linode 整个硬盘在不同机器之间传输,即备份和恢复。同时 SSH 的这个高级用法,也非常适合在 Linux 主机之间使用。在这篇指引中,你将Get 到这项技能。

准备工作

检查接收机器已经安装好 SSH,默认已经安装。

启动 Linode 进入安全模式

在启动数据传输前,请让你的 Linode 系统进入救援模式,并启动 SSH:

  1. 启动并进入救援模式
  2. 通过 Lish 进入Linode 系统后,首先修改 root 密码:
    passwd
  1. 输入 root 密码
  2. 输入以下命令启动 SSH 服务:
/etc/init.d/ssh start

Linode SSH 备份 硬盘数据

现在 Linode 已经运行在救援模式下了,你可以随心所欲的折腾你的硬盘数据了,下面是介绍如何将 Linode 硬盘通过 SSH 传输(备份)到其他主机上:

  1. 在接收(备份)机器上输入以下命令,将123.45.67.89 替代为你的 Linode IP地址,以及/home/archive/linode.img 替换为你想备份到的路径:
    ssh root@123.45.67.89 "dd if=/dev/xvda " | dd of=/home/archive/linode.img
  1. 接收机器SSH 连接上 Linode后出现以下提示,输入“yes”,并回车:

    The authenticity of host ‘123.45.67.89 (123.45.67.89)’ can’t be established. RSA key fingerprint is 39:6b:eb:05:f1:28:95:f0:da:63:17:9e:6b:6b:11:4a. Are you sure you want to continue connecting (yes/no)? yes

  2. 输入 Linode 的 root 密码:

    Warning: Permanently added ‘123.45.67.89’ (RSA) to the list of known hosts. root@123.45.67.89’s password:

    传输开始启动,你会看到以下结果:

    4096000+0 records in 4096000+0 records out 2097152000 bytes (2.1 GB) copied, 371.632 seconds, 5.6 MB/s 4096000+0 records in 4096000+0 records out 2097152000 bytes (2.1 GB) copied, 364.002 s, 5.8 MB/s

    拷贝会持续一段时间,请耐心等待,假如你看到 Write failed: Broken pipe 的错误提示,请重新执行本步骤。

检查硬盘

当备份完成后,你可以通过 mount 的方式检查传输是否有问题

  1. 使用 Root 用户登陆接收主机(Linux 系统):
su
  1. 创建目录:
    mkdir linode
  1. 加载接收的硬盘到该目录,命令如下:
    mount -o loop linode.img linode
  1. 输入下面命令来检查文件是否缺失:
    ls linode/
你应该看到类似的文件列表,如下,表明你的传输已经成功:

bin   dev  home  lost+found  mnt  proc  sbin     srv  tmp  var
boot  etc  lib   media       opt  root  selinux  sys  usr

至此,你已经成功完成了 Linode 硬盘的备份。

上传硬盘数据到 Linode

当你有了一份你的 Linux 硬盘拷贝后,某天你想要恢复这个系统时,应该怎么做呢?

  1. 准备好一块空白的新硬盘,在 Linode 面板上选择 Add a disk(创建一块新硬盘)

    Linode SSH 备份

  2. 输入 Label(名称),并分配足够的Size**(大小)**给新的数据。最后点击 Save Changes(保存更改)

  3. 启动并进入救援模式

  4. 登陆保存待恢复硬盘数据的主机,输入以下命令,其中/home/archive/linode.img/为之前保存硬盘镜像的路径;``123.45.67.89 替换为你的 Linode 主机 IP。

dd if=/home/archive/linode.img | ssh root@123.45.67.89 "dd of=/dev/xvda"
当传输完成,你会看到类似如下的结果:

 49807360+0 records in
 49807360+0 records out
 25501368320 bytes transferred in 9468.878375 secs (2693177 bytes/sec)
 49807360+0 records in
 49807360+0 records out
 25501368320 bytes (26 GB) copied, 9462.12 s, 2.7 MB/s

> 拷贝会持续一段时间,请耐心等待,假如你看到 `Write failed: Broken pipe` 的错误提示,请重新执行本步骤。

检查硬盘

和上面类似,当上传完成后,你也需要通过 mount 的方式检查传输是否有问题

  1. 创建目录:
    mkdir linode
  1. 加载接收的硬盘到该目录,命令如下:
    mount /dev/xvda linode
  1. 输入下面命令来检查文件是否缺失:
    ls linode/
你应该看到类似的文件列表,如下,表明你的传输已经成功:

bin   dev  home  lost+found  mnt  proc  sbin     srv  tmp  var
boot  etc  lib   media       opt  root  selinux  sys  usr

从恢复硬盘启动系统

你需要创建一个新的系统配置文件,然后设置以接收到的硬盘作为启动盘。

  1. 在 Linode 后台面板,选择 Add a New Configuration(创建新的系统配置)

    Linode SSH 备份

  2. 输入新的系统配置 Label(名称),在 Block Device Assignment (设备分配)一栏中,设置 /dev/xvda (启动盘)为刚刚接收并恢复数据进去的新硬盘。设置 SWAP 分区到 /dev/xvdb 。点击 Save changes(保存配置)。

  3. 回到 Linode 后台 dashboard 页面,选择刚刚创建的系统配置,并点击 Reboot(重启).

  4. 这样,就完成了 Linode 备份 与硬盘恢复。