一个SD卡已经配置为一个覆盆子π。其目标是准确地复制SD卡(OS、应用程序、数据),以便副本在rPi中的功能与原来的\主SD卡完全一样。
更新:假设:

对于带有SD卡槽和USB读卡器/写入器的Ubuntu HP膝上型计算机,有哪些UNIX克隆选项可用。
如果USB卡RW是读取器还是写入器,会有什么区别吗?
一个目标(限制)是避免购买额外的硬件。
date; sudo sh -c 'cat sdcard.image >/dev/mmcblk0'; date周一6月3日17:53:18 EDT 2019用户密码: Mon 3 23:42:17 EDT 2019
date; sudo sh -c 'pv sdcard.image >/dev/mmcblk0'; date用户密码:119 100 6:06:12 100% Tue Jun 4 06:43:05
对闪存SD卡的gParted分析显示出相同的分区:

diskutil list在写入SD卡时,一定要卸载它:
sudo diskutil unmount /dev/disk#其中#是1,2,3.
发布于 2019-06-02 22:26:35
Unix系统通过设备文件提供存储设备。设备文件在许多方面都像普通文件一样。特别是,要准确复制存储设备,只需将源设备的内容复制到目标设备中即可。
首先,您需要确定源设备文件和目标设备文件。名称取决于Unix变体及其配置方式,但实际上设备文件总是在/dev目录下。如果安装了SD卡,则可以找到设备文件的内容。
df /media/sdcard1/some/file/on/the/sdcard设备文件位于第一列中。其他工具可以提供相同的信息,例如在Linux上插入SD卡或lsblk命令时的内核日志消息。
卡片上可能有分区。如果是这样的话,复制整个卡,即使有一个分区,因为一些启动时间信息可能位于分区之外。例如,如果df在Linux上显示/dev/sdb1,那么复制/dev/sdb而不仅仅是/dev/sdb1。
如果您拔出SD卡并重新插入它,它通常会有相同的设备文件名,但这是不能保证的。
在复制之前,请确保:
lsblk显示设备大小。假设您已经确定源设备是/dev/sdb,目标设备是/dev/sdc。若要复制内容,请以root用户身份运行以下命令:
cat /dev/sdb >/dev/sdc如果您使用sudo,则重定向>需要以root形式出现,因此您需要编写如下
sudo sh -c 'cat /dev/sdb >/dev/sdc'或者,为了确保您不会意外地覆盖错误的设备,您可以分两个步骤进行:
gatorback)读取源设备(在我的示例中为dev/sdb)并写入源设备(在我的示例中为/dev/sdc)。sudo setfacl -m用户:gatorback:r /dev/sdb sudo setfacl -m用户:gatorback:W /dev/sdc您可以将磁盘映像复制到文件中,然后将映像文件复制到目标设备。如果您需要复制多个副本,或者只有一个SD读卡器,或者为了减少向错误方向复制的风险,这是非常有用的。
sudo cat /dev/sdb >sdcard.imagesudo mount -o loop -r sdcard.image /mnt )验证内容。sudo sh -c 'cat sdcard.image >/dev/sdb'如果您想方便地查看进度信息,请使用pv而不是cat (pv在默认情况下很少安装,但在大多数发行版中都可以作为包使用)。
发布于 2019-05-31 11:50:31
如果您只是想将SD卡精确地从一个复制到另一个,那么您可以在命令行上使用dd进行复制。
你不应该这样做从你的覆盆子π从它自己的操作系统。这是因为操作系统可能会在复制和损坏副本时写入SD卡。
若要复制sd卡,请将两者都插入到两个阅读器中(不管它们是否为USB)。然后检查/dev的内容。卡片应该以/dev/sd*的形式出现。例如/dev/sdb。Be要小心,因为您的内部硬盘驱动器可能已经在 /dev/sda上了。
请确保没有安装SD卡,请在命令提示符下输入此命令读取输出:
mount | grep /dev/sd还要检查输出,以便知道哪一张卡有哪个文件名(作为根):
sudo blkid实际复制(如从/dev/sdb到/dev/sdc)类型(作为根):
dd if=/dev/sdb of=/dev/sdc bs=4096 status=progresshttps://unix.stackexchange.com/questions/522138
复制相似问题