[原创翻译]在Linux上安装树莓派镜像
原文:Installing Operating System Images on Linux
请注意:使用dd工具可以覆盖你机器上的所有分区。如果在下面的指令中输入了错误的设备号,你将可能删除你的Linux主分区。请谨慎输入。
- 运行
df -h
命令查看已加载的设备。 - 如果你的机器有SD卡插槽,插入SD卡。如果没有,把SD卡插入一个SD读卡器,然后再把读卡器连接到电脑。
- 再次运行
df -h
命令。新出现的设备就是你的SD卡。左边的列显示SD卡的设备名,类似于/dev/mmcblk0p1
或/dev/sdd1
。设备名的最后部分(分别为p1
或1
)是分区号,不过我们要写入整个SD卡,而不是某一个分区。所以你需要删除设备名的最后部分(例如/dev/mmcblk0
或/dev/sdd
)。注意:同一张SD卡可能在df
的输出中出现多次;一张已写入树莓派镜像的SD卡更是如此,这是因为镜像有多个分区。 - 现在你已知道了SD卡的设备名,你需要卸载它以保证镜像写入期间SD卡不可读写。
- 运行
umount /dev/sdd1
命令,用你的SD卡设备名替换sdd1
(包含分区号) - 如果
df
命令的输出显示SD卡有多分区被加载,你需要卸载所有分区。 在控制台中输入下面的命令向SD卡写入镜像。用你自己的
.img
文件替换if=
参数,用你SD卡设备名/dev/sdd
替换of=
参数。请使用正确的设备名,否则你将损失磁盘上的所有数据。设备名不应包含分区号,例如:sdd
, 而不是sdds1
或sddp1
;mmcblk0
, 而不是mmcblk0p1
。dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/sdd
- 请注意:大部分情况下
4M
的 block size 都能正常工作。如不行,可尝试修改为1M
,尽管这将需要更长的时间。 - 同时注意:如果你没使用root登录,你需要在命令前面加入
sudo
。 - 控制台将会冻结因为
dd
命令不会显示任何输出;大概需要超过5分钟的时间来完成写卡。如果你的读卡器有LED,那么在写入期间它将闪烁。你可以在另一个控制台输入pkill -USR1 -n -x dd
来查看拷贝进度,如果你不是root登录记得加入sudo
。进度将显示在原控制台而不是运行pkill
的控制台;由于缓存,显示可能有延迟。 - 用
dcfldd
替换dd
;它将有一个写入进度展示。 - 你可以使用
dd
把SD卡上的数据回写到硬盘上的一个镜像文件,然后使用diff
或md5sum
与原镜像进行比对。 SD卡导出的镜像比原始镜像大,这是因为dd拷贝整个SD卡。我们必须裁剪导出的镜像让它和原始镜像一样大。确保
if=
的参数替换为正确的设备号。diff
命令将报告两个镜像是一致的。dd bs=4M if=/dev/sdd of=from-sd-card.img
truncate --reference 2015-05-05-raspbian-wheezy.img from-sd-card.img
diff -s from-sd-card.img 2015-05-05-raspbian-wheezy.img- 运行
sync
,确保缓存数据都已写入磁盘,之后可以安全卸载SD卡。 - 从SD读卡器取出SD卡。
本文由u0u0翻译于2015.7.24