適当に色々書くブログ

曜日不定12時半投稿。2000年生まれのゲーム好きが適当に色々書きます。

その50 Gentoo Install Battle チート編 Gentoo半自動インストールスクリプト作成 適当に色々書く記事

2024/12/7 現在問題発見! 修正中!

修正しました。echoの>>と書く部分を>と書いてしまい、fstabなどの設定が消えてました。

 

開発状況

docs.google.com

 

前回 

melolololon.hatenablog.com

 

次回

melolololon.hatenablog.com

 

 

Gentoo

それは

Linux初心者達の永遠の憧れ

だがGentooをインストールできるのは

ただ、ひと握り......

 

というわけでもない

 

 

 

こんにちは。

前回、Gentooのインストールに挑戦しましたが、まぁめんどくさいこと。

ということで、チートコード(半自動インストールシェルスクリプト)を用意しました。

VirtualBox(UEFI)でインストールします。

 

対象

・cdコマンドが理解できる方

ディレクトリやパスの概念が理解できる方

VBまたは実機でのLinuxインストール経験がある方

CUIテキストエディタを使用できると困りにくいです(本記事ではnanoを使用します)

 

 

 

注意! 

AMD64(AMDIntel CPUでありかつWindowsが起動する環境)を想定しています。

・作成中&Linux超初心者なので不具合があるかもしれません。(2024年12月5日現在、

 実行し、再起動してログインできるようにはなっています)

・時間潰しで色々起動してメモリを使いすぎないように注意してください。

・/dev/sdaにパーテーションを自動で作成します。データ消えたりしても知らん。

 

 

目次が多いですが、1つ1つの作業は短いです。

 

インストール時間

30分〜1時間くらい?

 

参考サイト

自力でインストールする場合は、インストール方法が数パターンある為、理解するまでは頑張ってハンドブックを読みながらインストールしたほうがいいなと思いました。

wiki.gentoo.org

 

環境

インストールタイミング

2024年12月

 

以下はスクリプトを試した環境です。

 

環境1

インストール先    :VirtualBox バージョンは多分一番新しいやつ

OS            :Arch Linux

CPU            :Intel i5の第4世代くらいのやつ\

 

環境2

インストール先     :VirtualBox 7.0.18

OS            :Windows 10

CPU             :Intel  i5-11400

 

環境3

インストール先     :実機

OS            :無し

CPU             :Intel  i3第3世代?

 

共通部分

ネット        :有線

バイス     :有線

起動方法      :UEFI

 

準備

シェルスクリプトをダウンロード

GitHubにアップロードしておいたのでダウンロードします。

 

URLクリック

緑のCodeの矢印クリック

ダウンロードして解凍orファイル開いてコピペ

github.com

 

実行環境を整える

設定を確認する

UEFIで起動するように変更します。

 

VirtualBoxのネットワーク設定を以下のようにします。

アダプター1:ブリッジアダプター

アダプター2:NAT

 

また、ディスプレイ設定のグラフィックコントローラーをVMSVGAにしないとGUIが起動しません。注意してください。

 

メモリの確認

念の為、メモリは4G以上にしましょう。(ちなみに、makeコマンドでカーネルをビルドする場合、4G未満だとエラー出ます。今回はビルドしません)

 

ネットワークの確認

pingコマンドでネットに接続されているか確認しましょう。

コマンド【ping archlinux.jp】

 

シェルスクリプトの準備

シェルスクリプトをどうにかしてインストールする環境に送る。(USBメモリでコピー、共有フォルダを使用、オンラインストレージ使用など)

【sudo su】と入力し、実行。

どちらかを行う。

・【source パス/gebtooInstall_1.sh】の実行。

・現在のディレクトリに適当な名前のファイルを作り、シェルスクリプトの中身をコピペし、【source シェルスクリプトファイル名】の実行。(CUIテキストエディタやターミナルへの貼り付けはShift+Insert)

 

ちなみに、私はnano派です。

 

スクリプトを実行し、インストールする

実行すると、処理が走ります。

自分で入力するがあるので、ファイルごとに紹介していきます。

 

共通

Yes/No の選択肢が表示されたら

【yes】と入力してEnter。

 

ミスしたら

もしミスをした、ミスをしてしまったと思ったら、ディスクのパーティションを削除し、1からやり直してください。

対応できそうだったら、頑張ってみてください。

 

スクリプト1 (パーティション作成〜chroot)

パーティションは以下のように作成されます。

 

/dev/sdaに自動で作成。

/dev/sda1 efi     256M

/dev/sda2 swap 1G

/dev/sda3 ext4   残りすべてを割り当て。

 

もしパーティション作成でY/nが表示されたら

【Proceed Anyway】というメッセージと一緒に【(Y,n)】が表示されたら、【y】を入力し、Enter。

 

Stage3 ダウンロード

GentooではStage3というものをダウンロードし、解凍ければいけないのですが、ファイル名に日付が入っている&色々な種類があるので自分で選択できるようにしています。

 

今回は、

下の方へ移動し、amd64 aka x86-64, x64 Intel 64を選択。

今回はStage 3 systemd 年月日(可変) 〇〇MiB(可変)】を選択。(ちなみにこのスクリプトはsystemdを使用する前提です)

