Surface Pro 7+でSDカードにOSを入れて起動する

おめーは何を言っているんだと思ったあなたは正常です。
この記事では本来できないSDカードからのブートを行うための簡単な手順についてメモ代わりに残しておこうと思います。
結論だけ書いておくとUbuntuみたいなGrubをブートローダーとして使用するOSをSSDにインストールするとSDカードブートが間接的にできるよってことです。


## 今回の目的
メインストレージと物理的に隔離されたSDカードにもう一つのOSを導入することでデュアルブートに関する主にWindowsが引き起こす諸問題を回避する

そのためにSDカードにWindowsのライブ環境をインストール・実行できるようにする

### なぜ別のディスクにOSをインストールする必要があるのか

1. OSの再インストールや削除などでMBRを変更するのが面倒
2. 単に使えるストレージが小さくなる
3. SSDの消耗度合いに偏りができる

### 必要なもの

1. OSの各インストールメディアを作成するためのOSとPC
2. 外部ストレージ
今回はKIOXIAの64GB MicroSDを使用
3. キーボード
これはSurface環境ではWindows以外のOSでタッチパネルがそのままでは認識しないため
4. (任意)マウス
なくてもいいがあったほうが間違いなく良い。
5. 外部ストレージ2
こちらはOSのインストーラーの書き込み先として使う。32GBのUSBメモリを使用したが8GB程度で足りるはず。

## インストールの準備の準備

### Windows環境
RufusのWindows To Go機能が使える。インストーラーなしにLiveUSBを作成できるため大変便利。
また今回はメインストレージをUbuntuなどのLinuxOSで上書きすることを想定し、MicroSDからWindowsを起動する

よって以下のものをダウンロードする

Rufus

大変有名なBootableUSB作成ツール。USB以外にも使えWindows含む事実上すべてのISOをBootableUSBとして書き込める。
Linux版がないのが惜しい。
 
  https://rufus.ie/ja/
  
### Linux環境

主にLinux環境でWindowsインストールメディアが普通には作れない問題を解決する。
またWindowsToGoに当たるソフトを発見できなかったため通常通りインストーラーからインストールする必要がある。
また複数あるインストールISOをいちいち書き直すのは大変かつ時間がかかるため以下のソフトを使うことをおすすめする。

https://www.ventoy.net/en/index.html

こちらはインストールさえすれば専用の記憶領域にISOファイルをそのまま配置すればいいため手軽である。特に複数のOSをインストールする場合に最適。おまけに残りの領域を普通にフラッシュメモリとして使える。

Ventoyの使い方

https://darekasan-net.hatenablog.com/entry/2024/01/26/102232

### 必要なファイル

Windows Install Media

Microsoft公式からインストーラーのISOをダウンロードする。言語・エディションは各環境に合わせて変更してほしい。ArmSurfaceの場合はArm版が別ページにあることに注意すること。

Windows 10

https://www.microsoft.com/ja-jp/software-download/windows10ISO

Windows 11

https://www.microsoft.com/ja-jp/software-download/windows11



Linux OS 

今回はUbuntu 24.04.2 LTS を使用したが、Grub2がついてくるLinux・UnixOSならおそらくなんでも構わないはず。

Ubuntu 24.04.2 LTS

https://ubuntu.com/download/desktop

### インストール準備

順番に関しては入れ替えても問題ないが、Rufusの書き込みプロパティは以下になる。

Windows To Go

![20240115a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4026735/df13694f-8df7-4766-8358-7bcb875f45de.png)
※デバイス名・ブートの種類は環境と入れたいWindowsバージョンで変化することに注意
必須ではないが、スタート時のダイアログボックスでユーザーの作成をしておくと再起動後楽になる
デバイスはインストールUSBメモリではなく、**SDカードの方**である。

Ubuntu

![ubuntu_051.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4026735/7eed3e12-564b-4ba6-8ae4-5c458547a81a.jpeg)
特別変更する必要がある項目はないが、一部USBメモリが検出されない場合は詳細なドライブのプロパティからUSB接続のHDDを表示にチェックをつける必要がある。


### インストール

まずUEFI設定からUSBブートを有効化する必要がある。また念の為SecureBootも無効化しておく。動作しそうであれば後で再度有効化しても構わない。
インストール手順開始前であればWindowsの再起動ボタンをシフト押しながらクリックすることでUEFIの起動まで簡単にできるはず。

http://www.disksh.com/ds/reboot_win.html

一度UEFIを終了し、Surfaceのスタンドを起こして右手前のSDカードスロットにWindowsの入ったSDカードを挿入する。
おそらくUbuntuインストール時にOSの入ったディスクを検出できないとその後のGrubの設定を自動でしてくれない。その後USBメモリも挿入する。
ノック音がするが差し込みがよく甘くなるので奥に入ってからノック音がすることを確認する。

起動ボタンを押す前にVolume-を長押ししたままにしておくとUSBブートできる。Ubuntuのインストーラーが立ち上がれば離してOK。
通常通りUbuntuをインストールし、インストール先は内部的にMVME接続されている内臓SSDにインストールする。

Ubuntuのインストール手順

https://eng-entrance.com/ubuntu-install

WindowsBootManagerとの共存はせずディスクの全削除を選ぶ。
つまりデュアルブートに関する設定は変更せず、内蔵SSDの容量すべてを上書きする。

### 起動

この時点でUbuntuInstallerの入ったUSBメモリは外して良い。インストーラーの最後で指示され外しているはず。
まず通常どおりUbuntuが起動することを確認する。Grubが最初に立ち上がること以外変化なく特に問題なく起動するはず。

次はキーボードの矢印を使ってWindowsBootManagerを選択する。Surfaceの画面右下タップで出るUEFI用仮想キーボードはいろいろ不安定なのでおすすめしない。おとなしく物理キーボードを使う。
Windowsか起動して初回起動プロセスを実行・完了するとデスクトップのページングファイルのエラーがでるが動作自体には影響はない。ページングファイルは後にSDカードの寿命を伸ばすため無効化する。

### (任意)Windowsのページングファイルの無効化

要するにSwap、仮想メモリである。低速・低寿命なSDカードには向かないため無効化することをおすすめする。ただ、無効化すると一部アプリケーションでBSoDを誘発するため、そのあたりを気にする人は無効化しないほうがいい。

## おわり

ここまでくればLinuxとWindowsの2つのOSをパーティションの分割ではなく物理的に2つのディスクに棲み分けて起動できる。片方からもう片方をVMとして起動して同時に動かすのも面白いだろう。