Gentoo Linux構築の手順　パート3

# 目的
Gentoo Linuxの[ハンドブック](https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ja#Portage.E3.82.92.E8.A8.AD.E5.AE.9A.E3.81.99.E3.82.8B)をもとにgentoo linuxを開発しました
ハンドブックでは分かりづらいため、他の方が作る際に少しでも助けになればいいとおもい記事にしました。
・[Gentoo Linux構築の手順　パート1](https://qiita.com/Goto_Kazuhide/items/9119186f9fb1bede1009)
・[Gentoo Linux構築の手順　パート2](https://qiita.com/Goto_Kazuhide/items/07eb5304c806a2dad793)
・[Gentoo Linux構築の手順　パート3](https://qiita.com/Goto_Kazuhide/items/cf671bf65f5f984abf21)
・[Gentoo Linux構築の手順　パート4](https://qiita.com/Goto_Kazuhide/items/fafe5ba5188f44be0433)
・[Gentoo Linuxを構築する上での用語集](https://qiita.com/Goto_Kazuhide/items/1ea550fe910255b1d24e)

# chroot する

```
nano -w /mnt/gentoo/etc/portage/make.conf
```

## Gentoo ebuild リポジトリ

```
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
```

```
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
```

## DNS 情報をコピーする

```
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
```
## 必要なファイルシステムをマウントする
```
mount --types proc /proc /mnt/gentoo/proc 
mount --rbind /sys /mnt/gentoo/sys 
mount --make-rslave /mnt/gentoo/sys 
mount --rbind /dev /mnt/gentoo/dev 
mount --make-rslave /mnt/gentoo/dev
```

## 新しい環境に入る
```
chroot /mnt/gentoo /bin/bash 
source /etc/profile 
export PS1="(chroot) ${PS1}"
```
export PS1="(chroot) ${PS1}"をたたいた後に
ターミナルの左側のlivecdが(chroot)livecd
となる.
これはchroot環境であることを忘れないようするために、シェルのプロンプトを変更する仕様
![スクリーンショット 2021-03-13 12.51.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/471165/e6aa36aa-041c-c878-3945-26f4bf17f060.png)

## ブートパーティションをマウントする
```
mount /dev/sda2 /boot
```

# Portageを設定する
```
emerge-webrsync
```

## 任意自由選択: Gentoo ebuildリポジトリを更新する
```
emerge --sync
```

## ニュースを読む

```
eselect news list
eselect news read
man news.eselect
```
## 適切なプロファイルを選ぶ

```
eselect profile list
eselect profile set *
```
*には数字を入力する
eselect profile listで表示された、no-multilibの左の数値を入力する


# @worldの更新

```
emerge --ask --verbose --update --deep --newuse @world
```

更新にしばらく時間がかかる

# USE変数を設定する

```
nano -w /etc/portage/make.conf
```

上記コマンドを入力して表示された画面に
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"
を追加
crtl+xでsavaし、Enterを選択

# タイムゾーン

```
ls /usr/share/zoneinfo
```

# ロケールの設定
## Locale generation
```
nano -w /etc/locale.gen
```

次のロケールの例では、英語と日本語を指定
C.UTF8 UTF-8
ja_JP.ECU-JP ECU-JP

## Locale selection

```
eselect locale list
```
```
eselect locale set *
```

*に数値をいれる　
ここでは英語(C.utf8かen_US.utf8)を選択すること。
理由：ハンドブックではここで日本語を選択しているが、
その後の章でエラーが起きたときにエラー文字化けを起こしてしまうため。

例　文字化けしたエラー文 ■の部分が文字化けとなる
![スクリーンショット 2021-03-13 10.00.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/471165/0c5da906-c538-04ef-b684-3e60c949d2c5.png)

例　英語に設定し、文字化けしていない場合のエラー文
![スクリーンショット 2021-03-13 10.28.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/471165/1666a31a-168d-395e-0c90-c503e2334813.png)

# カーネルソースのインストール

```
emerge --ask sys-kernel/gentoo-sources
ls -l /usr/src/linux
```

# デフォルト: マニュアル設定

## はじめに
```
emerge --ask sys-apps/pciutils
cd /usr/src/linux 
make menuconfig
```
以降 [ハンドブック](https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ja#chroot_.E3.81.99.E3.82.8B)に則りオプションを設定する

## コンパイルおよびインストール

```
make && make modules_install
make install
```

# カーネルモジュール
```
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
```
<kernel version>は環境によって異なります。
このコマンドでは、 find で検索したファイルを パイプ「|」を通して less という表示コマンドに渡しています
less の表示画面からは「Q」キーで抜けられます。（Ctrl+Zで強制終了もできます）

<kernel version>の自動入力（補完）方法
find /lib/modules/ まで入力した後、 Tab キーを１～２回押す
find /lib/modules/5.4.97-gentoo-x86_64と表示
※5.4.97-gentoo-x86_64は環境によって異なる

画面を見れること確認したら「Q」キーで抜ける

```
mkdir -p /etc/modules-load.d
nano -w /etc/modules-load.d/network.conf
```

# 苦戦したところ
  (エラーが出た際に解決の糸口になれば幸いです)

```
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
```
をたたいてもエラー表示
-iの-がぬけているだけだった

```
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
```

のところでmountをするとエラーが表示
→exitでchrootをぬけてrebootをたたく
　rebootするとマウントがすべて外れるため、mount /dev/sda4 /mnt/gentoo(ルートパーティションのマウント)をたたく
   stage tarball をダウンロードする、stage tarball を展開するのところコマンドを再度行う
   その後mount --types proc /proc /mnt/gentoo/proc以降できました
　(stage tarball を展開ができてなかったためにエラーが表示されていた可能性がある)

```
ls -l /usr/src/linux
```
lrwxrwxrwx 1 root root 19 Feb 27 16:12 /usr/src/linux -> linux-5.4.97-gentoo
といった表示がでない
→-l(小文字のエル)とたたくべきところを-I(大文字のアイ)とたたいていた

```
make && make modules_install
make instal(コンパイルおよびインストール)
```
のところでエラー表示
→ディレクトリがちがう(cd /usr/src/linuxをたたきわすれていた)