思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.4】kernelの再構築準備

今回、立ち上げたFreeBSD13.4なテストマシンに割り当てたディスクサイズ(VHD)は、かなり小さいです(Max;32Gbyte)。
この容量で、各種作業/テストを行うには厳しい状態です。

そこで、まずは、メインファイルサーバー上のFreeBSD用export領域に、ソースなどを移動した上で、kernelの再構築を行おうと思います。【注*1】

 

※訂正※
  • 前回投稿(FreeBSD13.4のインストール)において、インストールするパッケージは最小構成で問題ない旨、記載いたしました。
  • 実際のところ、最小構成だと、追加のインストールにかなり手間がかかることがわかりました(FreeBSD9.x以降?)。
  • お詫び申し上げます。
  • なお、前回投稿は修正させていただいております。
  • 本投稿は、前回投稿の修正を踏まえた上での手順となりますことをご容赦いただければ幸いです🙇️。

1.メインファイルサーバーでの準備

(1)FreeBSD13.4用メインフォルダの作成

・まず、FreeBSD13.4用のサブフォルダを収める、フォルダを作成します。

root@filesv_main:# cd /FreeBSD ; FreeBSD用領域に移動
root@filesv_main:# mkdir  ./13.4-RELEASE-amd64 ; FreeBSD13.4用領域の作成
拙宅filesv_main:/FreeBSDのディレクトリ構成例(*2)
drwxr-xr-x   2 root  wheel       2 Oct 14 08:56 13.4-RELEASE-amd64
drwxr-xr-x   7 root  wheel       7 Aug 18  2003 3.5.1-RELEASE-i386
drwxr-xr-x   7 root  wheel       7 May 21  2006 4.11-RELEASE-i386
drwxr-xr-x   8 root  wheel       8 Aug 18  2003 4.8-RELEASE-i386
drwxr-xr-x  10 root  wheel      11 May  3  2006 5.4-RELEASE-i386
drwxr-xr-x  10 root  wheel      10 Feb 21  2011 6.4-RELEASE-amd64
drwxr-xr-x  10 root  wheel      10 Feb 14  2011 6.4-RELEASE-i386
drwxr-xr-x  10 root  wheel      10 Mar  6  2011 7.4-RELEASE-amd64
drwxr-xr-x  10 root  wheel      11 Mar 20  2011 7.4-RELEASE-i386
drwxr-xr-x  11 root  wheel      12 Mar  4  2018 8.4-RELEASE-amd64
Tips
  • この構成により、am-utilsのconfファイルは以下の様に記述できます。

    [..]
    bin host!=filesv_main;rfs:=/${os}/${osver}-${arch}/${key}; \
    host==filesv_main;type:=link;fs:=/${os}/${osver}-${arch}/${key}
    [..}
     
  • am-utilsは、”${os}”を”FreeBSD”や”Linux”に、”${osver}”を”O/Sのバージョン”に、”${arch}”を”アーキテクチャ”に、置き換えてくれます(*3)。
     
  • したがって、.cshrc等のサーチパスには、case文等を使わずに、単純に

    set path = (/sbin /bin /usr/sbin /usr/bin [..] /share/bin)

    と記述すれば、済む様になります。
    ※”/share/bin”は、am-utilsがマウントポイント実体にシンボリックリンクを張ってくれものになります。
(2)FreeBSD13.4用サブフォルダの作成
  • FreeBSD13.4用実行ファイルや、各種ツールのコンパイル、ports等を展開するサブファオルダを作成します。
root@filesv_main:# cd /FreeBSD/13.4-RELEASE-amd64 ; FreeBSD13.4用フォルダに移動
root@filesv_main:# mkdir X11R6 ; X11用フォルダの作成
root@filesv_main:# mkdir bin ;  FreeBSD13.4の実行ファイル用フォルダ作成
root@filesv_main:# mkdir games ;  
root@filesv_main:# mkdir info ; FreeBSD13.4のinfoファイル用フォルダ作成
root@filesv_main:# mkdir man ; FreeBSD13.4のmanファイル用フォルダ作成
root@filesv_main:# mkdir pds ;  FreeBSD13.4のプログラムこんなパイル用フォルダ作成。
root@filesv_main:# mkdir ports ;  FreeBSD13.4のports用フォルダ作成。
root@filesv_main:# mkdir src ;  各種反酢ファイル用フォルダ作成。
root@filesv_main:# mkdir packages ;  FreeBSD13.4のpackage用フォルダ作成
(3)FreeBSD13.4インストール用isoファイルのコピー
root@filesv_main:# cd /FreeBSD/13.4-RELEASE-amd64 ;  
root@filesv_main:# cp [..]/FreeBSD-13.4-RELEASE-amd64-dvd1.iso . ;  

2.kernelソース/portsをメインファイルサーバーに移動

(1)メインファイルサーバーのディスクをNFSマウント
root@test_sv:# cd /mnt ;  
root@test_sv:# mkdir /mnt/nfs ; マウントポイントを作成
root@test_sv:# mount -t nfs filesv_main:/Share/FreeBSD/13.4-RELEASE-amd64 /mnt/nfs ; NFSサーバーのディスクをマウント
(2)portsのの移動
root@test_sv:# cd /usr/ports ; portsディレクトリに移動
root@test_sv:# tar -cvf /mnt/nfs/ports.tar . ; portsをtarballにする
root@test_sv:# cd /usr ; usrディレクトリに移動
root@test_sv:# rm -fR ports ; portsディレクトリを削除
root@test_sv:# ln -s /mnt/nfs/ports . ; NFSマウントしたportsディレクトリにシンボリックを張る
root@test_sv:# cd /mnt/nfs/ports ; nfsマウントしたportsディレクトリに移動
root@test_sv:# tar -xvf ../ports.tar ; portsのtarballを展開
(3)kernelソースの移動
root@test_sv:# cd /usr/src ; srcディレクトリに移動
root@test_sv:# tar -cvf /mnt/nfs/src.tar . ; srcをtarballにする
root@test_sv:# cd /usr ; usrディレクトリに移動
root@test_sv:# rm -fR src ; srcディレクトリを削除
root@test_sv:# ln -s /mnt/nfs/src . ; NFSマウントされたsrcディレクトリにシンボリックを張る
root@test_sv:# cd /mnt/nfs/src ; nfsマウントしたsrcディレクトリに移動
root@test_sv:# tar -xvf ../src.tar ; srcのtarballを展開

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

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

*2:EOLなO/S用領域が多数、残っていますが😅、
健忘禄代りにあえて残しています😅。

*3:ただし、別途、メインのam-utilsのconfファイルへの定義が必要になりますが。