如何在BeagleBone中一步将xz压缩镜像写入分区(无需提前解压)
如何直接将xz压缩镜像写入BeagleBone分区而无需提前解压?
当然可以!这正是管道(pipe)在Linux系统里最实用的场景之一,完美解决你因为解压后镜像体积过大、当前分区无法容纳的问题。
单步执行命令
你可以用两种等价的命令完成操作,选顺手的就行:
- 方式一(用xz的解压+标准输出参数):
sudo xz -dc console.img.xz | sudo dd of=/dev/mmcblk0p3 bs=4M status=progress - 方式二(更简洁的xzcat命令):
sudo xzcat console.img.xz | sudo dd of=/dev/mmcblk0p3 bs=4M status=progress
命令细节解释
xz -dc:-d负责解压操作,-c表示把解压后的内容直接输出到标准输出(stdout),不会在本地生成console.img这个中间文件xzcat:其实就是xz -dc的别名,功能完全一致,写法更简短- 管道符号
|:把前一个命令的输出内容,直接传递给后一个命令作为输入,全程没有磁盘写入中间文件的过程 dd of=/dev/mmcblk0p3:dd默认从标准输入读取数据,所以这里只需要指定输出目标of=/dev/mmcblk0p3;bs=4M设置块大小为4MB,能大幅提升写入速度;status=progress可以实时显示写入进度,方便你监控过程- 加上
sudo是因为写入磁盘分区需要管理员权限
关键注意事项
一定要确认目标分区 /dev/mmcblk0p3 是正确的!如果写错设备路径,很可能会覆盖其他重要分区的数据,造成不可挽回的损失。
内容的提问来源于stack exchange,提问作者Sayanee
相关产品推荐
相关产品推荐

