本期的《开源软件佳软介绍》,我们讨论直接写盘。

前言:略谈各种开发板常用的“系统镜像”

树莓派(Raspberry Pi)的用户经常提出这样一个问题[注A]:

为什么不能把.img镜像拷贝到SD卡中,而必须要用专门的刷卡软件?

这个问题,我们从磁盘结构讲起。磁盘内部所有的存储区域,必然分为分区表和数据区域两大块。而数据区域按分区表分区后,每个分区还被文件系统封装和管理[注B]:

分区表占据磁盘最前端的少量存储区,存储了磁盘后边广大的数据区域如何分区的重要信息。

数据区域按照分区表的规定,分割成互不影响的若干个区域。

每个分区的内部,由文件系统封装并规定了文件的存储方法。读写文件全部都在文件系统这一层的约束下。

SD卡一般是全盘一个主分区的结构。但Raspberry Pi等Linux开发板要求SD卡上有自定义的分区结构(一般是一个小FAT32一个大Ext4)。要求用户自己分区这很麻烦(甚至不可能),所以系统分发往往采用磁盘镜像文件的方式。

磁盘镜像文件就是绕过上述所有的分层结构,直接从磁盘底层原始数据的第1个字节开始一个一个读取并制成.img文件。这样所备份的原始数据,自然也就包含了分区表、上层文件系统等所有复杂的信息。

安装系统时,只要用逆向的方法,仍然绕开磁盘的上层结构,把镜像文件的内容直接写入磁盘底层,就能得到一块和镜像制作者完全一致的SD卡。从这个意义上讲,传播.img文件其实和直接转借、传递、分享SD卡本身是完全等效的。

这个逆向的写入操作就叫直接写盘。如果只把.img文件拷贝到SD卡中,那只是在文件系统这一层折腾,而没有修改磁盘前面的分区表部分,得到的卡必然和分发者的原样不一致。这就是这个新手问题的答案。

▲ 用图片说明直接写盘与拷贝文件的区别。

上:只拷贝文件得到的错误结果 中:直接写盘对磁盘的影响 下:直接写盘的结果(即镜像作者期待的磁盘原样)

警告:直接写盘是一项系统特权操作,错误使用可能导致意外抹除或覆盖磁盘数据。我们关心您的数据安全,确认了软件有防止错误的必要技术手段,也在本文中提供如何安全使用的提示。但仍然必须声明:软件和本文的作者均不对使用本软件可能产生的任何损害负责。[注C]

专门针对USB存储器的直接写盘工具USB Image Tool

对于Raspberry Pi等开发板,几乎所有的新手教程都推荐使用Win32DiskImager作为系统安装工具。但这个工具问题不少:

不支持中文目录名(文件或目录有中文,会出现123错误)

只使用盘符区分不同USB设备,用户需要自行核实,不方便。

浏览文件,记不住最后使用的目录,找常用的文件很麻烦。

不支持zip或gz格式的压缩档案。

必须先插好SD卡,再开软件。

其它小问题:界面风格简陋;MD5在XP下乱码等

所以我一直推荐在Windows环境下使用USB Image Tool做USB设备的直接写盘。

使用与特色

通常使用

左侧选定磁盘后,按Restore选择一个磁盘镜像写卡。按Backup读取卡的内容制作成磁盘镜像文件。

Restore和Backup命令能够记住上次使用的文件夹位置。

如果是先开启软件再插入磁盘,可能磁盘不会立即显示出来。这时请点击Rescan刷新左侧磁盘列表。

压缩支持

读卡和写卡都支持zip和gzip压缩的.img镜像。注意.imz并非一个专门的格式,其实只是仅含有一个.img的zip压缩包。

USB Image Tool实际上也可以正确识别.zip的压缩包。(虽然没有提供这个选项。需要先选择All files (*.*)以便能够选中.zip文件。)

收藏夹

USB Image Tool提供了Favorites标签页,可以收藏一些常用的镜像文件一键刷写,无需寻找。

重置SD卡

USB Image Tool提供了Reset功能,可以把磁盘的分区表部分全部写成0x00。

这个功能用来把为树莓派等系统重新分区过(在电脑上看到容量缩小成几十MB)的卡恢复原状。重置SD卡后,拔出并重新插入,Windows就会发现分区表被全部清空,而提示用户格式化磁盘,恢复磁盘全部空间分配为一个FAT32分区的原始结构。

安全性保证

USB Image Tool的安全保证主要是两点:

以设备名称区别磁盘而不是盘符。可以直接看到读卡器、U盘的设备名称和磁盘容量。

默认只显示存储卡和U盘,不显示移动硬盘和本地磁盘。(Options中提供选项突破这一点)

使用软件提供的机制,简单检查就可以避免刷写错误。

但我们仍然建议您:使用直接写盘工具时,请最好保证计算机上只连入了1个需要写入的USB存储设备。(防止数据灾难,戒之慎之)

其他

中文文件和路径名称没有问题。

一个软件窗口内,多个读卡器就可以并行读写,互不干扰,无需开多个窗口

自动请求管理员特权,不会出现软件正常启动但写入时才提示权限不足

推荐给在Windows下开发Raspberry Pi等Linux开发板的用户使用。

对于Linux

Linux下使用dd命令或SUSE Image Writer图形化工具直接写盘。

遗憾

USB Image Tool是免费软件(Freeware)而非开源软件。会不会将来有人会促成作者将此软件开源,或干脆做出一个开源的等效工具呢?

