思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.4】ファイルサーバーのメンテ(4):カーネルの再構築

インストールしたFreeBSD13.4(O/S)のカーネルを再構築します。【注*1

まずは、

  • 不要ドライバーの無効化
  • カーネル再構築手順の振り返り(兼、現状のカーネル再構築の方法確認*2

のためにカーネルの再構築をします(*3、(*4))。

  • 過去投稿と被っているところがありますが、ご容赦いただければ幸いです。

1.sshdの設定変更(*5

コンソールでの作業は意外とめんどくさいので、一旦、TeraTermから、root でログインできるようにしておきます。

(1)/etc/rc.confの設定
root@file_sv:## cd /etc ; /etcに移動
root@file_sv:## vi /etc/rc.conf ; rc.confファイルを修正
  • 以下の黄色字部分を追加
sshd_enable="YES"
(2)sshdの設定
root@file_sv:# cd /etc/ssh ; /etcに移動
root@file_sv:# vi sshd_config ; sshd_configファイルを修正
  • 以下の黄色字部分を修正

[..]
Protocol 2
#PasswordAuthentication no

PasswordAuthentication yes

[..]

#PermitRootLogin no

PermitRootLogin yes

root@file_sv:# service sshd restart  ;

sshdの再起動

2.メインファイルサーバーのディスクをNFSマウント

この作業は、拙宅での環境における作業になります(*6*7)。

root@file_sv:# mount -t nfs mainfile_sv:/dbs/FreeBSD /mnt/nfs ; メインファイルサーバーのディスクをマウント/etcに移動

3.カーネル再構築[*8

不要なドライバーのロードを抑止し、カーネルサイズを小さくします。

(1)コンフィグレーションファイルの修正
root@file_sv:# cd /mnt/nfs/src/sys/amd64/conf ; kernel設定ディレクトリに移動*9
root@file_sv:# cp GENERIC [MYKERNEL] ; GENERICを適当な名前[MYKERNEL](ホスト名等)にコピーする。
root@file_sv:# vi [MYKERNEL] ;

[MYKERNEL]を編集し、
(1)カーネル名を変更する。
(2)不要なドライバーをコメントアウトする。

 

  1. ”ident”を変更します。
    • これを変更しておかないと、新しいカーネルも”GENERIC”として表示されてしまい、混乱します。
  2. コメントアウトする対象は
    • 使わない(使う予定のない)、ホストバスアダプタ(HBA)。
    • "re"ドライバー以外のNIC
      • (注)今回利用しているM/Bに載っているネットワークコントローラーがRealTekのためです。
      • 他のネットワークコントローラーが載っている場合にはコメントアウトしない対象は異なります

[..]

#ident             GENERIC
ident               [MYKERNEL]

[..]

# SCSI Controllers
#device          ahc                     # AHA2940 and onboard AIC7xxx #devices
#device          ahd                     # AHA39320/29320 and onboard AIC79xx devices
#device          esp                     # AMD Am53C974 (Tekram DC-390(T))
#device          hptiop                  # Highpoint RocketRaid 3xxx series
#device          isp                     # Qlogic family
#device         ispfw                   # Firmware for QLogic HBAs- normally a module
#device         mpt                     # LSI-Logic MPT-Fusion
#device         mps                     # LSI-Logic MPT-Fusion 2
#device         mpr                     # LSI-Logic MPT-Fusion 3

[..]

(2)カーネルのビルド
root@file_sv:# cd /mnt/nfs/src/ ; ディレクトリを移動。(*10
root@file_sv:# make buildkernel KERNCONF=[MYKERNEL] ; [MYKERNEL]の構築
  • CPU性能等によりますが、初めてのkernel再構築は結構時間がかかります😅。

(3)カーネルのインストール
root@file_sv:# make installkernel KERNCONF=MYKERNEL ; [MYKERNEL]のインストール。
root@file_sv:# reboot ;

[MYKERNEL]を有効化するために再起動する。

(4)起動確認

起動後、ログインするとカーネルの名前が[MYKERNEL]になっています。

起動後、”dmesg”コマンドで確認すると、"re0"ドライバー(*11)は機能しています。

netstat -i”で確認すると、”re0”はLINK UPしています。

【次回に続く】

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。
同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*2:”/sys”の中身が随分と変わった気がするので。。。😅

*3:何しろ、カーネル再構築はFreeBSD8.4以来でして。。。😅
何年前のO/Sだよー>自分😅

*4:コンピューター関連のメンテを怠ってきたツケが、今、回ってきています😑。

*5:以下の内容には、セキュリティ上のリスクがあります。
後日NISを用いた認証を行うようにしてから、rootによるtelnet接続を禁止します。

*6:複数のマシンに同じ内容の、"/usr/src"を分散させるより、
・一カ所にまとめた方がディスクの無駄が減る。
・各マシン毎のコンフィグレーションが一カ所にまとまっていた方が管理しやすい。
といった理由からこのようなことをしています😅。

*7:ディスク使用量低減については、今ほど大容量&安価なディスクのない時代からの、習慣みたいなものですが。。😅

*8:"第8章 FreeBSD カーネルのコンフィグレーション"、https://docs.freebsd.org/ja/books/handbook/kernelconfig/、最終閲覧日:2025年2月14日

*9:ローカルにkernel設定ファイルがある場合には、/sys/amd64/conf または、/usr/src/sys/amd64/conf

*10:ローカルにkernelソースがある場合には、/sys または、/usr/src/sys

*11:今回のM/Bに載っているチップ。