OS自作入門 その0(自作PCにUbuntu 20.04 LTSを入れる)

こんにちは、turtlekazuです。LineageOSみたいなカスタムROMを作ってみたい、でもその辺の低レイヤーな話は全然知らない、それなら勉強すれば良いじゃない、ということで、最近「ゼロからのOS自作入門」という本を入手しまして、体系的にお勉強を開始することにしました。こんな本があること自体すごいですね!

その本の中で開発用のベースとして使っていたのがUbuntu Desktopだったので、自作PCにSSDを追加して、そこにUbuntu 20.04 LTSを入れることにしました。個人的には以前、音声合成の深層学習でお世話になったことのあるOSです。UbuntuはRaspberryPi OS(以前はRaspbian)のお兄さん的な感覚がするのでなんか好きです(もっと正統なお兄さんはDebianですが)。モダンなデザインも素敵です。

Ubuntuの入れ方については、数多くの記事が書かれているので、書く必要もないかなと思ったのですが、リンクをまとめた備忘録として記事にしたいと思います。

Ubuntu公式サイトより

   

用意するもの

・SSDなどのストレージ(25GB以上)
・ライブUSB用のUSBメモリ(2.51GB以上、全領域が使用されるため、中身が消えてもいいもの)
・PC本体(搭載メモリ4GB以上、2GHzデュアルコアプロセッサ以上)
・その他(SSD固定用のマウンタ、接続用SATAケーブル)

   

インストールの流れ

Ubuntuのインストールは、

1. 別のOSで、ライブUSB作成(USBメモリ)
2. ライブUSBで試用版Ubuntuを起動
3. 別のディスクに本番Ubuntuのインストール
4. 本番Ubuntuの起動
5. Ubuntuの初期設定
おまけ. リモートデスクトップの設定

といった流れになります。試用版Ubuntuと本物のUbuntuの見た目がそっくり(というか同じ)なので、初めてやった時は戸惑いました…。メインで参考にさせていただいたURLはこちら

   

ライブUSB作成

自分はWindows10で作業を行いました。Windows10には、デフォルトでライブUSBを作れるソフトが入っていないため、外部ソフトをダウンロードする必要があります。今回使ったのは、「Rufus」というソフトです。ダウンロードしたらすぐ使える軽量なソフトで、操作も分かりやすいです。何より運営している方々が高尚なポリシーをもっていらっしゃるのが素晴らしいです。

次に、Ubuntu 20.04 LTSをダウンロードします。自分は公式サイトのものをダウンロードしました。大きい(2.5GBくらい)ので結構時間がかかります。isoファイルのダウンロードが済んだら、USBメモリを差し込み、Rufusを起動します。

「デバイス」で差し込んだUSBメモリを、「ブートの種類」でUbuntuのisoファイルを選択します。「パーティション構成」はMBRでもGPTでも構わないみたいです(参考)。ちなみに、こちら記事によれば一応規格としてはGPTの方が新しいみたいですね(ただし64bit環境が必要)。その他の項目は、自動で入る値そのままで大丈夫です。

「スタート」を押したら、ライブUSBの作成が始まります。ISOイメージモードで最初は行い、上手くいかなかった場合に、DDイメージモードで行います。終わった時、「完了」ではなくなぜか再度「準備完了」の状態になるのでちゃんと終わってるか不安になりましたが、問題ありませんでした。よく見たら準備完了の部分がグリーンになってますね。

   

試用版Ubuntuの起動

一旦パソコンの電源を切り、ライブUSB、およびUbuntuをインストールしたいストレージを接続します。再度起動した時に、「F2」か「Delete」キーを押していると、BIOS設定画面が表示されます。そこで、差し込んだライブUSBの優先順位を他のOSより上にすることで、試用版Ubuntuが起動します。
起動の最初に、数行の文字列が書かれた真っ黒な画面(起動ディスク選択画面)が出てくるので、一番上の「Ubuntu」が選択されているのを確認してEnterを押します(放置していても自動で選択されるので問題ないです)。

   

本番Ubuntuのインストール

自分の場合は、起動直後にインストーラが開きました。一旦インストーラを閉じた場合は、「Install Ubuntu 20.04 LTS」というアプリを開けば同じ画面が出てきます。インストーラの指示に従って進めましょう。

言語 -> 日本語
キーボードレイアウト -> Japanese/Japanese
(有線でない場合)WiFi -> 各自のWiFiに接続
アップデートと他のソフトウェア -> 任意ですが、自分は「通常のインストール」「Ubuntuのインストール中にアップデートをダウンロードする」にチェックをつけました

インストールの種類① -> 「それ以外」
これがちょっと注意が必要で、他のOSが入っているディスクが別で接続されている場合、「それ以外」を選ばないとディスク上のOSが消えてしまう可能性があるようです。
インストールの種類② -> 接続した、Ubuntuをインストールしたいストレージを選択
ここは、細心の注意が必要です。選ぶディスクを間違えると、他のOSが消えてしまいます。
接続したディスクが買ったばかりのまっさらな状態の場合、そもそもパーティションが分けられておらず、そのまま選んでも「エラーメッセージ」が出て怒られます。パーティションを分けるには、

(0. まっさらな場合、「新しいパーティションテーブル」を選択し、パーティションを作成 -> 「空き領域」がディスク下に追加される)

1. 「空き領域」を選択して「+」を選択
2. 出てきたウィンドウで、

