BobbyQuineのブログ(備忘録)

Linux関係の備忘録、その他タバコ、Vape関連なんかも。

TOUGH BOOK CF-18 に繋いだUSBハードディスクにGentoo Linuxをインストールする。

ども、BobbyQuineです。今回はGentoo Linux。こいつを超強い(物理)なPC、TOUGH BOOK CF-18にインストールしてみました。ただし、仮に自分のパソコンでGentoo Linuxを使いたい、使ってみたいという方が訪れたのであれば悪いことは言いません、今すぐにGentoo公式インストールハンドブックに行ってください。僕のことですからどこかしら抜けている可能性もありますし、時代による移り変わりもあります。公式ハンドブックを見るに当たって、僕が今回インストールした時点では一部ページが日本語に翻訳されていない箇所があります。英語が不得意な方はgoogle翻訳さんにまるごとページを翻訳してもらったほうがぶっちゃけ楽です。

 

とりあえず今回も。やるなら自己責任でお願いします。

 

インストールディスクの作成

インストールするに当たって、まず母艦はPanasonic CF-S9 + Arch Linuxでやっていきます。

まずはここ↓↓からディスクイメージをダウンロード。今回、僕はX86のminimalCDでやっていく。

https://www.gentoo.org/downloads/

 

で、ダウンロードが終わったら適当なDVDrwを入れて

 

$ growisofs -dvd-compat -Z /dev/sr0=install-x86-minimal-20180221T214502Z.iso

 

まぁこの辺のツールの使い方はググってください。あとファイルの整合性調べておきたい人なんかは公式ページを確認のこと。

 

Live USBを作る場合

USBにLivediscイメージを焼き込む場合は

 

# sudo fdisk -l

で書き込み先のデバイスを確認。今回は/dev/sdb

 

# sudo dd if=imagename.iso of=/dev/sdb

 

LiveDiscの起動

今度はTOUGH BOOKにUSBDVDドライブ繋いでそいつにLiveDVDいれてBoot。このとき、ブート優先順位についてDVDを最優先にしておく。

起動途中にkeyboardの選択があるのでjp106である22番を入力してEnter。なお、こいつはしばらくほっとくとusキーボードのまま起動してコマンド待機するようになる。キーボード選択を逃してしまった方は慌てずに

 

# loadkeys jp106

 

でロードできる。で、毎度おなじみpingコマンドでネットに繋がっているか確認しておこう。なお、今回は有線でやっている。

 

パーティション分け

今回はこの前ジャンクを買ったときについてきた240GBHDDにインストールしていく。

boot、root、homeの3つのパーティションを作る。また、スワップ領域は作らない。

そしてGPTで作る。

 

# parted /dev/sda

(parted) mklabel msdos

(parted) mkpart primary ext4 2MiB 512MiB

(parted) mkpart primary ext4 512MiB 50GiB

(parted) mkpart primary ext4 50GiB 100%

 

このとき最初の2MB位を開けておく。

 

で、その後作ったすべてのパーティションext4でフォーマットする。

 

# mkfs.ext4 /dev/sda1

# mkfs.ext4 /dev/sda2

# mkfs.ext4 /dev/sda3

 

まぁ察されるとは思いますが、1が/boot、2が/、3が/home。

 

マウント

注意すべきなのはここでマウントポイントがArchのときと違い/mnt/gentooであること。

 

# mount /dev/sda2 /mnt/gentoo

 

時刻の確認&設定

公式ページの時刻関係を斜め読みした感じだとちゃんとあってないとうまく行かないことあるよ的なこと書いてあった気がしたので

 

時刻確認

# date

 

時刻設定

# date MMDDhhmmYYYY

 

なおこのとき自分の住んでいる国での時間ではなく、世界標準時かなんかで設定する(UTC).

 

stageballのダウンロードとインストール(展開)

