このページは、@wiki で 2011年01月31日 02:05:14 GMT に保存された http://wirednoize.net/freebsd/index.php?FreeBSD%208.1%20Release%20amd64%20pure%20ZFS%20install の キャッシュです。
ユーザがarchive機能を用いた際、@wikiが対象サイトのrobots.txt,meta情報を考慮し、ページを保存したものです。
そのため、このページの最新版でない場合があります。 こちらから 最新のページを参照してください。
このキャッシュ ページにはすでに参照不可能な画像が使用されている可能性があります。
@wikiのarchve機能についてはこちらを参照ください

@wikiはこのページまたはページ内のコンテンツとは関連ありません。

このページをキャッシュしたwikiに戻る

FreeBSD 8.1 Release amd64 pure ZFS install - PukiWiki

FreeBSD 8.1 Release amd64 pure ZFS install †



インストール準備 †

インストール用 USBメモリの作成 †

  • MS Windows パソコンで memstick 起動ファイルの作成
     適当なミラーサイトから FreeBSD-8.1-RELEASE-amd64-memstick.img をダウンロードします。
     dvd や cd のディスクイメージでも以下の作業は行えるはずですが、適当なドライブが無いのでメモリスティックイメージを使います。
     ダウンロード後に DDforWindows を使って FreeBSD-8.1-RELEASE-amd64-memstick.img を USBメモリに書き込みします。

インストール準備 †

  • USBキーボードとUSBメモリを接続
     上で書き込んだ USBメモリと、USBキーボードをマザー背面 USBスロットへ接続します。
     増設した intel LANカード側に LANケーブルを接続します。
     HDMIケーブルで液晶テレビに接続します。
     サーバ機の電源を入れます。

memstick イメージから起動 †

 BIOS設定をUSBから起動にしてある事を確認。問題無ければいつものインストール画面が出てきます。

  • Country Selection
    110 Japan を選択
  • System Console Keymap
    Japanese 106 を選択
  • sysinstall Main Menu
    Fixit を選択
  • Please choose a fixit option
    USB を選択
     Message が出るので OK すると Fixit# のコマンドプロンプト画面に変わります。

リモートログインインストール †

 インストール対象サーバのメモリが 3G ほどあって、ssh のクライアントになれるマシンがある場合は、2G の ramdisk を作り、そこに Fixit 環境を展開し、sshd を起動してリモートログイン可能にする事によって、コピペでインストール作業が出来るので幾分楽になります。(普通の Fixit 環境は、ReadOnly ですので、sshd の設定ファイルが書けません。)
 書き込みが必要な場所だけ ramdisk にするよう工夫すれば、2G も使ってしまう ramdisk は不要でしょうが、その為の設定が複雑になり、コンソールでの入力が増えてしまうようでは本末転倒ですので、Fixit 環境全コピーの方法のみ記述します。

 条件が合わない方は こちらの方法を使えばコンソール作業だけでインストールできます。
 Freebsd 8.1 からは「ブートローダの再構築」作業は必要なくなっていますので、「設定前準備」だけ行って、次は「各コンフィグ設定」に入ってください。

リモートログイン用の設定 †

  • ramdisk を作成し、dist 環境をコピーします。
    mdconfig -a -t malloc -s 2048M -u 10
    newfs -U /dev/md10
    mkdir /mdisk
    mount /dev/md10 /mdisk
    cp -pR /dist /mdisk
  • 読み書き可能な Fixit 環境へ入る。
    mount -t devfs devfs /mdisk/dist/dev
    chroot /mdisk/dist tcsh
  • ネットワークの設定
    ifconfig em0 10.100.90.200 netmask 255.255.255.0
  • sshd の起動
    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
    echo 'sshd_enable="YES"' >> /etc/rc.conf
    /etc/rc.d/sshd start
  • root パスワードの設定
    passwd
    Changing local password for root
    New Password: rootpass
    Retype New Password: rootpass

リモート端末からログイン †

  • teraterm 等から Fixit 環境へリモートログイン出来ると思います。
    ホスト:10.100.90.200
    ユーザ名:root
    チャレンジレスポンス認証を使って
    パスワード:rootpass

以降はリモート端末からの作業となります。

完全な zfs 環境の構築 †

