为树莓派做系统升级是我一直想做的事。时间总是觉得不够,于是也好久没有碰。
直到前几天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……
那么在线安装呢?一觉睡醒,倒是在0.1M的速度下安装成功了,可是,启动完了,居然是14393!难道唯一的方法是通过IoT Dashboard每次下载安装?
首先更新一下Dashboard App。
直接点开“设置新设备”,下载新的镜像 15063,然后写到卡中。
每次都在线?不能啊……我能怎么办呢,我也很绝望啊……
首先解决为啥不是15063而是14393的问题。先看日志。
如果是通过NOOBS安装的系统,首先是运行在Linux Based安装环境的,然后才会引导到FAT/NTFS的文件系统,因此,需要使用能够读写EXT4分区的系统或者工具。
在尝试了开源的ext2fd(好像是叫这个)之后,因为发现Win 10下经常无法弹出介质,后来还是选择了用另外一张卡启动到Raspbian系统里面看日志和复制。因为复制出来的日志用notepad看太乱,也得用ultraedit之类的看。
我比较了14393和15063的成功启动的所有log文件:
我发现它们基本是一致的,从这个意义上来推测,14393升级到15063,安装的架构没有根本的变化。那么,是什么导致了在线安装只能装14393版本呢?基于之前的探索(虽然重拾这些点花了一点功夫),分区和OS的脚本,并没有包含相应的ISO的路径。
于是,我在NOOBS在线安装的时候,选择了Windows Insider版本,失败了:
调整了下思路,一个文件一个文件看下来,发现了成功之后有个isodlurl的文件,记录了下载的URL。对照分区partition_setup.sh脚本和installtool-output.log,推测这个地址链接是写死在installtool里面的。
于是我拿出了ultraedit……16进制改文件,果然发现了14393的URL,毫不客气地改成了15063的URL:
http://go.microsoft.com/fwlink/?LinkId=821940 –> http://go.microsoft.com/fwlink/?LinkId=846058
再次开机测试,一路0.1M下载……快要睡着的时候,又报错了……
下载地址倒是对了,哪里出错了呢?已经快凌晨3点了……
想起了重新打包installtool时候用的7zip,漫无目的地用7zip解压iso,再解压msi……看了hash,又看了7zip的log……难道对ISO的SHA1的HASH值也写进了installtool?搜了一下ASCII和HEX,没有发现……
睡不着了,问题到底出在哪?我把所有的脚本文件都打开了……为何下载ISO过程报错了呢?为何不下载ISO安装的时候报错了呢?……
终于我发现了问题所在!原来的分区脚本,scratch分区给的800M,原来的14393的ISO约600多M,所以是够的,而现在的15063的ISO已经约700多M了,解压估计放不下……
马上改脚本~顺便把installtool的路径从微软站点改到本地。
同时也把脚本中镜像路径修改准确。开机,速度在1.2M左右,应该是本地的啦!
拔掉网线,终于,安装成功!看到了15063的界面!
一觉醒来,已经六点半,8点开始一天的会议,有时间再更新github了:
https://github.com/HaoHoo/Windows-10-IoT