Linuxを日常的に使う実験ブログ

CRUX 3.6.1をインストールする(BIOS編)

 2022-01-24

 Linux全般

こんにちは。今回のテーマは「CRUX 3.6.1をインストールする(BIOS編)」です。BIOSシステムのマシンにCRUXをインストールしていきます。続編としてUEFI編も書きたいと思います。

[adsense02]

メディアの準備

インストールメディアはCRUXの公式サイトからisoファイルをダウンロードします。crux-3.6.1.isoファイルとcrux-3.6.1.md5ファイルを同一ディレクトリ上に配置し以下コマンドを実行してダウンロードしたファイルに誤りがないかチェックします。

md5sum -c crux-3.6.1.md5sum

DVDメディアを作成する場合

お手持ちのバーニングソフトでisoファイルをDVDに焼き込みます。

USBスティックを作成する場合

Linuxで作成する場合はddコマンドで作成します。

dd bs=4M if=[path/to/isofile] of=/dev/sdX status=progress && sync

インストールメディアの起動

用意したDVDもしくはUSBを入れて起動します。BIOS設定にて予め起動ディスクの優先順位をメディアが優先になるように設定しておいてください。起動すると以下のような画面が出ます。

boot

お使いのディスプレイの解像度に応じてフレームバッファを選んでください。わからなければCRUXを選択しても良いです。(環境次第では文字サイズが大きくなる可能性はありますがインストールは可能です。)

キーボードレイアウトの設定

起動初期はキーボードのレイアウトがUSですので、何かと不便です。以下コマンドで日本語キーボードレイアウトに設定します。

laodkeys jp106

キーボードレイアウトは/usr/share/kbd/keymaps/i386/qwerty/ディレクトリ内にあるファイル名で確認できます。

パーティショニング

パーティショニングは必ずしもCRUXのインストールメディアで行う必要はありません。たとえば事前にUbuntuのLiveメディアに含まれるGpartedを用いてGUIで行うことも可能です。

CRUXのインストールメディアで使用できるパーティショニングツールはfdisk, cfdisk, partedがあります。どれを使用するかは好みによりますが、どちらかというとcfdiskの方が使いやすいです。

ここではBIOS起動、MBRパーティションテーブルを使用するという前提でcfdiskで以下の表のようなパーティショニングをしてみます。

項目
起動システムBIOS(レガシー)
パーティションテーブルMBR
ルート(/)/dev/sda5
ホーム(/home)/dev/sda6
swap/dev/sda7

以下の画像がcfdiskを使用してパーティショニングをした例です。

パーティショニング

sda1が拡張パーティションとしてその中にsda5~7の論理パーティションを作成しています。これはあくまで例ですので、その通りにする必要はありません。スクリーンショット撮影用にVirtualBox上で再現しましたので、容量が極めて小さいですが、実機では余裕のある容量でパーティショニングしてください。

パーティションのフォーマット

パーティションが作成出来たらフォーマットをしておきましょう。今回はルートとホームともにext4でフォーマットします。

項目フォーマット
ルート(/dev/sda5)ext4
ホーム(/dev/sda6)ext4
swap(/dev/sda7)swap
mkfs.ext4 /dev/sda5
mkfs.ext4 /dev/sda6
mkswap /dev/sda7

パーティションのマウント

ではパーティションをマウントしましょう。スワップの読み込みをここで行っても良いです。

mount /dev/sda5 /mnt
mkdir /mnt/home
mount /dev/sda6 /mnt/home
swapon /dev/sda7

以下にlsblkコマンドで出力した画像を添付します。以下のようになります。

マウント例

システムのインストール

準備が整いました。ではCRUXのシステムを/mntにインストールしていきます。setupコマンドでインストールスクリプトが起動します。

setup

基本的にはここからはインストーラに従って行っていけばOKです。手順を追って説明してきます。   setupコマンド実行すると以下のような画面が出ます。

setup_01

installを選択します。

setup_02

システムをインストールするパーティションのマウント箇所を指定します。今回はデフォルトは/mntです。

setup_03

インストールするパッケージを選択します。coreグループのパッケージは必須です。その他のグループは必要に応じてインストールしてください。今回は最小環境の構築を目指すためcoreのみを選択します。もし最初からGUI環境を構築したい場合はXorgグループの中から必要なものを選んで入れてください。

setup_04

次に個別にインストールするパッケージを選択する画面に移ります。ここでYesを選ぶとパッケージごとに選択する画面となります。

setup_05

次にブートローダを選択します。今回はGRUB2を選択します。

setup_06

GRUB2のインストールに必要なパッケージが表示されますのでOKを押して次に進みます。

setup_07

いよいよ選択したパッケージをコピーしていきます。ここではYesを押せばスタートします。

