我不确定所有“如何备份SD卡”主题是否都是我所要的...但是到这里开始吧:)

有没有办法我可以使100 %克隆我的Raspberry Pi,然后将其部署到另一个Raspberry Pi?所以我有两个完全相同的副本...还是通过使用内置的dd命令克隆SD卡来完成?

我问的原因是我已经完全配置了Raspberry Pi使用Apache,PHP和其他一些库,现在我只想要它的另一个克隆,它们具有完全相同的配置,等等。

这可能还是我回答了自己的问题?

评论

令我惊讶的是,到目前为止还没有提到piclone。对我来说,这是在rpi上克隆sd卡的最直接的方法,而nvere却遇到了问题。我过去已经回答了这个问题,因此,这里有更多答案的链接:raspberrypi.stackexchange.com/questions/66824/…希望对您有所帮助。

我在任何地方都找不到piclone下载

您无需下载它,因为它已经存在。只需在终端中键入piclone,它将启动GUI。

#1 楼

@naboovalley:

假设以下情况:


在您的Raspberry Pi上,转到终端,然后转到/ dev目录。您应该会在其他设备中看到mmcblk0,mmcblk0p1和mmcblk0p2。
mmcblk0是“裸” SD卡设备,而mmcblk0p1是该SD卡的第一个分区,包含内核映像,依此类推,而mmcblk0p2是第二个分区。
以一种体面的方式关闭Raspberry Pi(键入命令“ shutdown”,可能以root身份)。
将SD卡放入另一台Linux机器中。通常,上述目录应自动挂载在/ media /上,并且其中应有2个子目录(一个用于SD卡的分区1,一个用于SD卡的分区2)
您已经创建了一个临时目录目录复制SD卡的内容。说:~/tmp

您现在位于~/tmp


现在,您可以通过发出以下rsync命令来复制原始原始SD卡中第一个分区的内容:

rsync -avn /media/<user>/<partition1> .

不要在最后放置/!上面的命令将“空运行”,这意味着它将向您显示最终将执行的操作,但不会真正执行它。

要真正执行(在您确认试运行),您可以从上述命令中删除n(因此,rsync -av /media/<user>/<partition1> .)。

对另一个分区使用相同的命令。

现在,您应该在Linux机器上拥有原始SD卡的确切副本。

删除原始SD卡,将另一张格式正确的SD卡放入Linux机器,然后执行以下rsync命令:

rsync -avn <partition1> /media/<user>

这又是一次空运行,应该向您显示<partition1>/media/<user>的内容将被复制到SD卡中。

确认一切正常后,您可以再次从n命令中删除rsync

对第二个分区执行相同的操作。

这应该为您提供了一个完全相同的副本。将原始SD卡插入另一张SD卡。

注意:我在Lubuntu机器上检查了所有这些文件。目录和名称在其他Linux发行版上可能会有所不同。

还请注意,< >之间的项目是占位符,您必须自己查看它们与环境的匹配方式。

评论


完善。谢谢! “ dd”副本的功能是否与您描述的相同,或者rsync更好地按照我想要的方式进行完整的系统副本吗?

– naboovalley
14年4月13日在16:38

我对dd命令没有太多经验,所以我不能告诉你,对不起...

– GeertVc
2014年4月17日下午6:13

我不会完全说出“-正确格式化-SD卡”。我们是否必须使用适当大小的fat32和ext4分区预先格式化SD卡?谢谢

–罗曼·文森特
18年5月20日在17:43

#2 楼

是的,您可以在Windows上使用dd或Win32 Disk Imager将一张卡上的确切图像拍摄到另一张卡上。但是,目的卡必须大小相同或更大才能使其实用。

您也可以将源文件系统上的所有文件复制到目标文件系统。也就是说,将目标卡插入USB读卡器,并将其粘贴在源Raspberry Pi中。然后使用SSH并发出适当的复制命令。

还要记住一件事,即您是否购买了用于MPEG-2或VC-1的硬件解码的许可证密钥。这些与您的硬件绑定在一起,因此您需要确保在副本上编辑/boot/config.txt。

