所以,我有一台安装了SSH服务的远程计算机,完全可以访问我。 直到明天我才有机会接触机器,但我不想等。
我需要做一个硬盘的映像,但问题是,我启动到我想要映像的分区。 所以,我能想到的唯一select是创build一个小分区,重新启动,将一些小的Linux disto提取到该分区,将Grub的设置更改为自动引导到分区,chroot并更改root密码进行安装,重启,祈祷,ssh回到盒子(现在运行插件安装),映像主分区,更改Grub默认分区,然后重新启动。
任何人都知道一个发行版或另一个解决scheme来获取图像?
有几种方法可以做到这一点:
复制像小狗,tinycore,knopix等小发行的内容到另一个分区。 在小发行版中设置ssh守护进程,以便在启动时启动networking和sshd,更改grubconfiguration以在重新启动后重新启动新的发行版。 然后你可以用下面的任何一种方法制作图片。
使用cpio,tar或rsync来创build文件系统的副本。 它不会给你一个图像,而是一个内容的副本。 这可能是所有你需要的,但如果没有看到其他选项。
使用转储来制作图像。 如果您正在使用的文件系统有一个fs转储,那么转储将为您提供一个文件系统的映像,可以将其恢复到足以容纳所有数据的任何分区。 有xfs和ext2转储实用程序。 你也可以使用ext2转储文件系统。 要创build一个完整的映像,您将运行诸如dump -0f - /mountpoint/or/dev_entry > image_file
使用dd制作正在运行的驱动器的映像,如果使用dd,则可能需要在使用该映像之前对映像运行fsck。 我已经用了很多不同的Unix变种的dd方法。 最大的缺点是即使没有数据,也会复制每个块。 你可能想在做复制之前尝试块大小,但16M通常是一个合理的起点。 dd if=/dev/sda1 bs=$((16 * 1024 * 1024))> image_file
就是一个例子。
如果您有足够大的分区可用,则可以在本地进行复制。 否则,您将需要通过networking复制它,这可能会非常耗时。 如果带宽是一个瓶颈,压缩可以帮助减lessnetworking时间。 将输出通过gzip输出到ssh可以通过将"> image_file"
replace为"| gzip | ssh user@remote_host '> /path/to/file.gz'"
如果你在debian系统上,你可以使用debootstrap在额外的分区上创build一个最小的debian安装。 一切都已经在你的问题,但我会补充:“安装SSH服务器,并确保它在启动”启动后“的”chroot“部分。
还要确保networking将以最小安装启动。
你可以用Debian来做到这一点。 我相信它支持所谓的chroot安装。 除此之外,我不能帮助,因为我只从朋友那里听说过。
dd命令可能会有所帮助,一个小的发行版可能会很小
为什么物理磁盘复制? 为什么不只是一个“正常”的副本? 作为根:
mount / /mnt/copy -obind cd /mnt/copy tar cvpzf /mnt/backup-disk/backup.tar.gz . #that's a dot
只是尽量不要使用任何东西。 如果你有足够的焦油,你可以用jreplacebzip2或–lzma。