パーティショニング †

 HDD 2台使ってのミラーリング設定を行います。 2台両方共にブート設定を行い、どちらかの HDD が死亡してしまっても起動出来るようにします。

  • 接続ドライブの確認
    dmesg | grep "MB <"
    ad4: 476940MB <Hitachi HTS545050B9A300 PB4OC64G> at ata2-master UDMA100 SATA 3Gb/s
    ad6: 476940MB <TOSHIBA MK5065GSX GJ003A> at ata3-master UDMA100 SATA 1.5Gb/s
     のように出ます。 って MK5065GSX は SATA 3Gb のはずなのに 1.5Gb でリンクしてる。ケーブルが悪いのか?へんなもの掴まされたのか?
  • テーブル初期化
    dd if=/dev/zero of=/dev/ad4 bs=1m count=1
    dd if=/dev/zero of=/dev/ad6 bs=1m count=1
    
  • カーネル zfs.ko の読み込み
    kldload zfs.ko
  • カーネルの確認
    kldstat
     zfs.ko と opensolaris.ko があればOK
  • GPT スキームの作成
    gpart create -s GPT ad4
    gpart create -s GPT ad6
     ad4 created , ad6 created と出ればOK
  • ブートストラップコードを保護された MBR に埋め込み
    gpart bootcode -b /boot/pmbr ad4
    gpart bootcode -b /boot/pmbr ad6
     ad4 has bootcode , ad6 has bootcode と出ればOK
  • FreeBSD をブートできる専用の freebsd-boot パーティションを作成
    gpart add -b 34 -s 128 -t freebsd-boot ad4
    gpart add -b 34 -s 128 -t freebsd-boot ad6
     ad4p1 added , ad6p1 added と出ればOK
  • ブートストラップコードをインストール
    gpart bootcode -p /boot/gptzfsboot -i 1 ad4
    gpart bootcode -p /boot/gptzfsboot -i 1 ad6
  • パーティション情報の確認
    gpart show ad4 ad6
  • 上のコマンドで下記のような結果が表示されます。
     今回は 500GB の HDD を使っているので boot 用に 64K だけ使われ、残り 466G となっています。
    =>       34  976773101  ad4  GPT  (466G)
             34        128    1  freebsd-boot  (64K)
            162  976772973       - free -  (466G)
    
    =>       34  976773101  ad6  GPT  (466G)
             34        128    1  freebsd-boot  (64K)
            162  976772973       - free -  (466G)
  • ZFS パーティションの作成
     個人的に全領域全て使うのは嫌いなので、465G を指定します。 全部使うなら「-s 976772973」を指定します。
    gpart add -b 162 -s 465g -t freebsd-zfs ad4
    gpart add -b 162 -s 465g -t freebsd-zfs ad6
     ad4p2 added , ad6p2 added と出ればOK
  • ミラーリング設定した ZFS ストレージプールの作成
    zpool create pzkw mirror /dev/ad4p2 /dev/ad6p2
  • ストレージプールの確認
    zpool status
  • 上のコマンドで mirror の配下に ad4p2 ad6p2 は入っているのを確認します。
      pool: pzkw
     state: ONLINE
     scrub: none requested
    config:
    
            NAME        STATE     READ WRITE CKSUM
            pzkw        ONLINE       0     0     0
              mirror    ONLINE       0     0     0
                ad4p2   ONLINE       0     0     0
                ad6p2   ONLINE       0     0     0
  • ZFS ファイルシステムの作成
    zfs create pzkw/system
    zfs create pzkw/system/home
    zfs create pzkw/system/usr
    zfs create pzkw/system/usr/src
    zfs create pzkw/system/var
  • スワップデバイスの設定
    zfs create -V 8gb pzkw/swap
    zfs set org.freebsd:swap=on pzkw/swap
  • 使用容量制限の設定
    zfs set quota=2g pzkw/system/home
    zfs set quota=4g pzkw/system/usr
    zfs set quota=1g pzkw/system/usr/src
  • ファイルシステムの確認
    zfs list
    --------------------------------------------------------------
    NAME                  USED  AVAIL  REFER  MOUNTPOINT
    pzkw                 8.00G   449G    19K  /pzkw
    pzkw/swap               8G   457G    16K  -
    pzkw/system            95K   449G    22K  /pzkw/system
    pzkw/system/home       18K  2.00G    18K  /pzkw/system/home
    pzkw/system/usr        37K  4.00G    19K  /pzkw/system/usr
    pzkw/system/usr/src    18K  1024M    18K  /pzkw/system/usr/src
    pzkw/system/var        18K   449G    18K  /pzkw/system/var
  • 圧縮の設定
    zfs set compression=gzip-1 pzkw/system/usr/src
  • 圧縮設定の確認
    zfs list -o name,used,available,compress,compressratio
    --------------------------------------------------------------
    NAME                  USED  AVAIL  COMPRESS  RATIO
    pzkw                 8.00G   449G       off  1.00x
    pzkw/swap               8G   457G       off  1.00x
    pzkw/system            95K   449G       off  1.00x
    pzkw/system/home       18K  2.00G       off  1.00x
    pzkw/system/usr        37K  4.00G       off  1.00x
    pzkw/system/usr/src    18K  1024M    gzip-1  1.00x
    pzkw/system/var        18K   449G       off  1.00x

OSのインストール †

 通常のインストール方法だった場合の、最小環境 (minimal install) と全ソースを選んだ状態にしているつもりです。

  • 環境変数セット
    setenv DESTDIR '/pzkw/system'
    echo $DESTDIR
  • base のインストール
    cd /8.1-RELEASE/base
    ./install.sh
    
    You are abount....into /pzkw/system - are you SURE.....installed system (y/n)?
    y 返答
  • kernel のインストール
    cd /8.1-RELEASE/kernels
    ./install.sh generic
    rmdir $DESTDIR/boot/kernel
    mv $DESTDIR/boot/GENERIC $DESTDIR/boot/kernel
  • src のインストール
    cd /8.1-RELEASE/src
    ./install.sh all

