1と2のリビジョン間の差分
2021-02-11 23:15:38時点のリビジョン1
サイズ: 8850
コメント:
2021-02-12 00:00:54時点のリビジョン2
サイズ: 9487
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
以下の環境にFreeBSD 13.0-RELEASEをインストールする。 FreeBSD 13.0-RELEASEをインストールしてみる。
本記述は13.0-BEATA1時点での内容であるが、13.0がリリース後に微調整
する。
行 8: 行 9:
   * ほとんどのクラウド環境では変更不可能か、変更が困難であるため
   * 物理環境では変更しやすいし、メンテナナンス性も高いが、設定の統一性から見なかったことにする。
   * 高度な物理環境では、内部時間と表示時間(タイムゾーン情報を有す)を変えられるものもてきたので、昔ほどJSTにこだわらなくてもよい。
   * ほとんどのクラウド環境では本設定を変更することができないか、極めて困難である。
   * 物理環境では変更しやすいし、メンテナナンス性も高いのだが、設定の統一性から見なかったことにする。
   * よく出来た物理環境では、内部時間と表示時間(タイムゾーン情報を有す)を変えられるものもてきたので、昔ほどJSTにこだわらなくてもよい。
行 12: 行 13:
   * カツっカツにチューニングすれば512MBでも動作するが、その後何もできない。    * カツっカツにチューニングすれば512MBでも動作するが、その後はあまりできることが少ない。
行 16: 行 17:
 * 搭載ストレージもできれば50GB以上は欲しいところ。
   * 30GB程度では一通りのセットアップで埋まってしまう程度の容量なので、大きめに欲しいところ。
   * 用途にもよるがログ保存等を考慮すると100GB程度あれば安心である(こまめに圧縮する前提で)。
行 34: 行 38:
   * 最初は1ブロック512バイトであるが、    * 1ブロック512バイトが最小単位であるが、
