玩转树莓派——制作包含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,如需转载请自行联系原作者





相关文章
|
开发框架 .NET Docker
.NET Core项目部署到Windows系统Docker
.NET Core项目部署到Windows系统Docker
659 2
|
开发框架 .NET Windows
windows 本地443端口被占用,ASP.NET Core程序拒绝访问
windows 本地443端口被占用,ASP.NET Core程序拒绝访问背景:本地的ASP.NET Core程序在配置了HTTPS并且监听443端口,通过https访问被拒绝,提示没有权限,输入swagger路径访问swagger也提示未找到相关页面。解决:一般情况下,访问我们的ASP.NET Core 程序的swagger页面并不需要什么权限,而且本地调试运行swagger文档也没有什...
391 1
|
开发框架 自然语言处理 搜索推荐
基于.NetCore开源的Windows的GIF录屏工具
基于.NetCore开源的Windows的GIF录屏工具
228 0
|
NoSQL Redis 数据安全/隐私保护
.net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译。
659 0
.net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
|
jenkins 持续交付 网络安全
Jenkins之Windows中构建Core项目(下)
Jenkins之Windows中构建Core项目(下)
234 0
|
开发框架 jenkins .NET
Jenkins之Windows中构建Core项目(上)
Jenkins之Windows中构建Core项目
389 0
|
开发框架 安全 .NET
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
使用 IIS 在 Windows 上托管 ASP.NET Core
2213 0
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
|
10月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
2305 2
Windows Server 2022 中文版、英文版下载 (2025 年 10 月更新)
|
10月前
|
安全 Unix 物联网
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)
1017 0
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)

热门文章

最新文章