2021年03月31日 作成
2021年05月06日 修正
2021年5月5日 確認
WoR のバージョンが 2.1.1 に上がり、WoR 実行後に表示されていた SSD の BOOTパーティションが Windows からアクセスできなくなっています。オーバークロックの設定をするためには、Linux などに SSD を接続し、ディスクユーティリティ(gnome-disk-utility、メニュー名:ディスク)を使って強制的にマウントしてから config.txt を編集する必要があります。
2021年4月21日 確認
RPi-Windows-Drivers で開発されているドライバーのバージョンが上がったようなので確認してみましたら、通常の手順で USB 接続の SSD に導入ができ、起動もし、動作もするようです。
確認バージョン:Feature update to Windows 10, version 20H2 (19042.928)
これまで Raspberry Pi でいろいろな Linux をインストールして遊んでいましたが、Windows 10 が動作するという情報を得ましたので確認してみました。その結果、簡単なインストール手順で ARM版Windows 10 がUSB 接続の SSD から起動し、動作することが確認できました。
Raspberry Pi 4 で Windows 10 を動作させているところ
Raspberry Pi で動作する Windows 10 は通常のパソコン(x64、x86)で使用しているものとは異なり、「Windows 10 on ARM」と呼ばれる ARM製CPU(ARM64)を対象とした Windows 10 です。しかし、この「Windows 10 on ARM」は単独では市販されていません。Raspberry Pi に Windows 10 をインストールするには「Windows 10 ARM」のISOイメージが必要となります。有志の方々がマイクロソフトの公開情報から ISO イメージを作成するコマンドを提供してくれていますので、それを使って各自で作成します。従ってマイクロソフトからの正式なサポートはなく正常に動作するかどうかもわからないものです。
今回、幸いにして Raspberry Pi 4 で USB 接続の SSD から起動できる ISO イメージを作成することができました。その環境および手順について記述しておきます。
Raspberry Pi で「Windows 10 on ARM」をある程度快適に動作させるためには Raspberry Pi 4 と SSD およびオーバークロックが必須と考え、以下の製品を使用しています。
本体:Raspberry Pi 4( 4GB、USB ブート可能に設定)、CPU 冷却用ファン付きのケース
SSD:HDDケースとSSD(240GB)で USB 3.0 接続
LAN:有線LAN
その他に Windows 10 のライセンス、Microsoft アカウントが必要になります(通常的に利用する場合)。
Raspberry Pi 4 とケース
HDDケース(Salcar製)
SSD(KIOXIA製)
Windows の ISOイメージを作成する情報を公開しているサイトとして次の二つがあります。
UUP dump website
UUP Generation Project
今回は「UUP dump website」の情報で動作の確認ができています。以下の説明でも「UUP dump website」の情報をもとに説明しています。
ISO イメージから Raspberry Pi で実行できるように SSD/HDD を作成するプログラムとして、次のサイトから「WoR(Windows on Raspberry)」プログラムをダウンロードします。
今までにいくつかの情報をもとに何度か SSD にインストールを試みましたが、ほとんどがエラーになり失敗でした。しかし、今回確実に(たぶん)インストールおよび動作させることができました。最初に考え方について説明します。
基本的な考え方は、UUP をもとに作成される ISO イメージには update 情報が含まれているために正常に動作しないのではないかというものです。update 情報なしの素の ISO イメージを作り Raspberry Pi に導入したらどうか、ということです。その手順の概略は次のようになります。なお、ISO イメージの作成および起動用 HDD/SSD の作成は通常のパソコン(x64、x86)で行います。
「UUP dump」のサイトから ISO イメージ作成のためのコマンドを取得、解凍
このとき、「Browse update list」で update 情報を確認しておく
コマンド付属のファイル ConvertConfig.ini 内の「AddUpdates =1」を「AddUpdates =0」に修正
コマンド uup_download_windows.cmd を実行して ISO イメージを作成
WoR(Windows on Raspberry)サイトから WoR プログラムを取得
WoR を実行して ISO イメージから Raspberry Pi 用の起動ディスクを作成
起動ディスクから Raspberry Pi を起動
ISO イメージ作成時の UUPs フォルダから update ファイルを Raspberry Pi にコピーし、Raspberry Pi で update を適用
Raspberry Pi に Windows 10 をインストールする詳細な方法についてはいくつかのサイトで説明されていますので、ここではその知識がある前提で説明しています。
「UUP dump」サイトで、「Latest Public Release build」の「arm64」を選択します。
次に最新の「Feature update to Windows 10, version 20H2 (19042.867)」を選択します。
その後に表示される画面に従って、Language として「Japanese」、Edition として「Home とPro」を指定します。最後に表示される以下の画面で「Create download package」をクリックしてコマンドパッケージをダウンロードします。
ダウンロードが終わったら、同じ画面内の「Brows the list of update」をクリックして、「Windows 10, version 20H2(19042.867)」に必要な update file を確認しておきます。
Update file 一覧(19042.867の場合、2021年3月31日)
ssu-19041.860-arm64.cab
windows10.0-kb4562830-arm64.cab
windows10.0-kb4586858-arm64.cab
windows10.0-kb5000802-arm64.cab
windows10.0-kb5001263-arm64.cab
取得したコマンドパッケージ 19042.867_arm64_ja-jp_multi_d6a39dd1_convert.zip を解凍します。
コマンドファイルと同じフォルダにある ConvertConfig.ini ファイル内の情報を次のように修正します。
“AddUpdates =1” → “AddUpdates =0”
次に、コマンドファイル uup_download_windows.cmd を管理者モードで実行します。以下の名前で ISO イメージが作成されます。この ISO イメージを WoR で使用します。
19041.1.191206-1406.VB_RELEASE_CLIENTMULTI_A64FRE_JA-JP.ISO
WoR サイトから取得したファイルを解凍した後、 WoR.exe を管理者モードで実行します。Raspberry Pi で利用する HDD/SSD を用意しておいてください。ここでは詳細に説明しませんが、表示される画面に従ってパラメータを設定して HDD/SSD を作成してください。
WoR が終了すると、起動用の HDD/SSD に BOOT と Windows パーティションが作成されます。
WoR が終了した時点で今後の作業に必要となる Raspberry Pi の設定を起動用の HDD/SSD に済ませておきます。一つは update ファイルをあらかじめ Windows パーティションにコピーをします。update に必要なファイルは先ほど確認したので、UUPs フォルダにある以下の5つのファイルを Windows パーティションコピーしておきます。(19042.867の場合)
ssu-19041.860-arm64.cab
windows10.0-kb4562830-arm64.cab
windows10.0-kb4586858-arm64.cab
windows10.0-kb5000802-arm64.cab
windows10.0-kb5001263-arm64.cab
二つ目は、 Raspberry Pi をオーバークロックするために BOOT パーティション内の config.txt に次の2行を追加します。通常は 1.5GHzですが 2.0GHz で動作するように設定します。
over_voltage=6
arm_freq=2000
この段階で作成したHDD/SSD を取り外すことになりますが、「デバイスが使用中・・・」のメッセージが表示されて取り外しができない場合があります。無理に取り外さずにパソコンをシャットダウンして取り外してください。
さらに、 Raspberry Pi を最初に起動する際に必要となる操作がありますので、事前に説明します。
WoR でインストールされる Windows には、メモリ 4GB や 8GB の Raspberry Pi でも利用できるのは 3GB までという制限が設定されています。この制限を解除するには、 Raspberry Pi を起動するときに Esc キー押して setup モードにし、次の操作を行って解除をする必要があります。
「Esc」キー →「Device Manager」→「Raspberry Pi Configuration」→
「Adovanced Configuration」→「Limit RAM to 3 GB」の項目を「Disable」に変更
WoR で作成した HDD/SSD を接続して Raspberry Pi の電源を ON にします。数分で Windows 10 が起動し、Windows 10 の初期設定が始まります。通常のパソコン(x64、x86)と同じように設定していきます。ただしキーボードの設定が英語キーボード(101/102キー)になっていますので、起動後に日本語キーボード(106/109キー)に変更してください。初期設定中に「@」を入力する必要がある場合、英語キーボードでは「Shift」+「2」きーで入力できます。
日本語キーボード(196/109キー)への変更方法(Windows 10 起動後の操作)
「設定」→「時刻と言語」→「言語」→「言語の追加」欄にある「A字 日本語」をクリック→表示される「オプション」をクリック→「ハードウェアキーボード」欄の「レイアウトを変更する」→「日本語キーボード(106/109キー)」を選択
Windows 起動後に update を適用するために、管理者モードでコマンドプロンプトを起動し、以下の dism コマンドを実行します。(19042.867の場合)
C:\> dism /online /add-package= ssu-19041.860-arm64.cab /norestart
C:\> dism /online /add-package= windows10.0-kb4562830-arm64.cab /norestart
C:\> dism /online /add-package= windows10.0-kb4586858-arm64.cab /norestart
C:\> dism /online /add-package= windows10.0-kb5000802-arm64.cab /norestart
C:\> dism /online /add-package= windows10.0-kb5001263-arm64.cab /norestart
(2021年3月31日現在、最後の cab ファイル(kb5001263 )適用ではエラー)
または次のコマンドを入力し実行します。
C:\> forfiles /p . /m *.cab /c "cmd /c dism /online /add-package=@path /norestart"
適用後、リブートします(正常にリブートできないときは、「Alt」+「F4」キーで対応してください)。
( dism コマンドについては 「Windows10で更新プログラムをコマンドでインストールする方法」を参考にさせていただきました。)
注意:USB メモリは使用できますが、取り外しを行うとエラーになり、ブルースクリーンになります。
初期の Raspberry Pi から遊ばせてもらってきた小さなコンピューターですが、ついに Windows 10 が動作するようになって大変うれしく感じています。Raspberry Pi での ARM版Windows ということで、周辺機器やグラフィック関係のドライバなどがまだまだ開発段階のようですが、この情報をもとにたくさんの利用者が現れ、開発が一段と進むことを期待しています。
UUP 関係、WoR 関係の開発者にはこのような楽しい経験をさせていただいて感謝しています。同時に Raspberry Pi 4 で USB ブートを可能にしていただいた開発者にも感謝いたします。
最後に、この導入方法は個人の推測から偶然に発見したもので、正式なサポートがあるわけではありません。利用については十分にご注意ください。
2021年4月9日 追加
次のバージョンで正常に(たぶん)インストールができ、動作していることが確認できています。
Feature update to Windows 10, version 2004 (19041.867)
Feature update to Windows 10, version 20H2 (19042.867)
Feature update to Windows 10, version 21H1 (19043.906)
Windows 10 Insider Preview 21343.1000 (rs_prerelease)
Windows 10 Insider Preview 21354.1 (co_release)
Windows 10 Insider Preview 21359.1 (co_release) (2021月4月18日 確認)
Windows 10 Insider Preview 21343.1000 と 21354.1 、21359.1 については、通常のインストール方法でも動作するようです。
2021年4月14日 追加
UUP dump サイトからダウンロードしたコマンドファイルの中に「ReadMe.html」というファイルがあり、 ConvertConfig.ini に記述するパラメータ AddUpdates に関する説明がありました。
AddUpdates
Set this option to 1 to integrate updates into wim files
Set this option to 2 to add updates externally to ISO distribution
「AddUpdates =2」の設定では update 情報を含む ISO イメージは作成されますが、WoR による Raspberry Pi へのインストールには反映されないようです。「AddUpdates =0」と同じ手順(update)が必要になります。
2021年4月18日 追加
通常のバージョンアップ(例えば2004から20H2へ)の方法、つまり新しいバージョンの ISO イメージ内の setup.exe の実行ではバージョンアップはできないようです。新しいバージョンが必要なときには、新たな環境構築となるかも...。
以 上