一旦我有一个Raspberry PI SD卡,我所有设置的方式(自动启动,我的脚本,源文件等),克隆SD卡最简单的方法是什么?我有一个MAC,PC和Raspberry Pi本身用于此过程。
答案 0 :(得分:1)
答案 1 :(得分:0)
我知道这是一个非常老的问题,但是我编写了两个脚本,分别使用运行Linux的PC(在Ubuntu 18上测试)轻松备份和还原。它们为您提供了可用设备的列表和数字列表菜单。
备份脚本将备份到预定义目录,但是您也可以将路径作为参数,并使用gzip自动压缩它。备份的命名基于当前日期以及是否存在具有该名称的文件。
#!/bin/bash
BackFile="/Path/to/Backup/RPi`date +%d%m%y`.bak"
Num=0
while [ -f "$BackFile" ];
do
Num=$((Num + 1)
BackFile = "/media/sf_VM/RPi$Num`date +%d%m%y`.bak"
done
echo "\nPath: $BackFile\n"
lsblk -dnpo NAME,SIZE | grep -v loop
my_array=()
while IFS= read -r dev; do
my_array+=( "$dev" )
done < <( lsblk -dnpo NAME | grep -v loop )
select opt in "${my_array[@]}" "Stop"; do
case $opt in
/dev*)
echo "Device file $opt selected"
# processing
sudo dd bs=4M if=/dev/sdb status=progress | gzip > $BackFile
echo "Backup complete, Path: $BackFile"
;;
"Stop")
echo "You chose to stop"
break
;;
*)
echo "This is not a number"
;;
esac
done
还原脚本列出了该目录中的备份,选择文件后列出了可用的设备。
#!/bin/bash
mapfile -t my_array < <( find /Path/to/Backup/ -maxdepth 1 -type f -name "*.bak" -print0 )
select opt in "${my_array[@]}" "Stop"; do
case $opt in
*.bak)
echo "Bak file $opt selected"
# processing
lsblk -e 7 -dnpo NAME,SIZE | grep -v loop
my_array=()
while IFS= read -r dev; do
my_array+=( "$dev" )
done < <( lsblk -e 7 -dnpo NAME | grep -v loop )
select opt2 in "${my_array[@]}" "Stop"; do
case $opt2 in
/dev*)
echo "Device $opt selected"
# processing
sudo gzip -dc $opt | sudo dd bs=4M of=$opt2 status=progress
;;
"Stop")
echo "You chose to stop"
break
;;
*)
echo "This is not a number"
;;
esac
done
break
;;
"Stop")
echo "You chose to stop"
break
;;
*)
echo "This is not a number"
;;
esac
done
答案 2 :(得分:0)
我还没有找到一种可靠地克隆SD卡的方法,但是我已经找到了一种可靠且容易地构建符合规格的SD卡的方法。在研究了很多业余爱好者伏都教解决方案之后,我找到了PiBakery。
首先,PiBakery是可靠的。它“有效”。
PiBakery允许您通过外观良好的可视界面设置“安装程序脚本”:
然后您就可以参加比赛了。它在可操作的“文档”中直观地记录您的配置。
在我们的项目中,我们每周两次制作一个新的Raspberry Pi图像。我有15个在Pi之间旋转的SD卡。在PiBakery之前,维护和升级Pi SD就像用叉子掏出眼球,但是现在,它几乎是令人愉快的!
这提醒我向作者捐款。 (Currency Converter)