pure ZFS 環境の構築 (後編)

 iTunes Store(Japan)
この記事の所要時間: 109

pure ZFS 環境の構築 (前編)の続きです。

前編では、pure ZFS 環境を構築する上でのパーティショニングまでしました。
後編では、OSのインストールを行います。

OSのインストール

OSのインストールはパーティショニングと同じFixit上で行います。
通常のインストール方法だと、最小環境(minimal install)と全ソースを選んだ状態とほぼ同じ状態になるかと思います。

  1. 環境変数のセット
  2. Fixit# export DESTDIR='/pzkw/system'
    Fixit# echo $DESTDIR
    /pzkw/system
    

    echo コマンドを実行した際に、export で指定した値が出ればOK。

  3. base のインストール
  4. Fixit# cd /dist/8.0-RELEASE/base
    Fixit# ./install.sh
    You are about to extract the base distribution into /pzkw/system - are you SURE
    you want to do this over your installed system (y/n) ? y
    

    y と返答

  5. kernel のインストール
  6. Fixit# cd /dist/8.0-RELEASE/kernels
    Fixit# ./install.sh generic
    Fixit# cd $DESTDIR/boot
    Fixit# rmdir kernel
    Fixit# mv GENERIC kernel
    
  7. src のインストール
  8. Fixit# cd /dist/8.0-RELEASE/src
    Fixit# ./install.sh all
    
  9. 環境変数のアンセット
  10. Fixit# unset DESTDIR
    Fixit# echo $DESTDIR
    
    

    echo コマンドの結果は空白であればOK。

ブートローダの再構築

初期の /boot/loader だと pure ZFS 起動が出来ないらしいので、LOADER_ZFS_SUPPORT オプションを付けて再構築を行う必要があります。

  1. 設定前準備
  2. Fixit# mount -t devfs devfs /pzkw/system/dev
    Fixit# chroot /pzkw/system tcsh
    
  3. make.conf の設定
  4. # echo 'LOADER_ZFS_SUPPORT="YES"' > /etc/make.conf
    
  5. 現在の loader 確認
  6. # ls -al /boot/loader
    -r-xr-xr-x  1 root  wheel  262144 Nov 21 14:56 /boot/loader
    
  7. ZFS 対応 loader の再構築
  8. # cd /usr/src/sys/boot/
    # make clean
    # make obj
    # make depend
    # make
    # cd i386/loader
    # make install
    
    install: /usr/share/man/man5: No such file or directory
    *** Error code 71
    

    エラーで終わってしまうが、必要な /boot/loader は置き換わっているのでOKとします。

    置き換わった /boot/loader を確認してみると・・・

    # ls -al /boot/loader
    -r-xr-xr-x  1 root  wheel  282624  1 17 18:48 /boot/loader
    

    ファイルサイズが変わっているので、おそらく変わってるかと・・・

設定

コマンドでもできますが、ここではsysinstallで設定していきます。

# sysinstall
  • sysinstall Main Menu
  • 「Configure」を選択

  • FreeBSD Configuration Menu
    • root (管理者)のパスワード設定
    • 「Root Password」を選択
      Changing local password for root

      New Password : 
      Retype New Password: 
      

      パスワードは入力しても表示されません。

    • グループとユーザーを追加
    • 「User Management」を選択
      User and group management

      • グループの追加
      • 「Group」を選択

        Group name:    hoge (適当なもの 追加するユーザー名でOK)
        GID:           1001 (初期値)
        Group members: なし
        
      • ユーザーの追加
      • 「User」を選択

        Login ID:         hogehoge
        UID:              1001(初期値)
        Group:            1001
        Password:         ******
        Confirm Password: ******
        Full name:        User &(初期値)
        Member groups:    wheel
        Home directory:   /home/hogehoge (自動的に記述される)
        Login shell:      /bin/tcsh
        
    • タイムゾーンの設定
    • 「Time Zone」を選択
      Select local or UTC (Greenwich Mean Time) clock
      「No」を選択

      Time Zone Selecter
      「5 Asia」を選択
      「18 Japan」を選択

      Confirmation
      「Yes」を選択

  • ネットワークの設定
  • 「Networking」を選択
    Network Services Menu
    「Interfaces」を選択
    Network interface information required
    「em0」を選択
    User Confirmation Requested

    Do you want to try IPv6 configuration of the interface?

    「No」を選択

    Do you want to try DHCP configuration of the interface?

    「No」を選択
    Network Configuration

    Host:          blueberry.iex3.local
    Domain:        iex3.local (自動的に記述される)
    IPv4 Gateway:  192.168.24.1
    Name server:   192.168.24.1
    IPv4 Address:  192.168.24.45
    Netmask:       255.255.255.0 (自動的に記述される)
    Extra options: なし
    

    User Confirmation Requested

    Would you like to bring the em0 interface up right now?

    「No」を選択。
    Network Services Menu
    「Exit」を選択。