サイズ -> 537MB(512MiB)
 タイプ -> 基本パーティション
 場所 -> この領域の始点
 利用方法 -> 「EFIシステムパーティション」

を選択し、「OK」を押す

3. 「空き領域」を選択して「+」を選択
4. 出てきたウィンドウで、

サイズ -> 自分のメインメモリ(RAM)の大きさ~1.5倍くらいのサイズ(例:16GBなら16~24GB(16000~24000MB))
 タイプ -> 基本パーティション
 場所 -> この領域の始点
 利用方法 -> 「スワップ領域」

を選択し、「OK」を押す

5. 「空き領域」を選択して「+」を選択
6. 出てきたウィンドウで、

サイズ -> 残りの全容量
 タイプ -> 基本パーティション
 場所 -> この領域の始点
 利用方法 -> 「ext4ジャーナリングファイルシステム」
 マウントポイント -> 「/」(ルートディレクトリ)

を選択し、「OK」を押す

というように、3つの領域を作成します。

EFIシステムパーティションのサイズは、諸説あるようですが、最低限128MB、UEFIのバグを考慮して推奨される値は537MB(512MiB)とのことで、自分は推奨サイズに設定しました。
スワップ領域は、(アプリウィンドウをいっぱい開いたりして)メインメモリの容量が足りなくなった時に、メモリの中身を一時的に退避させる場所です。ハイバネーション(復旧可能な状態での電源OFF)を考えると、メモリの中身丸ごと退避させても大丈夫なくらい確保しておくと安心みたいです。


パーティションをきちんと分けて、適切なストレージを選択できたら、「インストール」を押します。その後、まだ設定が続きます。

タイムゾーン -> 東京
あなたの情報 -> お好きなようにPC名やパスワードを設定してください

「あなたの情報」の「次へ」でついにインストールが始まります。ややこしいので、こちらを「インストール」のボタンにして欲しいものです…。
インストールが完了すると「インストールが完了しました」のウィンドウが表示されるので、問題がなければ、再起動を選択します。

   

本番Ubuntuの起動

電源を切るときに、「ライブUSBを抜いてからEnterを押してね(英語)」と表示されるので、指示に従います。BIOSの起動優先順位の一番上にUbuntuが入っているはずなので、特にまたBIOSを開かなくてもUbuntuが起動するはずです。

   

Ubuntuの初期設定

こちらの記事に非常に分かりやすくまとまっていました。自分が行ったものは以下の通りです。(端末を起動(Ctrl + Alt + T)して入力します)

パッケージ全体のアップデート・アップグレード

$ sudo apt update
$ sudo apt upgrade

フォルダ名の英語表記化

$ LANG=C xdg-user-dirs-gtk-update

トップバーやカレンダーの日本語表記の問題の回避

$ wget https://launchpad.net/~sicklylife/+archive/ubuntu/fonts-ja/+files/fonts-nt-ui-jp_2_all.deb
$ sudo apt install ./fonts-nt-ui-jp_2_all.deb
$ rm fonts-nt-ui-jp_2_all.deb

動画や音楽の再生(Ubuntuは、デフォルトではMP4とかを再生できないため)

$ sudo apt install ubuntu-restricted-extras

その後、出てきたウィンドウで「了解」-> 「はい」を選択(カーソルの移動はTabキー)

   

おまけ:リモートデスクトップ関連

個人的に、ノートパソコンから時々リモートでアクセスしたかったので、Chromeリモートデスクトップを入れたのですが、ちょっとトリッキーだったので、紹介します。

インストール

1. まずはこちらから、Chromeリモートデスクトップのサイトに移動します。Chromeブラウザではなく、FireFoxでも大丈夫です。
2. 「リモートアクセスの設定」にあるダウンロードボタンをクリック。
3. Chrome Remote Desktopの拡張機能のインストール。
4. chrome-remote-desktop_current_amd64.deb をダウンロード・インストール。

ここで、問題が発生します。「案内に従って設定を完了します」と書かれているのですが、それが一向に出てこないのです。調べてみると、こちらに原因と対処法が紹介されていました。
どうやら、configフォルダが自動で作成されないバグのために起こる現象だそうです。以下のコマンドを使って、手動でフォルダを作成することで、無事にデバイスが追加できます。

$ mkdir ~/.config/chrome-remote-desktop

あとはPINやデバイス名を設定すれば、設定完了です。

接続

続いて別のパソコンから普通に接続すると、なぜか画面が真っ暗です。
調べたところ、こちらに原因と対処法が紹介されていました。原因としては、ローカルの端末ですでにUbuntuにログインしていることがよくないみたいで、ローカルの端末をログアウトすればリモートで接続した時にきちんと表示されました。

   

結び

Ubuntuのインストールは少しややこしいですが、慎重に進めて無事に入れられると達成感がありますね。こんな素敵なOSを完全フリーで使わせてもらえるとは、本当にありがたい限りです。
Ubuntuでスマホも統一したいなーと定期的に思うのですが、Ubuntu Touchが入れられる端末が限定的すぎてちょっと手が出せていません…。日本だと技適の都合上、Nexus5かGoogle Pixal3aくらいしか選べませんし、どっちもGoogleから出ているので、脱Googleが結局できないのが不完全燃焼感で辛いです。

次回以降は、いよいよOS自作をガンガン進めていきたいと思います。

turtlekazu

モノづくりが大好きです。オーディオや車、ガジェットなども。ミシシッピニオイガメを飼育中。最近、ほうじ茶にハマっています。

おすすめ記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です