我已经获得了一张3.8GB SD卡图像,用于闪存到4GB SD卡,用于在RaspBerry PI开发板上启动自定义版本的Raspian OS。它有一个第一个主分区,FAT32,它包含一个引导加载程序,另一个分区是一个包含操作系统的自定义类型。
我可以在SD卡上启动PI,并在其上部署此图像,在电路板运行时修改其内容,然后关闭电路板。
在我修改卡片内容时,我想创建自己的磁盘映像。这将是involve backing up the MBR,我将尝试通过:
dd if=/dev/sda of=~/Desktop/mbr.raw bs=512 count=1
然后我可以通过以下方式将每个分区一次备份到一个单独的文件中:
dd if=/dev/sda1 of=~/Desktop/sda1.raw bs=1m
dd if=/dev/sda2 of=~/Desktop/sda2.raw bs=1m
有没有办法将这些文件连接成单个图像,或者安全地编写脚本dd
以便首先将所有内容提取到单个文件中?引导加载程序和操作系统分区的大小将来可能会发生变化,但它们始终是连续的。
答案 0 :(得分:3)
使用这样的子shell:
(dd if=/dev/sda1 bs=1m; dd if=/dev/sda2 bs=1m) > ~/Desktop/sda1+2.raw
或者,如果你想要那里的512字节MBR(可能不是最好的主意),你可以这样做:
(dd if=/dev/sda bs=512 count=1; dd if=/dev/sda1 bs=1m; dd if=/dev/sda2 bs=1m) > ~/Desktop/MBR+sda1+2.raw
答案 1 :(得分:2)
最后,我做了以下工作:
fdisk -l /dev/sdc
列出SD卡上的所有分区。注意块大小(通常为512)和" count" (即:第一个分区占用的块数)blks
定义为count+1
。dd if=/dev/sdc of=~/my_image.img bs=512 count=${blks}