ルートディレクトリ下にあるディレクトリ&ファイル郡を入れる作業。まず、ダウンロード元は公式には色々とミラーだとかなんだとか書いてあったのですが先程のISOをダウンロードしたページにstageball3のダウンロードボタンがあったのでそのリンクURLを用いた。なお、コレはある程度の期間で更新されるので自分でリンクされているファイルは確認してください。

 

# cd /mnt/gentoo

# wget http://distfiles.gentoo.org/releases/x86/autobuilds/20180221T214502Z/stage3-i686-20180221T214502Z.tar.xz

# tar xpf stage3-i686-20180221T214502Z.tar.xz

 

コンパイルオプション

そもそもGentooLinuxはすべてのソフトウェアについて、ソースをダウンロードしてきてローカルでコンパイルすることでそのハード及び環境に最適化するようにというコンセプトがある。そのコンパイル時にどのような操作をさせるかを記述しておくのが/etc/portage/make.confである。

 

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

MAKEOPTS="-j2"

CXXFLAGS="${CFLAGS}"

 

を追加した。これらはそれぞれ並列させる数、C++の最適化フラグ。詳しくはハンドブック見てください。

 

ミラーリストの追加

portageソースコードをDLするときのサーバーを物理的に近いやつにしといた方が早いので設定しとく。

 

# mirrorselect -i -o >> /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/portagerepos.conf/gentoo.conf

 

DNS情報のコピー

# cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

 

chrootに必要なファイルシステムをマウント

# 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

 

# chroot /mnt/gentoo /bin/bash

# source /etc/profile

# export PS1="(chroot) $PS1"

 

/boot、/homeのマウント

ここでこれらをマウントしておく。

 

# mount /dev/sda1 /boot

# mount /dev/sda3 /home

 

このとき、chrootしたことを忘れないように。

 

Webからのebuildスナップショットのインストール

 

# emerge-webrsync

 

ついでにebuildリポジトリを更新

 

# emerge --sync

 

プロファイルの選択

 

# elselect profile list

 

で選択可能なリスト表示。" * " マークがついてるのが現在の。

 

# eselect profile set [番号]

 

で選択。今回僕はx86/17.0/desktopを選択。

 

@worldセットの更新

プロファイルについて新しいものを選択したので更新しとく(任意)。なお、initシステムにsystemdを導入しようと考えている方はこれ必須。なお、今回僕はinitシステムにOpen-RCを使う。

 

# emerge --ask --update --deep --newuse @world

 

これは選択したプロファイル及び環境によってまちまちだがdesktopなんかを選択してると半日近くかかった。

 

USE変数の設定

ソースコンパイル時のこの昨日を使用する/使用しないということを設定する。コレによりそのソフトウェアにおいて必要のない機能を削ることができる。

 

# less /usr/portage/profiles/use.dosc

 

で使えるUSEフラグの確認。

 

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

USE="なんちゃら かんちゃら ・・・"

 

って感じ。僕は

USE="X aac flac mp3 x264 mp4 dvd cdr alsa cxx ffmpeg gtk wifi cjk"

としといた。

 

タイムゾーンの設定

 

# echo "Asia/Tokyo" > /etc/timezone

# emerge --config sys-libs/timezone-data

 

ロケールの設定

コメントアウトを外す。ロシア語は項目になかったので追加した。

 

# nano -w /etc/locale.gen

en_US.UTF-8 UTF-8

ja_JP.UTF-8 UTF-8

ru_RU.UTF-8 UTF-8

 

# locale-gen

 

# eselect locale list

# eselect locale set [番号]

 

このときja_JP.utf8にしちゃったら案の定エラー文とかが" ■ "になってしまったのでen_US.utf8で。あとは環境リロード。

 

# env-update && source /etc/profile && export PS1="(chroot) $PS1"

 

カーネル及びその周辺の設定

 

マニュアル設定でやっていきます。詳しくはGentoo公式ハンドブックを見てください。特に必須項目等もありますので。

https://wiki.gentoo.org/wiki/Handbook:X86/Installation/Kernel

 

# emerge --ask sys-kernel/gentoo-sources

