我正在考虑执行 Clonezilla 备份并想知道选择哪种备份模式。一般来说,Clonezilla 提供以下备份选项:
对应的还原方式有两种:
我正在寻找的是这两种选择的混合体。我希望能够在完全失败的情况下恢复特定分区和恢复我的完整硬盘驱动器。Clonezilla 是否支持这种开箱即用的恢复途径?
到目前为止,我还没有找到任何关于此的官方文档。我找到的唯一参考是2010年的邮件列表讨论,它指向imgconvert,这是一个自定义脚本,可以将磁盘映像转换为分区映像。不幸的是,我不知道这个脚本是否仍然有效。毕竟已经5岁了。
这就是为什么我想在这里询问是否有人对 Clonezilla 的这个用例有任何经验,并且可以担保这个解决方案(或不同的解决方案,就此而言)。
案例场景:
$ sudo fdisk -l
Disk /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x13a30a5a
Device Boot Start Final Sectors Size Id Type
/dev/sda1 * 2048 1333247 1331200 650M 27 WinRE NTFS hidden
/dev/sda2 1333248 264058879 262725632 125,3G 7 HPFS/NTFS/exFAT
/dev/sda3 264060926 468860927 204800002 97,7G 5 Extended
/dev/sda5 264060928 …Run Code Online (Sandbox Code Playgroud) 另一台计算机也可以是虚拟机。由于硬件差异和设置,我无法进行磁盘克隆。
我有计算机 A,已安装并正在运行,我也有计算机 B。我将在 B 上安装相同的操作系统,因此我将获得相同的基本系统。
然后我将手动添加与 A 上相同的存储库。
但是最后一个阶段超出了我的范围——如何安装与 A 上相同的软件包?请注意,版本必须匹配,而不仅仅是包名称。
当然我找的是自动方式,不是手动一一安装。
实际上,我应该得到完全不同的硬件配置、干净的设置(没有旧密码等),但选择相同的软件。
怎么做?
软件包(每个版本)可用,但不是最新的。这样做的目的是制作正在运行的系统的“副本”,升级计算机 B 上的软件包(副本),测试它是否有效,如果是,则升级 A。对于每个新的操作系统版本,我都会遇到许多回归错误,并且我必须更有条理地测试它,而不是实时测试和恐慌。
openSUSE 11.4
我的其中一张磁盘上安装了 Windows 7。我想在我的 Xen HVM 中启动这个 Windows 系统,但我不希望更改是永久性的。所以我想创建我的 Windows 7 分区的快照。我检查了 LVM,但似乎 LVM 只能为它创建的 LV 创建快照。我正在寻找更通用的快照方法。
我想使用 dd 克隆硬盘。因为我想让机器上的进程持续处于活动状态,所以我想在文件系统仍处于挂载状态时执行此操作。我知道这不是做到这一点的“理想”方式,但从谷歌搜索来看,这也是可能的。
克隆被用作备份;万一硬盘出现故障,我希望有一个映像 dd 回到新硬盘上。正在运行的操作系统存在于我要克隆的磁盘上。
我正在运行的进程确实做了一些磁盘 I/O,但不是我想克隆的磁盘。据我所知,在我执行此操作时,只有操作系统/系统进程会读取或写入磁盘。我想知道的是,这种光线使用是否可能会破坏整个克隆图像?我想如果在 dd 读取它们时写入它们,则存在损坏一些文件的危险,但我不知道破坏备份的可能性有多大。任何人都可以分享一些见解吗?
没有将它放在磁盘上并尝试启动它,有什么方法可以验证图像的完整性吗?
谢谢!
几乎所有教程都会告诉您在命令行上克隆磁盘(例如,将 /dev/sda 克隆到 /dev/sdb)您可以使用:
dd if=/dev/sda of=/dev/sdb ...and some block size options...
Run Code Online (Sandbox Code Playgroud)
这会读取 /dev/sda 的内容并将它们写入 /dev/sdb。
为什么我们不能简单地使用cat < /dev/sda > /dev/sdb?
我最近需要克隆我的硬盘驱动器(坏块 FTW)。我当时正在使用 Clonezilla。
但是,Clonezilla 拒绝复制 HFS+ 分区,所以我手动完成了。问题是 UUID 不同步。
为 HFS+ 设置特定 UUID 的命令是什么?
所以我只是按照以下说明使用 VMWare Workstation 和 Clonezilla 将 Centos7“所有安装”VM 克隆到物理磁盘:https :
//www.howtoforge.com/converting-a-vmware-image-to-a-physical-machine -p2
现在,当克隆(物理磁盘)启动时,它会进入命令行:
Run Code Online (Sandbox Code Playgroud)dracut-initqueue[417]: Warning: Could not boot. dracut-initqueue[417]: Warning: /dev/disk/by-uuid/4b8b5627-9027-46f7-b722-61d3ddd28e74 does not exist Starting dracut emergency shell...
我试过的:
尝试启动到 USB 救援模式, chroot /mnt/sysimage ,以及:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-oh_crud.img
Run Code Online (Sandbox Code Playgroud)
进而
dracut /boot/initramfs-$(uname -r).img $(uname -r)
Run Code Online (Sandbox Code Playgroud)
...但我明白了:
猫:写错误:管道损坏
补充说明:
当我输入:
blkid
Run Code Online (Sandbox Code Playgroud)
我看到有问题的 HD 显示为/dev/block和 /dev/sdb`
我试过:
lshw -class disk
Run Code Online (Sandbox Code Playgroud)
但它说“找不到命令”。
救援外壳正在安装我的磁盘,我的/mnt/sysimage所有文件都在那里,所以它似乎正在查看并安装 HD。
我想在 Linux 和 OpenBSD 之间移动/共享一些文件。实现这一目标的简单方法是什么?
这些是我迄今为止找到的解决方案以及为什么我不完全相信:
tar:我担心tarBSD 和 Linux 之间的实现不同。在保持权限和时间戳的同时在 Linux 和 OpenBSD 之间共享文件的简单方法是什么?
我希望克隆一个大磁盘(一个 500GB 的 SSD,物有所值),并且我倾向于使用cat,正如 Gilles在这里建议的那样。但是让我停下来的是我真的不知道cat读取错误时会发生什么。我知道dd在这些情况下的行为方式,即命令
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
Run Code Online (Sandbox Code Playgroud)
不会因读取错误而停止,并用零(sync选项)填充读取错误,以便数据保持同步。不幸的是,它是通过在要写入的块末尾填充零来实现的,因此早期 512 字节读取中的单个错误会弄乱整个 64K 数据(对于更大、更快的块大小更糟)。
所以我想知道:我可以做得更好/不同cat吗?或者我应该继续使用Clonezilla吗?