评论


那么SD卡可以保存所有系统特定的文件和已安装的库吗?将SD卡的克隆副本插入R-Pi#2时,我不需要运行任何安装命令吗?

– naboovalley
2014年4月10日上午9:56

这也可能会导致SSH密钥和IP地址出现问题。

–史蒂夫·罗比拉德(Steve Robillard)
2014年4月10日上午9:57

那么在R-Pi#2上,它可能认为ip地址与R-Pi#1相同?我猜我可以刷新一下以获得新的网络ip?

– naboovalley
2014年4月10日在9:58

如果使用DHCP,则RPi将在启动时自动接收新IP,但是如果您打算在同一子网中使用两者,则应更改主机名。如果使用固定IP,则应同时更改IP和主机名

–罗伯托
2014-4-10 11:08



如果我查看我的文件系统(“ df”),我有一个叫做“ rootfs”的2.1GB和/ dev / root 2.1GB的东西-我的/ dev / mmcblk0 SD卡仅需要10M。因此,当我复制“ mmcblk0”时,将包括整个系统吗?多谢你们

– naboovalley
2014年4月10日在11:17

#3 楼

您可以按照@ me--的建议使用dd复制,但这并不是克隆系统时要做的全部。还有一些唯一的系统标识符也应更改。

应重设密码,以便使用新的salt。这使人们无法知道您两次使用了相同的密码。以用户(通常是pi)和root用户身份运行passwd命令。

如果使用SSH,则应重新生成SSH密钥。例如,这很重要,以确保如果有人偷了一个Raspberry Pi,他们就不能解密与另一个人的通信。只需运行以下命令:

sudo rm /etc/ssh/ssh_host_*


最后,最重要的是,您需要更改主机名。如果是默认设置,则为raspberrypi。如果您像我一样,我将使用Raspberry Pi的主机名,因此请执行ssh raspberrypi。在网络上有两个“ raspberrypis”会使其停止工作,因此,例如,第二个应重命名为rasberrypi2。您可以使用sudo raspi-config进行更改,选择Advanced Options,然后选择Hostname

评论


raspi-config对Raspbmc不可用。也许应该介绍手动设置主机名的方法?

– Peter Mortensen
2015年1月4日,0:59

例如,如对“当我搜索网络时,所有主机名都是raspberrypi?”的回答中所述。

– Peter Mortensen
2015年1月4日,下午1:26

作为参考,raspberrypi.stackexchange.com / questions / 3926 /…涵盖了在Raspbmc下更改主机名。

–弗雷德
15年1月25日在10:31

#4 楼

至少作为我在NOOBS启动SD上获得的操作系统的版本,内置了一个用于备份或将系统移至另一个RPi3的micro SD克隆附件:


转到附件;
点击“复制SD”;
将空白的micro SD放入USB固定器中;
在开放的USB插槽中放置占位器;
选择新的SD;
点击复制。


评论


这应该是正确的答案。太简单。

–乔丹
18年8月15日在23:00

#5 楼

您可以使用树莓派和通过USB连接的新座右铭SD卡来完成此操作。最新版本的Raspberry Pi软件在其附件下具有一个称为SD cardcopier的内置软件。

您选择原始卡(从中进行引导的卡)作为源,并选择新格式的空卡(通过读卡器连接到pi上的usb)作为目标。非常简单的用户界面,它对我来说第一次有用。在Mac上使用dd的命令行选项以某种方式最终导致内核崩溃问题。

#6 楼

rsync是一个非常安全可靠的工具,用于复制诸如根文件系统之类的东西(由于存在于根文件系统中的链接)。该工具将考虑所有必要的内容,例如时间戳,链接,权限...。非常适合复制您想要的内容。

评论


但是我仍然只复制sd卡内容以复制完整的系统-还是需要包含其他内容?谢谢

– naboovalley
2014年4月11日,7:35

请参阅我在下面发布的新回复。

– GeertVc
14年4月13日在8:52