1. 程式人生 > >玩轉樹莓派——升級NOOBS離線安裝介質到Raspbian 4.9和Windows 10 IoT C

玩轉樹莓派——升級NOOBS離線安裝介質到Raspbian 4.9和Windows 10 IoT C

note log 基本 方法 打開 通過 gawk adc zip解壓

為樹莓派做系統升級是我一直想做的事。時間總是覺得不夠,於是也好久沒有碰。

直到前幾天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

玩轉樹莓派——升級NOOBS離線安裝介質到Raspbian 4.9和Windows 10 IoT C