玩转树莓派本;本;升级菜鸟离线安装介质到Raspbian 4.9和Windows 10物联网C

为树莓派做系统升级是我一直想做的事。时间总是觉得不够,于是也好久没有碰。

直到前几天MVP群里有兄弟问大家的github来互相关注,我才突然想起之前写过的制作离线安装介质的文章:http://haohu.blog.51cto.com/2474833/1858600

因为之前把制作Windows 10 IoT Core需要的文件放到了github上。前不久刚把电脑的Windows 10更新到了1703,也是时候更新树莓派上的Windows 10 IoT Core了。(据说有不少新东西,比如Cortana~这个这个,另外写一篇吧。)

于是我拿出了tf卡,下载了ISO,更新了NOOBS,然后自信地开启了树莓派的电源……WT……报错了……848……

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

那么在线安装呢?一觉睡醒,倒是在0.1M的速度下安装成功了,可是,启动完了,居然是14393!难道唯一的方法是通过IoT Dashboard每次下载安装?

首先更新一下Dashboard App。

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

直接点开“设置新设备”,下载新的镜像 15063,然后写到卡中。

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C 玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

每次都在线?不能啊……我能怎么办呢,我也很绝望啊……

首先解决为啥不是15063而是14393的问题。先看日志。

如果是通过NOOBS安装的系统,首先是运行在Linux Based安装环境的,然后才会引导到FAT/NTFS的文件系统,因此,需要使用能够读写EXT4分区的系统或者工具。

在尝试了开源的ext2fd(好像是叫这个)之后,因为发现Win 10下经常无法弹出介质,后来还是选择了用另外一张卡启动到Raspbian系统里面看日志和复制。因为复制出来的日志用notepad看太乱,也得用ultraedit之类的看。

我比较了14393和15063的成功启动的所有log文件:

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C 玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

我发现它们基本是一致的,从这个意义上来推测,14393升级到15063,安装的架构没有根本的变化。那么,是什么导致了在线安装只能装14393版本呢?基于之前的探索(虽然重拾这些点花了一点功夫),分区和OS的脚本,并没有包含相应的ISO的路径。

于是,我在NOOBS在线安装的时候,选择了Windows Insider版本,失败了:

玩转树莓派——升级NOOBS离线安装介质到Raspbian 4.9和Windows 10 IoT C

调整了下思路,一个文件一个文件看下来,发现了成功之后有个isodlurl的文件,记录了下载的URL。对照分区partition_setup.sh脚本和installtool-output.日志,推测这个地址链接是写死在installtool里面的。

于是我拿出了文本编辑器……16进制改文件,果然发现了14393的URL,毫不客气地改成了15063的URL: http://go.microsoft.com/fwlink/?

LinkId=821940→http://go.microsoft.com/fwlink/?LinkId=846058

再次开机测试,一路0.1下载……快要睡着的时候,又报错了……

玩转树莓派本;本;升级菜鸟离线安装介质到Raspbian 4.9和Windows 10物联网C”> </p> <p>下载地址倒是对了,哪里出错了呢?已经快凌晨3点了……</p> <p>想起了重新打包installtool时候用的7 zip,漫无目的地用7 zip解压iso,再解压msi……看了散列,又看了7 zip的日志……难道对iso的SHA1哈希值的也写进了installtool ?搜了一下ASCII和十六进制,没有发现……</p> <p>睡不着了,问题到底出在哪?我把所有的脚本文件都打开了……为何下载iso过程报错了呢?为何不下载iso安装的时候报错了呢?……<h2 class=玩转树莓派本;本;升级菜鸟离线安装介质到Raspbian 4.9和Windows 10物联网C