sysinstallを終了します。
「Exit」を選択。
tabキーを押下し、「Exit install」を選択。

  • セキュアログインの有効化
  • # echo 'sshd_enable="YES"' >> /etc/rc.conf
    
  • カーネルのクラッシュダンプ取得の無効化
  • # echo 'dumpdev="YES"' >> /etc/rc.conf
    
  • SpeedStepの有効化
  • # echo 'cpufreq_load="YES"' >> /boot/loader.conf
    # echo 'powerd_enable="YES"' >> /etc/rc.conf
    

chroot環境から出て、デバイスをアンマウントします。

# exit
Fixit# umount /pzkw/system/dev
pure ZFS boot の設定
  • ブートファイルシステムの設定
  • ZFSプール pzkw にブートする Root データセット(ファイルシステム)を設定します。

    Fixit# zpool set bootfs=pzkw/system pzkw
    
  • zpool.cache を更新し、ZFS BOOT環境にコピー
  • Fixit# mkdir /boot/zfs
    Fixit# zpool export pzkw && zpool import pzkw
    Fixit# cp /boot/zfs/zpool.cache /pzkw/system/boot/zfs
    
  • rc.conf の設定
  • Fixit# echo 'zfs_enable="YES"' >> /pzkw/system/etc/rc.conf
    
  • loader.conf の設定
  • Fixit# echo 'zfs_load="YES"' >> /pzkw/system/boot/loader.conf
    Fixit# echo 'vfs.root.mountfrom="zfs:pzkw/system"' >> /pzkw/system/boot/loader.conf
    
  • カーネルへのメモリ割り当ての設定
  • メモリ量によって設定する。

    Fixit# echo 'vm.kmem_size="512M"' >> /pzkw/system/boot/loader.conf
    Fixit# echo 'vm.kmem_size_max="512M"' >> /pzkw/system/boot/loader.conf
    Fixit# echo 'vfs.zfs.arc_max="100M"' >> /pzkw/system/boot/loader.conf
    
  • fstab の編集
  • Fixit# echo 'pzkw/system / zfs rw 0 0' >> /pzkw/system/etc/fstab
    
  • 自動マウントされないように設定
  • Fixit# zfs set mountpoint=none pzkw
    
  • マルチユーザ・シングルユーザモードに切り替えたときに文句を言われないようにレガシーモードにする
  • Fixit# zfs set mountpoint=legacy pzkw/system
    
  • マウントポイントの変更
  • Fixit# zfs set mountpoint=/home pzkw/system/home
    Fixit# zfs set mountpoint=/usr pzkw/system/usr
    Fixit# zfs set mountpoint=/usr/src pzkw/system/usr/src
    Fixit# zfs set mountpoint=/var pzkw/system/var
    
  • Fixit の終了
  • Fixit# exit
    
  • sysinstall Main Menu
  • tab キーを押して、 Exit Install を選択。

    Are you sure wish to exit?
    

    「Yes」を選択。

再起動がかかったら、DVDドライブよりDVDを取り出します。
再起動後は、pure ZFS な環境になっているかと思います。