我可以克隆我的整个Raspberry Pi以便部署到另一个Raspberry Pi上吗?


12

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

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

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

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


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

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

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

Answers:


9

@naboovalley:

假设以下情况:

  • 在您的Raspberry Pi上,转到终端,然后转到/ dev目录。您应该会在其他设备中看到mmcblk0,mmcblk0p1和mmcblk0p2。
  • mmcblk0是“裸露” SD卡设备,而mmcblk0p1是该SD卡中包含内核映像的第一个分区,依此类推,而mmcblk0p2是该SD卡中包含根文件系统的第二个分区。
  • 以一种体面的方式关闭您的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>in 的内容/media/<user>将被复制到SD卡。

确认一切正常后,您可以再次nrsync命令中删除。

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

这样可以为您提供原始SD卡到另一张SD卡的精确副本。

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

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


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

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

我没有完全说出“- 格式正确 -SD卡”。我们是否必须使用适当大小的fat32和ext4分区预先格式化SD卡?谢谢您
罗曼·文森特

7

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

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

同样要记住的一件事是,如果您购买了用于MPEG-2VC-1的硬件解码的许可证密钥。这些与您的硬件相关,因此您需要确保编辑副本上的/boot/config.txt


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

2
这也可能会导致SSH密钥和IP地址出现问题。
史蒂夫·罗比拉德

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

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

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

6

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

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

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

sudo rm /etc/ssh/ssh_host_*

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


raspi-configRaspbmc不可用。也许应该介绍手动设置主机名的方法?
彼得·莫滕森


作为参考,raspberrypi.stackexchange.com/questions/3926/...盖改变Raspbmc下的主机名。
2015年

4

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

  • 前往配件;
  • 点击复制SD ;
  • 将空白的micro SD放入USB固定器中;
  • 将支架放入开放的USB插槽中;
  • 选择新的SD;
  • 打副本。

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

1

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

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


0

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


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

请参阅我在下面发布的新回复。
GeertVc 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.