行 43: 行 47:
||||||||||<#777777> BIOSブート環境 || ||||||||||<#AAAAAA> BIOSブート環境 ||
行 51: 行 55:
||||||||||<#777777> UEFIブート環境 || ||||||||||<#AAAAAA> UEFIブート環境 ||
行 65: 行 69:
{{{#!highlight console numbers=disable {{{
行 69: 行 73:
この時「BIOS」とればBIOSブート環境、「UEFI」とあればUEFIブート環境である。 この時「BIOS」と表示されればBIOSブート環境、「UEFI」とあればUEFIブート環境である。
行 80: 行 84:
# geom disk status root@:~ # geom disk status
行 90: 行 94:
sysctl machdep.wall_cmos_clock
行 93: 行 98:
=== 起動時チューニング ===

=== ランタイムチューニング ===
`sysctl machdep.wall_cmos_clock` の結果が0であること。`date` の結果が日本時間から9時間前で「UTC」を含むこと。

FreeBSD13のインストール

FreeBSD 13.0-RELEASEをインストールしてみる。 本記述は13.0-BEATA1時点での内容であるが、13.0がリリース後に微調整する。

前提条件

  • CMOS(BIOS)クロックのタイムゾーンをUTCとする。
    • ほとんどのクラウド環境では本設定を変更することができないか、極めて困難である。
    • 物理環境では変更しやすいし、メンテナナンス性も高いのだが、設定の統一性から見なかったことにする。
    • よく出来た物理環境では、内部時間と表示時間(タイムゾーン情報を有す)を変えられるものも出てきたので、昔ほどJSTにこだわらなくてもよい。
  • 搭載メモリはできれば4GB以上にしておきたい。
    • カツっカツにチューニングすれば512MBでも動作するが、その後はあまりできることが少ない。
    • FreeBSD本体のビルドに6GBは必要なので、3GBや2GBだとスワップアウトがキツイ。
    • これはC++のコンパイル負荷によるものなので、搭載メモリが少ない環境でのビルド(サードパーティ製含む)は諦めた方がよい。
    • 良好に使用するなら8GB以上は欲しいところではある。
  • 搭載ストレージもできれば50GB以上は欲しいところ。
    • 30GB程度では一通りのセットアップで埋まってしまう程度の容量なので、大きめに欲しいところ。
    • 用途にもよるがログ保存等を考慮すると100GB程度あれば安心である(こまめに圧縮する前提で)。
  • インストール先メディア(ストレージ)に応じてデバイス名を読み替えること。今回、ここでは vtbdn(n≧0) を使用する。
    • adan: SATA接続のHDDおよびSSD
    • dan: USB/SAS/SCSI接続の(マスストレージ)HDDおよびSSD
    • nvdn: NVMe接続SSD
    • mmscdn: eMMC(内蔵メモリカード)
    • vtbdn: バーチャルI/Oストレージ(QEMU、BHyVe環境他)
    • xbdn: Xen準仮想化ドライバ(Xen環境)
  • 全てGPTパーティション(領域)で組むものとして、BIOSまたはUEFI環境での起動を前提とする(マルチブートは考えない)。
    • BIOSまたはUEFIがブート用に認識するパーティション
    • /boot 用パーティション(UFSで構成する)
    • / 用のパーティション(ZFSで構成する)
    • スワップパーティション
  • またこの時以下のサイズを割り当てる。
    • ブートパーティション: BIOS環境=1024KB弱、UEFI環境=200MB
    • UFSパーティション: 4GB ※実用512KB・2倍の1GB程度はあった方がよい
    • ZFSパーティション: 残りサイズを計算して割り当て
    • スワップパーティション: 8GB ※搭載メモリの2倍で最大8GB程度に
  • またパーティション境界を可能な限り「各種」境界を考慮して割り当てるが、とりあえず1MB境界を目指す。
    • 1ブロック512バイトが最小単位であるが、
    • 4KBセクタードライブであったり、
    • SSDのページ単位(2KB~)・ブロック単位(128KB~)を考慮したり、
    • HDD SMRのブロック単位(256MB)を考慮した結果、
    • 容量とのバランスで1MB程度にしておく。そのうち1GB単位にしてもいいかもしれない。

インストール目標

以下のパーティション構成を組む。

BIOSブート環境

パーティション番号

パーティション種別

用途

サイズ

注意

-

GPTヘッダー

Protected MBR ブート

32 ブロック 

UEFIブート環境では使用しない。またエントリ数(128)は変更しない(起動しない)。

-

フリー領域

境界補正

8 ブロック 

次のパーティションの開始を4KB境界に補正する(無い環境もある)。

1

freebsd-boot

BIOS用FreeBSDブート領域

984 ブロック 

UFS領域を512KB境界に補正するためのサイズを指定。

2

freebsd-ufs

UFS領域(/boot として使用)

8387584 ブロック 

ZFS領域を1MB境界に補正するために、4GBに-512KB(ブート領域分)を指定。

3

freebsd-zfs

ZFS領域(/ として使用)

※都度計算※

スワップを 2048 ブロック(=1MB)境界に補正するためのサイズを指定。

4

freebsd-swap

スワップ領域(搭載メモリの2倍≦8GB)

16777216 ブロック~

8GB+補正分。

UEFIブート環境

パーティション番号

パーティション種別

用途

サイズ

注意

-

GPTヘッダー

Protected MBR ブート

32 ブロック 

UEFIブート環境では使用しない。またエントリ数(128)は変更しない(起動しない)。

-

フリー領域

境界補正

8 ブロック 

次のパーティションの開始を4KB境界に補正する(無い環境もある)。

1

uefi

UEFI領域(FAT32フォーマット)

409560 ブロック 

UFS領域を200MB境界に補正した(-40ブロック)サイズを指定。

2

freebsd-ufs

UFS領域(/boot として使用)

8388608 ブロック 

4GBフルサイズを指定(自動的に境界配置となるため)。

3

freebsd-zfs

ZFS領域(/ として使用)

※都度計算※

スワップを 2048 ブロック(=1MB)境界に補正するためのサイズを指定。

4

freebsd-swap

スワップ領域(搭載メモリの2倍≦8GB)

16777216 ブロック~

8GB+補正分。

環境確認方法

OS起動後になるが、以下のコマンドで環境を確認できる。

ブート環境

sysctl machdep.bootmethod

この時「BIOS」と表示されればBIOSブート環境、「UEFI」とあればUEFIブート環境である。

ディスク一覧

geom disk status

ディスク一覧が表示される(この時 Status と Components が N/A となるのは無視して良い)。 下記は実行例であるが、インストール先メディアは選ぶこと(mmcsd0 または ada0)。

root@:~ # geom disk status
       Name  Status  Components
     mmcsd0     N/A  N/A
mmcsd0boot0     N/A  N/A
mmcsd0boot1     N/A  N/A
       ada0     N/A  N/A

時刻

sysctl machdep.wall_cmos_clock
date

sysctl machdep.wall_cmos_clock の結果が0であること。date の結果が日本時間から9時間前で「UTC」を含むこと。

検証環境

FreeBSD/FreeBSD13-install (最終更新日時 2021-05-30 15:13:44 更新者 NorikatsuShigemura)