• 作成:
  • 更新:

GNU/Linux環境の作成, Gentooの魅力とインストール方法

この記事はUNIXという講義で出た「GNU/Linux環境の作成」という課題のレポートを流用しています.

既にレポートは提出しました. せっかく書いた文章が勿体ないため多少改変して, サイトでも公開します.

ディストリビューションの選択とGentooの解説

Gentoo Linuxを選択しています.

昔はUbuntuやLinux Mintを使っていましたが, 高校3年の頃にGentooに落ち着きました.

Gentooはソフトウェアをインストールする時に, 原則自分のマシンでソースコードをコンパイルする, というのが特徴のディストリビューションです. (ただし, LibreOfficeなどのコンパイルに長大な時間がかかるソフトウェアは実行バイナリも配布されています)

パッケージ管理システムがコンパイルするという特徴により, gccの-march=nativeによるCPU最適化が期待できます.

また, コンパイル時にしか設定できないオプションを変更する(例えば, Emacsがlibxmlを使うか選択する)ために, 他のディストリビューションではパッケージ管理システムを逃れてソースコードを野良ビルドする必要があるところ, GentooではUSEフラグというパッケージ管理システム上のフラグを変更することでビルドオプションを変更できます.

また私は自分自身の/etc/portageを公開していますが, ncaq/etc-portage: my /etc/portageここに置いてあるようにportageはユーザが置いたpatchファイルを自動適用してくれます. 私はevinceのキーボードショートカットの変更方法がわからなかったため, ソースコードを変更したpatchを置いて対処しています. これを使うと, パッケージマネージャの自動更新が出来るという性質と, 野良ビルドのソースコード弄って好き勝手出来る性質の良いところだけを取ることができます.

Gentooはその高いカスタマイズ力からか, Google Chrome OSのベースとして使われています. Chrome OS、クロスコンパイルにGentooのPortage採用 - @IT なので, GentooはラップトップPCへのプレインストールLinuxとして最も採用されています! Ubuntuがプレインストールされた数少ないラップトップPCとの真面目な数値比較はしていませんが(ChromeBookはともかくUbuntuプレインストールPCの売上データがない)おそらくそれは正しいでしょう.

Skylake世代のCPUを使ったラップトップではRAIDを解除する必要があります

本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚に書かれているように, Skylake移行の世代のラップトップPCはSATAのモードをAHCIではなくRAIDモードにしていることがあり, それによってGNU/Linuxがインストール出来ないことがあります.

私の所有しているDell XPS 13 (9360)もそうなのでUEFIの設定を変更してSATAのモードをAHCIに変更する必要があります.

Fake RAIDでも起動できるようなfixがあるのかも知れませんが, 今の所は私は観測していません.

あらかじめWindowsのパーティションを縮小しておく

Windowsなんか絶対使わないという人は消せば良い話ですが, 大多数の人は一応ライセンスが認証されているWindowsを残しておきたいでしょう.

LinuxはNTFSファイルシステムの取り扱いがそこまで得意ではないので, 予めWindowsのディスク管理ツールでWindowsがインストールされているパーティションを縮小しておきます.

USBブート

Gentooにはインストーラが存在しないので, 自分でマニュアル的にインストールする必要があります.

USBストレージを用意します.

まず公式のLiveDVDを使用しません.

公式ページGetting started with Gentoo – Gentoo Linuxにも載っている手段ですが, 私は代わりにSystemRescueCd - System Rescue Cd Homepageを使います.

公式のLiveDVDは搭載ツールが貧弱です. SystemRescueCdを使ったほうがディスク関係などの豊富なツールを使えます.

「ツールが豊富なら良いのなら, Linux Mintを使えば良いのでは?」と思うかもしれません. しかし, 実際にやってみたことがあるのでわかりますが, 多分やってはいけません. Gentooのインストール時にはホスト環境の/dev/procをインストール先のディレクトリにmountしてchrootします. これらはディストリビューションごとに設定が異なるため, これを使ってインストールされた環境は単独起動した時に設定の違いからエラーを吐き出しました.

その点SystemRescueCdはGentooベースで構築されているので安心ですし, 元々システムのレスキューを目的に作られたディストリビューションなので, 何かトラブルがあった時も安心です.

また, SystemRescueCdはUSBスティックにブート環境を構築するシェルスクリプトを同梱しており, SystemRescueCd - Installing SystemRescueCd on a USB stick これを使うとUEFIブート可能なUSBスティックをポチポチするだけで構築することができます. LiveDVDを使うと, DVDを想定して作っているせいか, UEFIブート可能なUSBストレージを作るのが結構面倒でした. 本番環境ならともかく, USBブートで悩みたくないですね.

SystemRescueCdをUSBスティックにインストールしたら, そのUSBストレージにDownloads – Gentoo LinuxからダウンロードしたStage 3のtarファイルを配置しておきます. 別に別の箇所に入れておいても良いのですが, そうするとUSBストレージが1つで済みます.

追記

Archベースになったので適さなくなりました.

インストール

UEFIモードでUSBブートしたら, ハンドブック:メインページ - Gentoo Wikiに従ってGentooをインストールします. 以上です.

というと流石に内容が無さすぎるので, インストールしたときの記憶を要約していきます.

ハードウェアの情報は以下が参考になりました.

  1. USBブートする
  2. USB-Ethernetアダプタを使うなり, wifiに接続するなりしてインターネットに接続する
  3. gdiskを使って空いている領域にswapパーティションとメインパーティションを作成する, EFIブートパーティションは既存のものを使う
  4. ファイルシステムを構築する, 私はext4を選択しました
  5. 構築したファイルシステムをディレクトリ/mnt/gentoo/にマウントする
  6. /mnt/gentoo/にstage3 tarを展開する
  7. make.confを設定する, 私はsystemdを使うのでUSEフラグにそれを書いたりします
  8. DNS情報をコピーする
  9. /mnt/gentoo/devprocにホストのディレクトリをマウントする
  10. /mnt/gentoo/boot/efiにefiブートパーティションをマウントする
  11. chrootで/mnt/gentoo/をルートディレクトリにする
  12. portage treeを最新にする
  13. eselect profileでプロファイルを選択する, 私はgnomeもkdeもメイン環境とはしないのでdefault/linux/amd64/13.0/desktopを選択しました
  14. emerge -uDN worldする, systemdを使うため必須, USEフラグの関係でビルドが循環依存することがあるので一度外してインストールするなどする
  15. タイムゾーンを設定する
  16. ロケールを設定する
  17. Linuxカーネルをmake menuconfigしてビルドしてインストールする
  18. fstabを書く
  19. systemdなのでhostnamectlを使ってホスト名を設定する
  20. rootアカウントのパスワードを設定する
  21. networkmanagerをインストールしておく(DHCPクライアントをインストールしておかないと再起動した後にまたUSBブートするはめになる)
  22. grubをインストールする
  23. リブートする

これにてGentooのインストールは完了です. 後は好きにユーザを追加したり, emergeを使ってxserverをインストールしたりできます. 私はウィンドウマネージャにxmonadを使ってfirefox, lilyterm, emacs, mikutterを主に使っていますが, それらのセットアップはGentooのインストールという趣旨から外れるため, この文書には記述しません.

参考文献