各コンフィグ設定 †

 インストールした場所に chroot して必要な設定を行います。

  • chroot して環境に入ります。
    mount -t devfs devfs $DESTDIR/dev
    chroot $DESTDIR tcsh
  • sysinstall の起動
    sysinstall
  • sysinstall Main Menu
    Configure を選択
  • FreeBSD Configuration Menu
    Root Password を選択
    New Password:***
    Retype New Password:***
  • FreeBSD Configuration Menu
    User Management を選択
  • User and group management
    • Group を選択
      Group name:    hogege
      GID:           1001(初期値)
      Group members: 無し
  • User を選択
    Login ID:       hogege
    UID:            1001(初期値)
    Group:          1001
    Password:       ******
    Confirm Password:  ******
    Full name:      User &(初期値)
    Member groups:  wheel
    Home directory: /home/hogege (自動的に記述される)
    Login shell:    /bin/tcsh
    ok 後 exit で終了
  • FreeBSD Configuration Menu
    Time Zone を選択
  • Is this machine's COMS..... please choose NO here!
    No  を選択
  • Time Zone Selector
    5 Asia  を選択
    18 Japan  を選択
  • Does the abbreviation `JST' look reasonable?
    Yes を選択
  • FreeBSD Configuration Menu
    Networking を選択
  • Network Services Menu
    Interfaces を選択
  • Network interface information required
    em0 選択
  • User Confirmation Requested
    • Do you want... IPv6 ...of the interface?
      No  を選択
  • Do you want... DHCP ...of the interface?
    No  を選択
  • Network Configuration
    Host:          fbsd80rc2.internal.wirednoize.net
    Domain:        internal.wirednoize.net (自動的に記述される)
    IPv4 Gateway:  10.100.90.1
    Name server:   10.100.90.1
    IPv4 Address:  10.100.90.1
    Netmask:       255.255.255.0 (自動的に記述される)
    Extra options: なし
  • World you like to bring the em0 interface up right now
    No  を選択
     Yes にしてしまうと、リモート接続が切れてしまうはずなので絶対NO
  • Network Services Menu
    Exit  を選択
  • FreeBSD Configuration Menu
    Exit  を選択
  • sysinstall Main Menu
    tab キーを押して Exit Install
     fixit のコマンドプロンプトに戻ります。
  • セキュアログインを可能にします。
    echo 'sshd_enable="YES"' >> /etc/rc.conf
  • カーネルのクラッシュダンプを取らない。
    echo 'dumpdev="NO"' >> /etc/rc.conf
  • Cool'n'Quiet の有効化
    echo 'cpufreq_load="YES"' >> /boot/loader.conf
    echo 'powerd_enable="YES"' >> /etc/rc.conf
  • chroot 環境から出ます。
    exit
  • デバイスのアンマウント
    umount $DESTDIR/dev

zfs boot の設定 †

  • ブートファイルシステムの設定
     ZFS プール pzkw にブートする ROOT データセット(ファイルシステム)を設定します。
    zpool set bootfs=pzkw/system pzkw
  • zpool.cache の更新して、ZFS BOOT 環境にコピーします。
    mkdir /boot/zfs
    zpool export pzkw && zpool import pzkw
    cp /boot/zfs/zpool.cache /pzkw/system/boot/zfs/
  • rc.conf の設定
    echo 'zfs_enable="YES"' >> /pzkw/system/etc/rc.conf
  • loader.conf の設定
    echo 'zfs_load="YES"' >> /pzkw/system/boot/loader.conf
    echo 'vfs.root.mountfrom="zfs:pzkw/system"' >> /pzkw/system/boot/loader.conf
  • 任意の loader.conf の設定
     メモリ量と相談しながら、良い感じに設定します。 しなくてもOK
    echo 'vm.kmem_size="1536M"' >> /pzkw/system/boot/loader.conf
    echo 'vm.kmem_size_max="1536M"' >> /pzkw/system/boot/loader.conf
    echo 'vfs.zfs.arc_max="512M"' >> /pzkw/system/boot/loader.conf
  • fstab の編集
    echo 'pzkw/system / zfs rw 0 0' > /pzkw/system/etc/fstab
  • 自動マウントされないようにします。
    zfs set mountpoint=none pzkw
  • マルチユーザ・シングルユーザモードに切り替え時に文句を言われないようレガシーモードにします。
    zfs set mountpoint=legacy pzkw/system
  • マウントポイントの変更
    zfs set mountpoint=/home    pzkw/system/home
    zfs set mountpoint=/usr     pzkw/system/usr
    zfs set mountpoint=/usr/src pzkw/system/usr/src
    zfs set mountpoint=/var     pzkw/system/var
  • リモート端末からログアウト
    exit

インストール作業終了 †

以降はコンソールからの作業となります。

  • chroot 環境から出る
    exit
  • fixit の終了
    exit
  • Please choose a fixit option
    Exit を選択
  • sysinstall Main Menu
    tab キーを押して Exit Install
  • Are you sure you wish to exit?
    Yes  を選択
     reboot かかったら USBメモリ と USBキーボード と HDMI のケーブルを抜く

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-08-11 (水) 21:14:09 (172d)