注:Windows XP下运行需要.net Framework 2.0。

注解

[注A] 其实是三个问题,另一个是“为什么不能直接使用台式机的Linux操作系统安装盘?”。这个问题的答案是:系统架构不同(台机=x86,开发板=ARM/MIPS),造成位于系统最最底层的机器指令层都不通用,上层的就全都更不用说了。

[注B] 这是个简略的说法。

[注C] 软件的免责条款,由许可协议中的AS IS条款规定。文章的免责条款,由CC知识共享许可协议规定。

《开源硬件佳软介绍》系列文章

《开源硬件佳软介绍》系列文章,介绍调试Raspberry Pi等开源硬件板卡,所用到的各种优秀软件。每周五更新,敬请期待!

上一篇:MobaXterm:“十项全能”的远程终端登录软件 【开源硬件佳软介绍 #1】

下一篇:待定中 :D

《USB Image Tool:Windows下的直接写盘利器》 http://segmentfault.com/a/1190000000492510

SegmentFault原创内容。部分内容使用了作者自己的旧创作。

转载使用请遵守本站相关声明。

本文作者与责任:沙渺

img写盘工具安装Linux,USB Image Tool:Windows下的直接写盘利器 【开源硬件佳软介绍 #2】...相关推荐

  1. U盘刻录linux系统后在windows下无法识别完整容量

    U盘刻录linux系统后在windows下无法识别完整容量 问题描述: 将linux系统刻录进U盘,会导致原本比如16G的U盘在windows上只能显示2m左右的容量. 这实际上是因为windows系 ...

  2. u盘修复linux系统,360u盘修复工具官方版u盘pe安装linux系统

    电脑配件质量不佳或损坏,是引起显示器黑屏故障的主要成因.如内存,显示卡,主板.CPU等出现问题肯定可能引起黑屏故障的出现.其故障表现为显示器灯呈橘黄色,此时可用替换法更换下显示卡,内存.CPU,主板等 ...

  3. 无人值守u盘安装linux,从U盘无人值守安装linux操作系统(纯实践笔记)

    作者:曲宝全 本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.is ...

  4. 从U盘无人值守安装linux操作系统

    本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.iso,这个ios ...

  5. u盘pe无人值守linux,从U盘无人值守安装linux操作系统(纯实践笔记

    本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.iso,这个ios ...

  6. 使用U盘引导安装linux

    适合场景: 在现场的实施环境中经常会遇到服务器没有光驱的现象 , 这个时候如果有一个外置光驱 当然是最好,但是一时找不到外置光驱或者安装光盘损坏的情况下, U盘引导安装linux 系统的方法是一个不错 ...

  7. 无人值守u盘安装linux,U盘无人值守安装Linux操作系统

    本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.iso,这个ios ...

  8. 如何用u盘引导linux,使用U盘引导安装linux

    适合场景: 在现场的实施环境中经常会遇到服务器没有光驱的现象 , 这个时候如果有一个外置光驱 当然是最好,但是一时找不到外置光驱或者安装光盘损坏的情况下, U盘引导安装linux 系统的方法是一个不错 ...

  9. windows装linux无u盘安装,u盘无人值守安装linux操作系统

    http://qubaoquan.blog.51cto.com/1246748/305623 本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO ...

  10. 【Linux】使用U盘自动化安装Linux(VMware虚拟机)

    文章目录 前言 一.准备 二.新建虚拟机 2.1 创建虚拟机 2.2 新增硬盘 2.3 系统启动项 三.加电运行 四.EFI方式 五.总结 前言 一.准备 基于之前的基础[Linux]Kickstar ...

最新文章

  1. C++ stl vector介绍
  2. 微服务该如何进行服务治理?
  3. ListView加checkBox可以实现全选等功能
  4. python3.6安装教程-python3.6环境安装+pip环境配置教程图文详解
  5. 【Python CheckiO 题解】Between Markers
  6. dubbo 注册中心zookeeper 手册
  7. Android笔记树
  8. #16192董哥授课的CCNP交换部分总结(三)
  9. python中sticky_Python stickymeta包_程序模块 - PyPI - Python中文网
  10. Bzoj1972: [Sdoi2010]猪国杀 题解(大模拟+耐心+细心)
  11. 程序人生-我已经努力了七年!!!
  12. linux挂镜像文件作用是什么,linux下挂载iso镜像文件,linux挂载iso镜像文件
  13. 资产监测设备帮助提升莴苣养殖的产量
  14. 【赚钱应跟Apple,做大不忘Google】移动开发时代的开发者选择
  15. 现役大学生必看!干货满满!
  16. 大整数的加法和乘法运算
  17. 【MySQL】MySQL高手是如何练成的?
  18. win10系统 ProgramData在哪里?怎么找
  19. MacBook Pro 时间机器备份(完美解决连接移动硬盘无反应)
  20. 如何将1万元用到极致?5种方法效果截然不同

热门文章

  1. cad会提示计算机中缺少,cad2014缺少shx文件该怎么解决?
  2. 明解C语言 初级篇1~8章
  3. 九、障碍罚函数法---内点、外点罚函数
  4. 如何在Python中使用生成器(Generate)和yield语句
  5. SVN下载项目到本地
  6. hlw8032功率计测试软件,功率计量芯片LAYOUT指南
  7. python分词和生成词云图
  8. 百元性价比高的蓝牙耳机推荐:学生党适合使用的蓝牙耳机
  9. 拨开字符编码的迷雾--字符编码转换
  10. 如何在Angular中引入AliPlayer