ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 ProLiant MicroServer高機能NAS化計画(OSインストール編) sshで入れるFixit環境の作成 ZFSファイルシステムの作成 OSのインストール chrootして初期設定 zpool.cacheの更新 swapの設定 マウントポイントの設定 後始末 STABLEに更新 参考サイト 文書の過去の版を表示しています。 ProLiant MicroServer高機能NAS化計画(OSインストール編) sshで入れるFixit環境の作成 RAMディスクを作ってシステムをコピー # 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 ネットワークの設定 # ifconfig bge0 192.168.65.1 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: ******** Retype New Password: ******** ZFSファイルシステムの作成 パーティションテーブル初期化 本来はgpart destroyで消すべきだが、面倒なので… # dd if=/dev/zero of=/dev/ada0 bs=1m count=1 # dd if=/dev/zero of=/dev/ada1 bs=1m count=1 GPTを作成 # gpart create -s gpt ada0 # gpart create -s gpt ada1 パーティション追加 freebsd-zfs領域をHDD目一杯まで使ってしまうと、HDD交換時に微妙な容量の差でRAIDが組めない事態が起こりうるので、最後の150Mは保険として未使用領域にする。 # gpart add -b 40 -s 64k -t freebsd-boot ada0 # AFT対策としてセクタ40から使う # gpart add -b 40 -s 64k -t freebsd-boot ada1 # gpart add -s 10g -t freebsd-swap -l swap0 ada0 # gpart add -s 10g -t freebsd-swap -l swap1 ada1 # gpart add -s 1443870247 -t freebsd-zfs -l boot0a ada0 # gpart add -s 1443870247 -t freebsd-zfs -l boot0b ada1 # gpart show => 34 1465149101 ada0 GPT (699G) 34 6 - free - (3.0K) 40 128 1 freebsd-boot (64K) 168 20971520 2 freebsd-swap (10G) 20971688 1443870247 3 freebsd-zfs (688G) 1464841935 307200 - free - (150M) => 34 1465149101 ada1 GPT (699G) 34 6 - free - (3.0K) 40 128 1 freebsd-boot (64K) 168 20971520 2 freebsd-swap (10G) 20971688 1443870247 3 freebsd-zfs (688G) 1464841935 307200 - free - (150M) ブートコード書き込み # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 ZFSプールの作成 # zpool create zroot mirror /dev/gpt/boot0a /dev/gpt/boot0b # zpool set bootfs=zroot zroot ファイルシステムの作成と色々設定 # zfs set checksum=fletcher4 zroot # zfs set compression=on zroot # zfs create -o exec=on -o setuid=off zroot/tmp # chmod 1777 /zroot/tmp # zfs create zroot/usr # zfs create -o compression=gzip-9 zroot/usr/include # zfs create -o compression=gzip-9 zroot/usr/src # zfs create zroot/usr/home # cd /zroot; ln -s /usr/home home # zfs create -o compression=gzip-9 -o setuid=off zroot/usr/ports # zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles # zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages # zfs create zroot/var # zfs create -o exec=off -o setuid=off zroot/var/crash # zfs create -o exec=off -o setuid=off zroot/var/db # zfs create -o exec=on -o setuid=off zroot/var/db/pkg # zfs create -o exec=off -o setuid=off zroot/var/empty # zfs create -o exec=off -o setuid=off zroot/var/log # zfs create -o exec=off -o setuid=off zroot/var/mail # zfs create -o exec=off -o setuid=off zroot/var/run # zfs create -o exec=on -o setuid=off zroot/var/tmp # chmod 1777 /zroot/var/tmp OSのインストール # cd / # sh # cd /8.2-RELEASE # export DESTDIR=/zroot # for dir in base catpages dict doc games info lib32 manpages ports; do (cd $dir ; ./install.sh) ; done You are about to extract the base distribution into /zroot - are you SURE you want to do this over your installed system (y/n)? y You are about to extract the doc distribution into /zroot - are you SURE you want to do this over your installed system (y/n)? y Extracting ports tarball into /usr # cd src ; ./install.sh all # cd ../kernels ; ./install.sh generic # cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/ # zfs set readonly=on zroot/var/empty chrootして初期設定 # mount -t devfs devfs /zroot/dev # chroot /zroot # /usr/sbin/sysinstall Configure Root Password Networking Time Zone /boot/loader.confの設定 # cat << EOF > /boot/loader.conf ahci_load="NO" opensolaris_load="YES" zfs_load="YES" vfs.root.mountfrom="zfs:zroot" cpufreq_load="YES" vfs.zfs.txg.timeout="3" kern.maxusers=512 vm.kmem_size="4G" vm.kmem_size_max="6G" vfs.zfs.arc_min="512M" vfs.zfs.arc_max="4G" EOF /etc/rc.confの設定 # cat << EOF >> /etc/rc.conf zfs_enable="YES" powerd_enable="YES" powerd_flags="-a adp -n adp" cpufreq_load="YES" sshd_enable="YES" EOF メールのエイリアスの生成 # cd /etc/mail # make aliases chroot環境から抜ける # exit # umount /zroot/dev zpool.cacheの更新 # cd / # zpool export zroot && zpool import zroot # cp /boot/zfs/zpool.cache /zroot/boot/zfs/ swapの設定 # cat << EOF > /zroot/etc/fstab #Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 /dev/gpt/swap1 none swap sw 0 0 EOF マウントポイントの設定 # export LD_LIBRARY_PATH=/lib # zfs unmount -a # zfs set mountpoint=legacy zroot # zfs set mountpoint=/tmp zroot/tmp # zfs set mountpoint=/usr zroot/usr # zfs set mountpoint=/var zroot/var 後始末 # exit # shから抜ける # exit # sshから抜ける STABLEに更新 8.2-RELEASEでAHCIを有効にすると、Marvellのチップを積んだSATAカードからのブートが「ROOT MOUNT ERROR」で失敗するため、STABLEに更新する(参考:kern/153665: [ahci] AHCI module unconsistent behaviour with SATA3 disk and SATA3 enabled controller)。 この情報を見つけるまで、設定を変えたり何度も再インストールしたりと凄く苦労した・・・。 8.3-RELEASE以降では修正されると思われる。 cp /usr/share/examples/cvsup/stable-supfile /usr/local/etc/cvsup/ vi /usr/local/etc/cvsup/stable-supfile /usr/bin/csup -g -L 2 /usr/local/etc/cvsup/stable-supfile 参考サイト RootOnZFS/GPTZFSBoot - FreeBSD Wiki FreeBSD 8.2 Release amd64 pure ZFS install - PukiWiki 404 Blog Not Found:備忘録 - HP ProLiant MicroServer + FreeBSD + ZFS 工夫と趣向と分別と。 – WD15EARSの性能を計測 FreeBSD 8.1 on ZFS | tyuu's WordPress HIER(7) FreeBSD Miscellaneous Information Manual FreeBSD 8.1 on ZFS-boot - murankの日記 freebsd/001_020_proliant_microserver高機能nas化計画_osインストール編.1316269399.txt.gz 最終更新: 2011-09-17 23:23by Decomo