概要
USBブートできるUbuntu環境を構築してみました。最近のパソコンはセキュアブートが有効で、なかなかデュアルブートや、USBへのインストールが難しいのでLive USBを書き込み可能な永続化対応にしてみました。Live USBベースなのでアカウント認証がないので注意してください。
セキュアブートとは?
ざっくりいうとマイクロソフトの署名入りのOSしか実行できなくする機能です。Windows以外でも主要なLinuxなどは署名を受けているので実行可能なはずです。セキュアブートを無効化すると内部に保存してある指紋データなども使えなくなるので基本的には設定を変更するのは好ましくありません。
Ubuntuのセットアップ用USBはセキュアブート対応であり、インストール時にセキュアブート用の設定をいれることでセキュアブートに対応したUbuntu環境を構築することが可能です。
ただし、Windowsとのデュアルブートでの共存や、USBメディアへのインストールなどは非常に失敗しやすいため個人的にはおすすめしません。
今回は上記で作成したUSBが新しいパソコンでは起動できなくなっていたので、セキュアブート対応の環境を再構築してみました。
上記のようにLive USBを使って、毎回リセットされる環境もいいのですがちょっと面倒なのでお手軽に利用できる環境として、データの永続化を実施してみました。永続化をすることでLive USBへの変更を保存することが可能になります。
RufusでLive USBの作成
RufusというISOファイルなどをUSBに書き込むツールを利用します。いつもはRaspberry Pi Imagerを使っていますが、永続化処理が自動化できるRufusを今回使いました。
ISOイメージはUbuntuの公式サイトから落としてきます。現在LTSだと24.04.1が最新だと思います。末尾の数字は定期的に更新されているので、定期的に最新バージョンのISOに更新しておくとapt updateなどが少なく済むと思います。
肝となるのは2点で、保存領域のサイズです。この容量がLive USBから変更点を保存しておく領域となります。今回256GBのSSD USBを利用していますが、すべての容量ではなく200GBと少し減らして指定しています。
減らした部分はブート領域に追加されます。デフォルトではFAT32なのですが、あとでサイズを縮小するためにNTFSに変更して、あとで普通のUSBメモリ領域として利用します。
この状態でスタートすると結構な時間がかかりますがUSBができあがります。速度だけを見るとRaspberry Pi Imagerの方が圧倒的に早いです。
その後Windowsのディスクの管理を実行して、Ubuntu 24_04_1と書かれた領域を右クリックしてボリュームの縮小を選びます。最大まで縮小すると6Gちょっとぐらいになりますが少し余裕をみて7Gちょっと残して縮小しました。すると未割り当て領域ができますので、新しいボリュームをFAT32で作成します。
このドライブはWindowsからもUbuntuからも書き込みが可能な領域になります。セットアップで利用するコマンドのメモや、画面キャプチャなどはここに保存することが可能になっています。NASなどのネットワーク経由でファイルを転送する場合にはこの作業は必要ありませんが、今回作成するLive USBはアカウント管理がないのでネットワーク経由でのファイル保存はしない想定で作っています。
Ubuntuからは上記のようにDATAボリュームが見えて、Windowsで保存した画像などにアクセス可能です。
データの永続化は200G確保した領域に保存されます。このcasper-rwとブート領域はユーザーの書き込み不可のためDATAボリュームを別に作成しています。上記がapt updateを実施後の領域ですが仮想サーバーのスナップショットからの差分のように変更があったファイルのみが保存されています。16GBのUSBだと少し狭いかと思いますが、32GBのUSBメモリであればちょっとしたことだと使えそうですね。
Ubuntuを起動
USBを接続した状態で起動すると、、、最近のパソコンはWindowsが起動すると思います。。。メーカーごとにBIOSの入り方や、起動メディアの変更方法が違うのでUSBブートの方法を調べてみてください。
私は面倒なのでBIOSに入ってから、USBの起動順を最初にくるように変更しています。本当はBIOSの設定は変更せずにブートメニューに入るだけの方が好ましいはずです。
起動したあとはLive USBと同じなのですが、Rufusで永続化用に保存領域を作成しているので設定変更などが可能です。ただしベースはLive USBなのでログイン認証などはありません。そのためブラウザなどでログインしてパスワードなどを保存してしまうとそのUSBを紛失した場合に問題になると思います。なのでこのUbuntuはちょっとした用途向けであり、どこにもログインしないほうが好ましいです。保存するにしてもWi-Fiアクセスポイントの情報ぐらいに留めましょう。
おすすめ設定
タイムゾーンの設定をローカルタイムに
sudo timedatectl set-local-rtc 1
標準設定だとUTCで保存されるので、Live USBを利用するたびにパソコンの時間が9時間ずれてしまいます。上記の設定でローカルタイムを保存する設定に変更することでWindowsに戻ったときも正しい時刻になるはずです。
カーネルの更新をロック
sudo apt-mark hold 'linux-generic*' 'linux-headers*' 'linux-image*' 'linux-modules*'
上記でカーネル関係のバージョンアップをホールドします。カーネルを更新すると手元の環境では「unable to find a live medium containing a live file system」のようなエラーがでて起動することができませんでした。ブート領域をNTFSに変えたのもいけないかもしれませんが、カーネル更新はやめたほうが無難です。
そのためISOが更新されたら定期的に環境を作り直すのがおすすめです。apt update自体しないという選択肢もあると思います。
日本語入力
sudo apt install fcitx5-mozc
上記でfcitx5経由でmozcを使うのがおすすめです。ブラウザ上などはログインし直しなどをしないと反映しないことがあるので適度に再起動などをするのがおすすめです。
まとめ
Live USBより少しだけ使いやすいセキュアブート対応のセキュアでないUbuntu環境ができました。Linux環境はUSBを直接アクセスしたいときだったり、NASのディスクを確認したいときだったりとあまり本格的なことには使わないのと、画面キャプチャなどを保存することがあるので永続化が便利そうです。
セキュアなUbuntu環境がほしいときにはmini PCか中古ノートパソコンなどを用意して、Ubuntu専用環境を構築することをおすすめします。Windowsと共存するとなるとかなり面倒なので、仮想環境上に構築するか、今回のようなLive USBにするのがいいと思います。
ちなみに上記にてセキュアブート対応のUSBセットアップの手順が書いてありますが結構難易度が高いと思います。
永続化の仕組みは上記が詳しいです。Raspberry Pi Imagerを使うと後ろに未使用領域ができているので、本当は手動で作ったほうがきれいにできる気がしますが、そのために他のLinuxでこのUSBをマウントしてとやるのはちょっと難易度が高いのでRufus+NTFSでWindowsで完結するような構成にしてみました。
コメント