如何恢复只有ssh访问和没有可用分区的clonezilla映像?

可能有不止一个正确的答案。 在该领域没有多less经验,我正在询问在这个特定任务中pipe理我的工具和资源的最佳/最可重用的方式。

设置

有一台服务器,可以通过SSH远程访问,没有物理访问。 它有两个硬盘:

  • (sda1),root / user fs(sda2),swap(sda3)和raid(sda4)分区。
  • sdb非常清晰,新鲜安装。

在sda2上,除了其他文件外,还有用Clonezilla制作的相当庞大的磁盘映像。 以前从未使用这个软件,所以我希望有一切的地方 – 这是一个包含相当多的dd-img,.mbr,列表,哈希总和等文件夹。

目标

我想说的Clonezilla磁盘映像恢复到SDB。

问题

通过物理访问,这将是容易的。 但是,现在我可以确定以下障碍:

  • 没有办法插入生活光盘/ USB启动; 但是,可以从硬盘上的iso映像运行clonezilla live。 我下载了这样的图像,并将其复制到sda2;
  • 这livehd教程说,需要为clonezilla运行准备单个FAT分区。 我绝对不会碰到sda1 / 3/4(boot,swap和raid数据,我不想丢失),而且我恐怕不能在sda2上分配系统数据。 所以也许使用sdb(目标磁盘),并让它被覆盖一旦启动clonezilla去内存? 或者反过来使用sda4,然后从备份中恢复它?
  • 再次,只有远程访问和clonezilla默认情况下禁用ssh。 指向这个文档的 这个答案听起来像是一个解决scheme,虽然需要PXE设置。 从来没有这样做过。

可能的路线?

现在我正考虑在不同的机器上设置PXE服务器,并指向我的“目标”服务器从中获取启动信息。 在这种情况下,clonezilla映像应放在哪台机器上?

或者,因为我希望这是一次性的任务,也许我可以简化一些东西? 编辑clonezilla镜像(可以正常挂载,对吗?)默认允许ssh,可能是限制IP访问或者更改默认密码?

最后,你将如何去从这个图像运行系统? 如果确实需要单独分区,我可以在哪里存储它? 如果最好的答案是清晰的“目标”磁盘上的分区,如何使系统在启动时进入内存? 请记住,一旦它完全活着,就只能够进入ssh(如此,启动,networking启动等)。

我希望这听起来不那么混乱:)对于我和我以前的经历来说情况相当复杂; 我希望这里的某个人能够把我定下来。

经过相当多的试验和错误,我find了一个方法。 希望对某个人有所帮助。

任务完成后,我的磁盘被恢复,这里是如何:

  1. 根据这个文档下载Clonezilla,直到configurationGRUB(如此,下载,解压缩,更改'活'文件夹名称);
  2. 使用fdisk和mkvfat在sdb上设置FAT32分区(要还原到“目标”的磁盘)。 分区大小足以存储活的Clonezilla镜像(200M?),并被设置为可启动。
  3. 通过创build这个条目来configurationGRUB:(解释如下)

    menuentry "Clonezilla" { set root=(hd1,1) linux /live-hd/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_prerun=\"dhclient -v eth0\" ocs_live_run=\"/bin/bash\" ocs_live_extra_param=\"\" keyboard-layouts=NONE ocs_live_batch=no locales=en_US.UTF-8 vga=788 ip= nosplash live-media-path=/live-hd bootfrom=/dev/sdb1 toram usercrypted= ocs_daemonon=\"ssh\" i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.blacklist=yes initrd /live-hd/initrd.img } 
  4. GRUBconfiguration被重新创build,包含这个条目(grub2-mkconfig),并select了引导模式。 有两条路线:

    • 在创buildconf之前,在/ etc / default / grub中将此项设置为默认值
    • 或者只是添加它,并select启动时,如果你有KVM IP设置(所以kiiiinda像物理访问机器,不会允许BIOS操作,但启动项切换 – 是的)。
  5. 重新启动机器,等待它启动到Clonezilla并通过SSHlogin为“用户” – 它具有sudo权限。

  6. 在命令行中运行“clonezilla”脚本,遵循标准教程

  7. 返回到terminal并交换引导到您的正常系统(否则它将失败,在现在不存在的分区上searchclonezilla)。 重启。 请享用。

grub菜单项是做什么的?

它是从两个教程和一些实验编译的: http : //clonezilla.org/livehd.php http://clonezilla.org/show-live-doc-content.php?topic=clonezilla-live/doc/05_Started_with_sshd_on_and_passwd_assigned

目的是要拥有它:

  • 在启动时configurationnetworking,因此ocs_prerun=dhclient选项
  • 运行bourne shell( ocs_live_run=/bin/bash
  • ip=<empty>为了不惹dhclient
  • toram没有任何选项,为了把整个系统放到RAM中,所以它可以覆盖原来从它启动的磁盘。这使它成为一次性的操作,然后你的live clonezilla消失了
  • 启用S​​SH服务器( ocs_daemonon=ssh ),并为用户设置[可选]密码('usercrypted')。 密码部分按照第二个教程链接的描述工作。 也许(未经testing),您可以将其保留为空,并以无用户密码的身份访问 – 在这种情况下,在login后立即更改密码可能是个好主意。

唷,就是这样。 我真的很高兴我解决了这个难题,同时我也感到有些更有经验的人会在一两分钟内做这件事。