![从上网本获取硬盘映像的最佳方法是什么?](https://linux22.com/image/1231879/%E4%BB%8E%E4%B8%8A%E7%BD%91%E6%9C%AC%E8%8E%B7%E5%8F%96%E7%A1%AC%E7%9B%98%E6%98%A0%E5%83%8F%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我有一台安装了 Windows XP 的上网本。我想玩一下(即安装另一个操作系统),但在开始之前,我想制作一个完整的硬盘映像。我无法取出硬盘(没有很多工作量很大,拧开东西,违反保修条款)。那么备份硬盘的最佳方法是什么?硬盘只有 16g,但我没有 16g 的闪存驱动器,所以我必须通过网络备份。另外,为了清楚起见:我想备份全部的硬盘包括 MBR 和分区表等,以便我可以将其恢复到原来的样子。
但是我该怎么做呢?我习惯使用 dd,并且我有一个可以启动安装了 OpenBSD 的闪存驱动器。我只是不确定如何通过网络发送它,以及我是否可以先进行某种压缩。
此外,我不想购买任何软件/硬件来实现这一点。
答案1
如果你首先将可用空间清零(例如使用 -z 选项删除) 以提高整体压缩率,您可能会发现备份压缩后可以放在 8Gb 闪存驱动器上。如果里面没有太多东西,它甚至可以放在 4Gb 驱动器上。
至于通过网络备份,我通过从“实时 CD”USB 记忆棒(例如 Ubuntu 上网本启动 CD,尽管大多数实时 CD 也可以)启动并执行以下操作,将上网本备份到 Samba 共享:
# ensure relevanrt bits installed
# (replace apt-get with yum here for some distros, you may need to alter package ames too)
aptitude install cifs pv
# mount the share (you'll be prompted for password before the mount succeeds)
mount -tcifs //server/sharename /mnt -ousername=UserNameOnServer
# copy both drives
# (replace pv with cat if you don't have pv, but the progress indication from pv is handy)
# (also, of course, update drive device name(s) as needed, you probably only have one drive to copy too)
pv /dev/sdb > /mnt/subdirectory/sdb.img
pv /dev/sdb > /mnt/subdirectory/sdc.img
(如果你选择的 LiveCD 没有 pv 可用或可安装,你可以从该计划的主页)
如果你的网络上没有方便的 SMB/Samba 共享,你可以尝试非常方便的网猫。在接收端运行netcat -l -p 1234 > /dir/to/write/to/sda.img
并在发送端pv /dev/sda | netcat 111.222.333.444 -p 1234
(其中 111.222.333.444 是接收机器的地址,并且再次替换pv
为cat
如果pv
不可用)
编辑
您提到的 sftp 让我想起了 - 您可以通过 SSH 复制:
cat /dev/sda | ssh user@hostname "cat > /dir/to/save/to/sda.img"
答案2
只需加载 BSD,从另一台机器安装网络共享,然后将驱动器添加到该机器。
我想说,如果其他计算机运行的是 Windows,那么 Samba 是您最好的选择,当我不得不使用 Windows 时,它对我来说效果很好。
答案3
Driveimage XML 是免费的,而且还可以。如果您正在寻找更简单的方法,愿意花几块钱,并且想要进行更多优化(自动排除页面文件,自动安排备份),Acronis 的 Trueimage是长期的赢家......
答案4
你可以尝试驱动图像XML,私人版本(普通用户所需的全部版本)是免费的,可以获取硬盘的完整映像,当然不包括空白空间。它可以压缩驱动器映像,这在您复制到网络共享或 FTP 服务器时可以节省一些时间。