我已经为我的Raspberry Pi(运行Raspbian)写了几个星期的程序,并想确保我保护我所做的工作。
我怎样才能备份我所创建的文件?
我可以简单地把SD卡插入我的Windows(XP或7)电脑,然后把它复制到硬盘或另一张SD卡上吗?
如果你想保留所有的数据,你可能必须创建一个磁盘镜像。此外,Windows不能识别典型的Linux文件系统,所以当你插入SD卡时,你可能甚至无法看到你的文件。
创建磁盘镜像不仅可以保留文件,还可以保留文件系统结构,当你决定闪存你的新SD卡时,你就可以直接插入它,它就会工作。
dd if=/dev/sdx of=/path/to/image bs=1M
其中/dev/sdx
是你的SD卡。
dd if=/dev/rdiskx of=/path/to/image bs=1m
其中/dev/rdiskx
是你的SD卡。
(使用rdisk是最好的,因为它是原始设备--更快)
要想知道你的设备是哪个磁盘,请在命令提示符下输入diskutil list'--另外,你可能需要成为root;要做到这一点,请输入
sudo -s'并在提示下输入你的密码。
选项1
在Windows上,你可以使用与闪存SD卡时相反的过程。
你可以使用Win32 Disk Imager,它是闪存基金会SD卡的首选工具。只要输入文件名(要保存的备份图像文件的位置和名称),选择设备(SD卡),然后按读取。
当然,你也可以使用RawWrite、dd
for Windows或类似的工具,过程很相似。
选项2
如果你不想备份整个系统,而只想备份特定的文件,我建议你通过SFTP连接到你的Raspberry Pi,然后把文件复制到你的本地电脑上(你可以使用WinScp客户端)。如果你启用了SSH,SFTP通常不需要在Raspberry Pi这边进行特殊的配置。
另一个选择是使用rsync将文件复制到远程系统。
你也可以安装特殊的驱动程序,使你的Windows能够读取ext
文件系统(从而能够读取整个SD卡),例如ext2fsd
,但这可能不值得花费精力。
由于图像将与你的SD卡大小相同,你可能想压缩它。这可以通过使用你喜欢的压缩工具来实现,如gzip
、7zip、WinZip、WinRar ...
如果你运行的是Linux,那么你可以使用dd
命令来做镜像的完整备份。
dd if=/dev/sdx of=/path/to/image
或进行压缩。
dd if=/dev/sdx | gzip > /path/to/image.gz
其中sdx
是你的SD卡。
要恢复备份,你要反过来执行这些命令。
dd if=/path/to/image of=/dev/sdx
或压缩时。
gzip -dc /path/to/image.gz | dd of=/dev/sdx