我可以将我的 Linux Box 用作“系统映像”服务器吗?(即诺顿 Ghost 服务器?)

Edd*_*ker 3 linux backup clone

我很好奇是否有人完成了以下操作,或者知道如何设置以下内容的简洁描述。

我想设置一个 Linux 服务器,它能够通过网络克隆 PC,并通过网络恢复它们(如果可能,使用 PXE)。

有没有简单的方法可以做到这一点?任何(希望免费)可用于 Linux 的软件包可以做到这一点?

理想情况下,无论客户端操作系统如何,它都可以工作 - 我有几个想要克隆的 Windows 机器。

谢谢。

qua*_*ote 5

是的,Linux 可以配置为 PXE 系统的引导服务器,不难想象 USB 拇指驱动器、LiveCD 或 PXE 环境专门配置为使用库存(或接近库存)将硬盘驱动器映像到网络目标) 工具。

您可以使用PXElinux来配置基本的PXE服务器。如果您手头有 Linux 服务器,则可以将其用作基础。您将需要 PXE 服务器上的 BOOTP 或 DHCP、TFTP 和 PXE 守护程序。在基于 Debian 的系统上,您可以使用该pxe包来提供 PXE 守护程序。

关于客户端系统,如果您尝试对 OS 分区进行映像,则无论如何都需要从与您尝试进行映像不同的分区进行引导。如果您不想打扰完整的 PXE 服务器,您可以从 Linux LiveCD 或 USB 拇指驱动器引导以制作备份映像。


基本概念和DIY

基本 DIY 或手动系统的基本工具ddnetcat为其提供主力。理想的系统将添加partedsfdisk用于分区检测(以及在恢复时创建)、某种菜单系统,以及用于自动化后端的服务器程序。

图像创建工作流程:

  1. 启动(USB/CD/PXE)
  2. 检查分区,选择一个进行成像,记录大小
  3. 检查后端目标是否有空间
  4. 客户端上的设置发送:(dd if=/dev/sdXN | gzip -9 | nc -l 9999用于分区 /dev/sdXN)
  5. 在后端开始接收: nc x.x.x.x 9999 > IMAGE_NAME.iso.gz

图像恢复工作流程:

  1. 启动(USB/CD/PXE)
  2. 检查分区,检查是否有空间,必要时创建
  3. 在后端设置发送: dd if=IMAGE_NAME.iso.gz | nc -l 9999
  4. 在客户端上设置接收:(nc y.y.y.y 9999 | gunzip | dd of=/dev/sdYM分区 /dev/sdYM)

(netcat 示例的来源;请参阅“传输文件”和“其他示例”部分。)


Partimage 为您做到

Partimage可以在本地或跨网络保存图像文件。Partimage 的网络支持包括它自己的partimaged服务器,或将图像保存到 Samba 共享或 NFS 驱动器。请务必通读 Partimage 手册的网络支持部分

要配置partimaged服务器,请遵循此基本过程。我找到的教程建议从partimage 主页下载静态二进制文件。将其放入/var/partimaged_storage步骤 2 中创建的目录中。

该服务器也可以partimage-server在 Debian/Ubuntu 存储库中的软件包中使用;如果可用,请使用它们。(他们会自动添加守护程序用户和设置权限。)在基于 Debian 的系统上,可以在/etc/default/partimaged文件中修改服务器配置。

手动 partimaged 配置

  1. 为守护进程创建一个新用户。
    useradd -c "Partimaged User" -s /sbin/nologin -r -M partimag

  2. 创建一个运行目录,服务器将在其中运行;这也将用作默认图像文件存储位置。您可以在服务器命令行上更改此设置。
    mkdir /var/partimaged_storage
    chown -R partimag:partimag /var/partimaged_storage
    chmod -R 0700 /var/partimaged_storage

  3. 切换到目录并启动服务器。
    cd /var/partimaged_storage ; ./partimaged --debug=1
    (使用默认端口 4025;指定--port XXXX更改。)
    (指定--dest /path/to/image/storage更改用于图像存储的位置。)

跨网络保存分区

  1. 启动(USB/CD/PXE)
  2. 从客户端机器保存到 Partimaged 服务器(无需指定图像文件路径):

    partimage --server=x.x.x.x --port=4025 -z1 -o -d save /dev/sdXN IMAGE_NAME.partimg.gz
    
    Run Code Online (Sandbox Code Playgroud)

跨网络恢复分区

  1. 启动(USB/CD/PXE)
  2. 从客户端机器恢复(同样,不需要指定图像文件的路径):

    partimage --server=x.x.x.x --port=4025 restore /dev/sdXN IMAGE_NAME.partimg.gz
    
    Run Code Online (Sandbox Code Playgroud)

来源手动partimaged设置和网络保存/恢复的例子。)