基本的には参考にあるサイトに準拠しています。

必要なもの

  • USBハブ (USB端子が1つしかないため、以下の2つを同時に接続するために必要)
  • USBキーボード (途中までSurfaceにもとからついているキーボードは使えません)
  • USBメモリ (Ubuntuのブート用)

ブート用のUbuntuをUSBメモリに用意する

基本ここのとおりにやればよい。あらかじめ作っておいてある人もいそう。ここ以外にもたくさん文献があると思うので ここでは説明しない。

UEFIでセキュアブートを無効にする

音量アップボタン(F6)を押しつづけながら、電源を入れる。 もしくは、Windowsを立ち上げて「設定>更新とセキュリティ>PCの起動をカスタマイズする>今すぐ再起動> トラブルシューティング>詳細オプション>UEFIファームウェアの設定」と行く。UEFIは、BIOSの進化版みたいな ものらしい。

UEFIに入ったら、「Security>Secure Boot>Change configuration」をクリックして、「Microsoft only」から 「None」に変更する。LUKSで暗号化すればどうせSSDの中身はパスワードなくして読めないので、 セキュアブートはなくても問題ない気がしている(本当か?)。 後でLUKSのパスワードを求められたときには堅牢なパスワードにしておきましょう。

最後に、Boot configurationタブで、USB Storageを一番上にもっていく。これで、Windowsではなく USBにあるUbuntuが先に立ち上がるようになる。

Ubuntuを起動する

まず、SurfaceにUbuntuの入ったUSBとキーボードを、USBハブ経由で繋ぐ。 そして、「exit>Restart now」すると、Ubuntuが立ち上がる。

Ubuntuをインストール

基本は下記のURLに従ってもらえればいいが、暗号化するのに注意がある。 「インストールの種類」のタイミングで、「ディスクを削除してUbuntuをインストール」すると思うが、 ここで「高度な機能」をクリックし、「新しいUbuntu」の「インストールにLVMを使用する」を選択し、 「安全のために新しいUbuntuのインストールを暗号化する」にチェックを入れて欲しい。 これで、bitlockerと同様にディスクが暗号化される。

URLはこれ。「ストレージ設定」の見出しのところに その画面がある。この記事では暗号化をしていないので、一切触れられていない。 この後パスワードを入力させられる(パスワードなしでもいけるが、セキュアブートなしだと危うそう)。 そのとき、バックアップキーが表示されるので、パスワードを忘れたときのためにどこかにメモっておく。

Surface用のカーネルを導入

次に、Surfaceの各種デバイスが使えるよう、専用のカーネルをインストールする。 基本はここに買いてある通りでよい。ただし、

1
2
sudo apt install linux-surface-secureboot-mok
sudo update-grub

に関しては、セキュアブートしないのならば必要ない。 私はこれを実行した上で、UEFIにおいてセキュアブートを「Microsoft and 3rd party CA」としても セキュアブートできなかったので断念した。余力があればチャレンジしてほしい。

キーボードをLUKSパスワード入力時にも使えるようにする

このまま再起動すると、起動時にLUKSのパスワードを聞かれる。 しかし、その時点で読み込まれるファイルシステムはSurfaceのキーボードのドライバを含んでいないらしく、 外部キーボードでしか入力できない。これでは使いものにならないので、最初に読まれるモジュールを追加する。

エディタは問わないが、 /etc/initramfs-tools/modules を開いて、以下を末尾に追加する。 root権限が必要なので注意。ちなみに、このリストはここからとってきた。

1
2
3
4
5
6
7
surface_aggregator
surface_aggregator_registry
surface_hid_core
surface_hid
intel_lpss
intel_lpss_pci
8250_dw

その後、以下を実行する。こちらも sudo が必要。

1
update-initramfs -u

おわり

あとは再起動すれば、SurfaceのロゴとともにLUKSのパスワードを聞かれるので、Surface備え付けのキーボードで パスワードを打てることがわかる。

参考