如何恢复仅具有 ssh 访问权限且没有可用分区的 clonezilla 映像?

如何恢复仅具有 ssh 访问权限且没有可用分区的 clonezilla 映像?

可能不止一个正确答案。由于我在这方面经验不足,我问的是在这个特定任务中管理我的工具和资源的最佳/最合理方法。

设置

有一台服务器,可通过 ssh 远程访问,无需物理访问。它有两个硬盘:

  • sda 被划分为启动(sda1)、根/用户 fs(sda2)、交换(sda3)和 raid(sda4);
  • sdb 非常清晰并且是新安装的。

在 sda2 上,除了其他文件外,还有一个相当大的磁盘映像,是用克隆兹拉。之前从未使用过该软件,所以我希望一切都已就绪 - 它是一个包含大量 dd-img、.mbr、列表、哈希总和等的文件夹。

目标

我想将 Clonezilla 磁盘映像恢复到 sdb。

问题

有了物理访问,这很容易。但是,目前我发现以下障碍:

  • 无法插入 live cd/usb 进行启动;但是可以从硬盘上的 iso 映像运行 clonezilla live。我下载了此类映像并将其复制到 sda2;
  • 这个 livehd 教程说需要准备单个 FAT 分区供 clonezilla 运行。我绝对不会碰 sda1/3/4(我不想丢失启动、交换和 raid 数据),而且我害怕对包含系统数据的 sda2 进行分区。所以也许可以使用 sdb(目标磁盘),并在启动 clonezilla 进入 RAM 后将其覆盖?或者无论如何都使用 sda4 并稍后从备份中恢复它?
  • 再次,只有远程访问,并且 clonezilla 默认禁用 ssh。这个答案指向本文档听起来像是一个解决方案,尽管需要 PXE 设置。以前从未这样做过。

可能的路线?

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

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

最后,您将如何从此映像运行系统?如果它确实需要单独的分区,我应该将它存储在哪里?如果最佳答案是清除“目标”磁盘上的分区,如何让系统在启动时进入 RAM?请记住,只有在它完全处于活动状态时(即启动、网络连通等),我才能通过 ssh 进入它。

我希望这听起来没有我想象的那么混乱:) 对我和我以前的经历来说,情况相当复杂;我希望这里有人可以纠正我。

答案1

经过反复尝试,我找到了一种方法。希望它能对某些人有所帮助。

任务完成,我的磁盘已恢复,具体方法如下:

  1. 下载 Clonezilla live 按照本文档,直至配置 GRUB(因此,下载、解压、更改“live”文件夹名称);
  2. 使用 fdisk 和 mkvfat 在 sdb(要恢复到的磁盘,“目标”磁盘)上设置 FAT32 分区。分区大小足以存储实时 Clonezilla 映像(200M?)并设置为可启动。
  3. 通过创建此条目配置 GRUB:(如下所述)

    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. 重新创建了 GRUB 配置以包含此条目 (grub2-mkconfig),并选择了启动模式。有两种方式:

    • 在创建 conf 之前,在 /etc/default/grub 中将此条目设置为默认值
    • 或者只需将其添加到那里并在启动时选择,如果您已经设置了 KVM IP(因此类似于物理访问机器,不允许 BIOS 操作,但允许启动项切换 - 是的)。
  5. 重新启动机器,等待它启动到 Clonezilla 并通过 ssh 以“用户”身份登录 - 它具有 sudo 权限。

  6. 在命令行中运行“clonezilla”脚本并按照以下操作标准教程

  7. 返回终端并将启动切换至正常系统(否则会失败,在现在不存在的分区上搜索 clonezilla)。重启。尽情享受吧。

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

目标是:

  • 在启动时配置网络,因此ocs_prerun=dhclient选项
  • 运行 Bourne shell ( ocs_live_run=/bin/bash)
  • ip=<empty>为了不惹dhclient
  • toram没有选择为了将整个系统放入 RAM 中,这样它就可以覆盖最初启动的磁盘这使得它成为一次性操作,之后你的 live clonezilla 就消失了
  • 启动 SSH 服务器 ( ocs_daemonon=ssh),并为用户设置 [可选] 密码 ('usercrypted')。密码部分的工作方式与链接的第二个教程中所述一致。也许(未经测试)您可以将其留空,并以“用户”身份访问而无需密码 - 在这种情况下,登录后立即更改密码可能是个好主意。

呼,就这样了。我真的很高兴我解决了这个难题,但同时我又有一种感觉,有经验的人一两分钟就能解决它……

相关内容