# ls -l /usr/src/linux

# cd /usr/src/linux

# make menuconfig

 

セッティングがおわったら

 

# make && make modules_install

# make install

 

# emerge --ask sys-kernel/genkernel

# genkernel --lvm --mdadm --install initramfs

 

# emerge --ask sys-kernel/linux-firmware

 

vimのインストール

使い慣れないnanoはめんどくなったのでここでvimを入れとく。

 

# emerge --ask --verbose vim

 

fstabの作成

fstabは起動時にデバイスをどのようにマウントしていくかみたいなことが書いてある。

 

UUIDの確認をする。

 

# blkid

 

このときの出力結果を使う。こいつが長いのでいっそ

 

# blkid >> /etc/fstab

 

とでもしてあとからいらない部分消して使う感じで良いと思う。とりあえず今回は例として下のようなUUIDであったとする。

 

/dev/sda1   UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa

/dev/sda2   UUID=bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb

/dev/sda3   UUID=cccccccc-cccc-cccc-cccc-cccccccccccc

 

長いのでここより先それぞれaaaa、bbbb、ccccと略すことにする。

 

# vim /etc/fstab

UUID=aaaa                   /boot                   ext4                    noauto,noatime   0 2

UUID=bbbb                   /                           ext4                    noatime                0 1

UUID=cccc                    /home                 ext4                    noatime                0 2

 

ホストネームの設定

 

# vim /etc/conf.d/hostname

hostname="yourHostname"

 

# vim /etc/hosts

127.0.0.1    localhost.localdomain localhost

::1    localhost.localdomain localhost

127.0.1.1    yourHostname.localdomain yourHostname

 

dhcp

# emerge --ask --noreplace net-misc/netifrc

# ip link

 

で有線で使われている名前(ここではeth0としておく)を調べる。

 

# vim /etc/conf.d/net

config_eth0 = "dhcp"

 

起動時に自動的にネットワークに繋がるようにする

# cd /etc/init.d

# ln -s net.lo net.eth0

# rc-update add net.eth0 default

 

PCMCIA

TOUGH BOOK にはPCカードスロットがついているので

 

# emerge --ask sys-apps/pcmciautils

 

ルートパスワード

# passwd

 

キーボード設定

# vim /etc/conf.d/keymaps

 

keymap="us"となっているところをjp106に変える。

 

システムロガー

# emerge --ask app-admin/sysklogd

# rc-update add sysklogd default

 

ファイルのインデックス

# emerge --ask sys-apps/mlocate

 

ファイルシステムツール

ext2,3,4

 

# emerge --ask --verbose sys-fs/e2fsprogs

 

vfat(fat32とか)

 

# emerge --ask --verbose sys-fs/dosfstools

 

dhcpクライアント

# emerge --ask net-misc/dhcpcd

 

ワイヤレス関係はまたそのうち。とりあえずは有線で運用するので。

 

ブートローダー(GRUB2)のインストール

ブートローダーも色々と選択できるが今回はとりあえずデフォルトのGRUB2で。

また、今回はBIOSでありUEFIではない。パーティションにはGPTを使っているがそもそもCF-18にはUEFIはない。

 

# emerge --ask --verbose sys-boot/grub:2

# grub-install /dev/sda

# grub-mkconfig -o /boot/grub/grub.cfg

 

システムのリブート

 

とりあえずchrootから出る。

# exit

 

# umount -l /mnt/gentoo/dev{/shm,/pts,}

# umount -R /mnt/gentoo

# reboot

リブート時、起動優先順位を変えるかディスクを取り除くかして起動。無事起動したら成功。あとはstage~.tar.xzを削除したり一般ユーザー作成したりして終わり。

 

ここまで読んでくださった方、ありがとうございます。ぶっちゃけこの記事はなんとなくインストール手順の雰囲気をつかむためには役にたつかもしれませんが実際には個人的な単なる備忘録です。公式ハンドブックとgoogle翻訳を用いてインストールすることを強く推奨します。