玩转树莓派——制作包含Windows 10 IoT Core和Raspbian的离线安装介质

简介:

How to make Windows 10 IoT Core offline install media for Raspberry Pi

前几天在树莓派上更新Receiver for Linux 13.4,又尝试在Pi上安装Visual Studio Code,结果觉得系统有点不正常了,于是打算重新刷一遍。

之前的系统使用了一张16 GB的TF卡,直接使用NOOBS lite进行在线安装。之前说了这样安装有个好处,就是安装文件本身不占太多的空间,更多的空间可以给系统使用。

可是……下载好慢啊……最关键是,下载Windows 10 IoT Core的时候,总是出错!好不容易下载完了,安装结束出现了MBR的HASH错误!

原因估计是GFW对HTTPS的干扰,SSL通信,你懂的。

N次在线安装失败之后,我怒了,搞个离线安装的卡!

说来容易,做来困难。Raspbian有离线安装的NOOBS下载,就是官网1 GB左右的那个压缩包。可是Windows 10 IoT Core怎么办呢?

搜索了半天,没有进展。后来我注意到,当网络失败时NOOBS会提示从一个站点下载内容失败。这个站点看上去是在Azure的CDN:

https://iottools.blob.core.windows.net/win10iotnoobs/

于是,通过人为制造网络断开,获得了几个文件的失败请求:

Windows_IoT.png, os.json, partitions.json, partition_setup.sh, marketing.tar

对照Raspberry的安装目录,感觉还缺安装启动镜像和安装镜像。我记得之前安装时会有FFU文件在Windows IoT的安装目录,尝试了一下,不行。打开marketing.tar,和slides_vga目录的一致,先解个压放好。

回到安装Windows IoT失败的系统,通过Raspbian挂载的那几个分区,挨个打开看。有一个叫Srcatch的分区吸引了我,里面有大量的LOG文件,最重要的,有一个ISO文件,难道这就是安装镜像?先复制过来!还有一些Linux下的文件例如installtool-1.0之类。再次尝试启动,当然还是失败了……

感觉这样是不够的。既然Windows自己会创建这些分区,那么这些下载和复制的初始化动作一定有迹可选,嗯,蛛丝马迹应该在json文件和sh文件里。

先打开partitions.json,从名字来看,这是个分区描述文件,很快就让我发现的蛛丝马迹:

image

图中高亮部分,就是类似启动安装环境的压缩包。你看到的这个“tarball”参数,已经被我替换成猜测的本地路径而不是需要下载的远程路径。当然,我也顺手下载了一份放到我前面做的文件夹里。

这样看来,启动需要的文件已经齐了。可再次安装时,还是去网上下载,离线失败……

继续。接下来是查看partition_setup.sh,我感觉这个文件完成了整个安装过程。为了能够明白这个过程,我这个Linux小白仔细地读起了Shell文件。看了两边之后,感觉需要改两个地方,一个是URL(后来发现这是由instaltool生成的,有时间在研究吧),一个是Image路径。于是,把第一个参数也改成我猜测的挂载路径。

image

再次启动NOOBS,终于能离线安装了……泪奔……可是,为啥Windows IoT在NOOBS选择的时候,没有图标呢?我不是处女座,可我也不能忍……

继续改os.json。

image

这一次,终于完美……

对了,其实一开始我失败了好多次,就是做完卡启动后,一直卡在NOOBS初始化阶段,等了一晚都不好使。于是我去NOOBS的github上看说明:

https://github.com/raspberrypi/noobs

recoevry.cmdline中在试了很多参数,都没效果。最后,发现一个神秘的参数:runinstaller。这个参数会自动开启分区调整,然后启动NOOBS的安装过程。

为了方便,可以直接从github上下载修改过的上述json和sh文件:

https://github.com/HaoHoo/Windows-10-IoT

如果需要ISO文件的话,可以留言我放网盘。

最后的最后,小结一下整个过程:

1、使用SDformatter来格式化SD/TF卡,如果之前已经做过NOOBS,可以使用diskpart的clean清除卡上的所有分区。格式化时,务必开启“逻辑大小调整”

clip_image001    clip_image001[4]

2、下载NOOBS的压缩包,可以选择1 GB的,解压到SD/TF卡

3、在os目录下,新建Windows_10_IoT_Core目录,并将前面提及的文件全部复制进去。记住,Linux区分大小写!

4、修改recovery.cmdline文件,加入runinstaller。(第一次解压的文件包含,可选。以后如果再次换卡使用,记得修改)

5、插卡启动树莓派,开始安装过程。

 

Windows 10 IoT Core对SD/TF卡的要求要高于Raspbian,如果可以,选择16GB Class 10以上的卡为佳。






     本文转自HaoHu 51CTO博客,原文链接:http://blog.51cto.com/haohu/1858600,如需转载请自行联系原作者





相关文章
|
传感器 物联网 数据管理
.NETCore/C#开发IOT嵌入式设备的个人见解
.NETCore/C#开发IOT嵌入式设备的个人见解
1158 0
.NETCore/C#开发IOT嵌入式设备的个人见解
|
JSON 监控 JavaScript
.NET Core 跨平台物联网开发:连接阿里云IOT(一)
.NET Core 跨平台物联网开发:连接阿里云IOT(一)
622 0
.NET Core 跨平台物联网开发:连接阿里云IOT(一)
|
传感器 监控 物联网
树莓派 + Windows IoT Core 搭建环境监控系统
树莓派 + Windows IoT Core 搭建环境监控系统前言:Windows IoT 是微软为嵌入式开发板设计的一种物联网操作系统,运行Windows UWP(C# 开发),可以设计出丰富的交互界面,驱动GPIO,连接一些传感器做有意思的事,本文详细介绍如何使用它搭建一个环境监控系统,并将数据上传到Microsoft Flow云服务器。
2688 0
|
Windows 物联网 数据安全/隐私保护
|
Windows 物联网
【Windows 10 IoT - 2】LED闪烁及动画绘制(树莓派 Pi2)
在最初获得的资讯中,以为Windows10 IoT版本不支持界面开发,没有想到,实际测试后,画面功能支持的还不错(画面功能的支持,通过命令可以打开也可以关闭)。画面功能的支持,将使Windows 10 IoT系统的应用场景变得更为众多。
574 0
|
Windows 网络协议
WINDOWS 2012 CORE SERVER也不是那么无情啦
配置IP是纯DOS风格, 但是在配置时区的时候,还是会跳出GUI界面的。 网上还有在CMD和GUI之间随意切换的方案呢。 如果CORE模式支持安装软件的话,我想以后这会是我的服务器首选方案。 但网上说它只支持AD,DHCP,DNS,FILESERVER, 不会吧???
927 0
|
19天前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
23天前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
24天前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
63 3
|
28天前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。