freebsd:001_020_proliant_microserver高機能nas化計画_osインストール編

文書の過去の版を表示しています。


ProLiant MicroServer高機能NAS化計画(OSインストール編)

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: ********

パーティションテーブル初期化

本来は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

ファイルシステムの作成と色々設定

zfs set checksum=fletcher4 zroot
zfs set compression=on zroot
zfs create -o normalization=formC zroot/sys
zfs create -o exec=on -o setuid=off zroot/sys/tmp
chmod 1777 /zroot/sys/tmp

zfs create zroot/sys/usr
zfs create -o compression=gzip-9 zroot/sys/usr/include
zfs create -o compression=gzip-9 zroot/sys/usr/src
zfs create zroot/sys/usr/home

cd /zroot/sys; ln -s /usr/home home
zfs create -o compression=gzip-9 -o setuid=off zroot/sys/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/sys/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/sys/usr/ports/packages

zfs create zroot/sys/var
zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/sys/var/crash
zfs create -o exec=off -o setuid=off zroot/sys/var/db
zfs create -o exec=on -o setuid=off -o compression=gzip-9 zroot/sys/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/sys/var/empty
zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/sys/var/log
zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/sys/var/mail
zfs create -o exec=off -o setuid=off zroot/sys/var/run
zfs create -o exec=on -o setuid=off -o compression=gzip-9 zroot/sys/var/tmp
chmod 1777 /zroot/sys/var/tmp

# zpool set bootfs=zroot zroot
# cd /
# sh
# cd /usr/freebsd-dist/
# export DESTDIR=/zroot/sys
# for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz games.txz ;
> do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done

# zfs set readonly=on zroot/sys/var/empty
# mount -t devfs devfs /zroot/sys/dev
# chroot /zroot/sys
# /usr/sbin/sysinstall

Configure

Root Password
Networking
Interfaces

Time Zone

/boot/loader.confの設定

# cat << EOF > /boot/loader.conf
opensolaris_load="YES"
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot/sys"
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

swapの設定

# cat << EOF > /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

メールのエイリアスの生成

# cd /etc/mail
# make aliases

chroot環境から抜ける

# exit
# umount /zroot/sys/dev
# cd /
# zpool export zroot && zpool import zroot
# cp /boot/zfs/zpool.cache /zroot/sys/boot/zfs/
# export LD_LIBRARY_PATH=/lib
# zfs unmount -a
# zfs set mountpoint=legacy zroot/sys
# zfs set mountpoint=/tmp zroot/sys/tmp
# zfs set mountpoint=/usr zroot/sys/usr
# zfs set mountpoint=/var zroot/sys/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

参考サイト

  • freebsd/001_020_proliant_microserver高機能nas化計画_osインストール編.1318778126.txt.gz
  • 最終更新: 2011-10-17 00:15
  • by Decomo