setup_08

しばらく待ちましょう。以下のような画面が出ればパッケージのコピー終了です。OKを押して終了させましょう。

setup_08

CRUXシステムに入る

お待たせしました。いよいよインストールしたシステム内に入っていきます。

setup-chroot

ルートパスワードの設定

システムに入ったらまずrootパスワードを設定しましょう。

passwd

新たなrootパスワードと確認用のパスワードを入力します。

各種システムの設定

ここではシステムの様々な設定を行っていきます。

fstabの編集

まず起動時にマウントするデバイスの設定をしましょう。設定ファイルは/etc/fstabにあります。エディタはvimが入っていますが、パッケージでnanoを選択していればnanoも使用可能です。

vim /etc/fstab

以下に簡単な設定例を示します。予め設定例が記してありますので、該当部分のコメントアウトを外して記載すれば良いと思います。

fstab設定例

...
# <file systems>  <dir>  <type>  <options>  <dump> <pass>
/dev/sda5         /      ext4    defaults   0      1
/dev/sda6         /home  ext4    defaults   0      0
/dev/sda7         swap   swap    defaults   0      0
...

rc.confの編集

次に/etc/rc.confを設定しいきましょう。このファイルはフォントやローカルタイム、自動起動するサービスなどのシステムの基本的な設定を記載する場所です。基本的には予め記載されている設定例を編集すればOKです。設定項目は以下です。

項目説明
FONTコンソールのフォント
KEYMAPコンソール上のキーマップ
HOSTNAME他のマシンから認識されるシステムの名前
SYSLOG起動時に開始するシステムログサービス
SERVICE自動起動するサービス

rc.confの設定例

FONT=Lat2-Terminus16
KEYMAP=jp106
TIMEZONE=Asia/Tokyo
HOSTNAME=crux
SYSLOG=sysklogd
SERVICE=(lo net crond)

ネットワークの設定

rc.confのSERVICEの項目でnetを追加すると、/etc/rc.d/netのスクリプトが実行されます。このファイルでネットの接続に関する設定を行っておきましょう。

vim /etc/rc.d/net

TYPEの値を“DHCP”か“static”から選んでください。多くの場合はDHCPを選択しておけば問題なくネットに接続できるとは思いますが、IPの固定化が必要な場合などはSTATICを設定し、IP, デフォルトゲートウェイ等の設定をしてください。尚、デバイスの情報はip linkコマンドで確認できます。

localeの作成

日本語環境を構築する際にja_JP.UTF-8をサポートするように設定していきます。

localedef -f UTF-8 -i ja_JP ja_JP.UTF-8

現時点でシステムがサポートしているlocaleは以下のコマンドで確認できます。

locale -a

Linuxカーネルのビルド・インストール

実はまだ終わらないんです。ここからカーネルのビルドとインストールが始まります。カーネルビルドは難しいイメージをお持ちの方も多いかも知れませんが、マシンの情報を正しく知り、行いたいことを把握すればそこまで難しくはありません。設定項目が多いので、最初から完璧を目指さず、少しずつ望む姿に近づけていく気持ちで取り組めば気も楽になるのではないでしょうか。

デバイスの情報などはlspciコマンドで見ることができます。

以下の手順でビルドします。

cd /usr/src/linux
make menuconfig
make all && make modules_install

無事にビルドが終わったらカーネルをインストールします。/boot/ディレクトリに配置するファイルの名前はgrub-mkconfigコマンドが認識できるように“vmlinuz-”で始始まる名前にしてください。

cp arch/x86/bzImage /boot/vmlinuz-5.x

ブートローダのインストール

LILOを使用する方法もありますが、今回はgrub2をインストールします。今回はBIOS編なので紹介は省きますが、UEFIの場合はefi-bootmgrとgrub-efiが必要になりますのでご注意ください。

今回はMBRテーブルですので、以下のようにしてsda(起動ディスク)にインストールします。インストール後は設定ファイルを作成します。

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

再起動・ログイン

やっと終わりました。再起動してインストールしたシステムを起動しましょう。再起動時にインストールメディアを抜くことを忘れないで下さい。

exit
poweroff # or reboot

カーネルのビルドが成功していれば無事起動すると思います。もしカーネルパニック等で起動できない場合はもう一度インストールメディアでシステムにchrootしてカーネルのビルドに挑戦してください。起動画面は以下のようになります。

reboot

再起動したら、rootでログインします。パスワードはインストール時に決めたパスワードです。

ここまででひとまずインストール作業は終了です。お疲れ様でした。

最後に

ここまででベースシステムのインストールは完了しました。今回はGUI環境はインストールしなかったので、別途構築する必要があります。また、インストール後の設定に関しては今後の記事で扱っていく予定です。

[adsense]