記事を書いているタイミングでは、【Stage 3 systemd 2024-12-01 230 MiB】でした。

 

あとでGUI環境構築するならDesktopのやつがいい?まだ試してないのでわかりません。

Saveを選択。

名前を【Stage3.tar.xz】に変更し、保存。

Qキーを押し、YesでEnterを押して終了。

 

スクリプト2を実行

Endみたいなメッセージが出力されたら、スクリプト2を実行してください。

【source パス/シェルスクリプトファイル2】のコマンド入力。

1実行時とカレントディレクトリが違うので、注意しましょう。

カレントディレクトリの表示は【pwd】です。

 

適当にファイルを作成し、コピペしてもいいです。

 

スクリプト2 (chroot〜ミラー選択)

ミラー選択

Yes/Noに【yes】と入力し、Enter。

 

その後、ミラーを選択します。Spaceでチェック。Enterで終了。

とりあえずJapanを選んでおけばいいんじゃないでしょうか。

 

私はJapan Internet Initiative〜 のftpのものを選択しました。

 

スクリプト3を実行

実行してください。

 

スクリプト3 (リポジトリ更新〜GRUBインストール)

2と3の処理は分けなくてもいいのに、分けてしまいました。(処理が長すぎて問題があると思ってしまった)

そのうち修正するかもしれません。

 

プロファイルを入力

よくわからなかったら、一旦22を入力。

 

デスクトップ環境をインストールする予定があれば、

【default/linux~/desktop/デスクトップ環境名/systemd】を選択。

(デスクトップ環境名は、使用したいデスクトップ環境が表示されているものを選択)

 

locale.genの編集

【en_US.UTF-8 UTF-8】と【ja_JP.UTF-8 UTF-8】の左にある【#】を削除。

Ctrl+Xを入力し、その後Yを入力してEnter。

 

localeの選択

4を入力し、Enter。

 

カーネルのインストール

この辺のコマンドを自動化したら何故か失敗したので、手動です。

全てのYes/Noに【yes】と入力し、Enter。

 

ちなみに、今回はディストリビューションカーネルという楽々インストールできるものをインストールします。ただし、設定を自動でやらせる為、最適化はされません。

 

カーネルの選択

カーネルのバージョンがlsコマンドで表示される為、確認してバージョンを入力し、Enter。

例 【linux-6.6.62-gentoo-dist】と表示されておいた場合、【6.6.62】と入力。

 

ホスト名の入力

好きな名前を入力し、Enter。僕はmelongentooにしました。

 

dhcpcdのインストール

何故か自動でyesの投入ができなかったので、手動で【yes】と入力し、実行します。

 

IPアドレスの入力

ifconfigコマンドにより、IPアドレスが表示されます。

192.168〜の番号を探して入力し、Enter。

例 inet 192.168.6.893と表示されていた場合、【192.168.6.893】と入力。

 

パスワードの入力

ログインする際のパスワードを入力。

rootのパスワードなので、厳重なパスワードにすることをおすすめします。

パスワードの確認がある為、全部で2回入力します。

 

systemdの設定

青文字で、

【Press any key to proceed】出力→Enter実行で以下が出力。

【Please enter system keymap name or number (empty to skip, "list" to list options):】出力→Enterで以下が出力。
【Please enter hostname new system (empty to skip)】出力→設定したホスト名入力後にEnterで終了。

 

一部表示されない(勝手にスキップされる)可能性あり?

 

GRUBのインストール

Yes/Noに【yes】と入力し、Enter。

 

シェル4の実行

実行してください。

残りはアンマウントと再起動だけなので、このまま再起動してもいいかも。

 

スクリプト4 (アンマウント〜再起動)

入力項目は特にありません。

 

スクリプト4 実行後

gentoo login:rootと入力し、Enter

Password   :自分が設定したものを入力し、Enter

 

ログインまでに10秒ほどかかるかもしれないです。手動でインストールした際はこんなに遅くなかったんですけどね。ここら辺は今度確認してみます。

ログインできたら成功です。

 

ログイン後

ログイン後、以下を入力して実行。(1行ごとに実行)

sudo emerge source-han-sans

localectl set-keymap jp106

 

インストール完了!

これで俺はGentooインストールできるくらいにはLinux詳しいんだぞって初心者にマウント取れますね! (運用していけるかは知らん)

 

自力でインストールした時と比べ、ログインや再起動の速度がやたら遅いので、見直しが必要かもしれません。

やる気がある方は、シェルスクリプトとハンドブックを見比べ、改善してみてください。私も頑張ってみます。

echo "hogehoge" > になってました。

 

2024/12/7追記

再起動後にemergeコマンドでインストールできない事象に遭遇。

echo "hogehoge" > になってました。

 

疑問

Q.せっかくGentooをインストールするのに何でカーネルコンパイルしないんですか?

A.面倒♡

 

Q.Gentoo使うんですか?

A.Arch軽いしパッケージ関係優秀だしシンプルだからArchでよくね?()

 

おまけ

おまけ 1

再起動時にGRUBのメニューが表示されない。→GRUBのインストール失敗。

GRUBのメニュー選択後にフリーズ。→Starge3かカーネルの問題。

 

おまけ 2

Gentooのライブディスク、USB起動後のKDE環境で、マウスカーソルを1秒ほど動かし続けると......?