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

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
freebsd:001_020_proliant_microserver高機能nas化計画_osインストール編 [2011-09-19 00:13]
Decomo [参考サイト]
freebsd:001_020_proliant_microserver高機能nas化計画_osインストール編 [2020-12-03 19:36] (現在)
行 1: 行 1:
 ====== ProLiant MicroServer高機能NAS化計画(OSインストール編) ====== ====== ProLiant MicroServer高機能NAS化計画(OSインストール編) ======
 +
 +===== 環境 =====
 +
 +  * HP ProLiant MicroServer
 +  * FreeBSD 9.0-BETA3
 +
 +詳細は[[pc:freebsd:001_010_proliant_microserver高機能nas化計画_構想編|ProLiant MicroServer高機能NAS化計画(構想編)]]参照。
  
 ===== sshで入れるFixit環境の作成 ===== ===== sshで入れるFixit環境の作成 =====
  
 === RAMディスクを作ってシステムをコピー === === RAMディスクを作ってシステムをコピー ===
- 
 <cli prompt="# "> <cli prompt="# ">
-mdconfig -a -t malloc -s 2048M -u 10 +umount /dev/md1 
-# newfs -U /dev/md10 +mdmfs -s 2048m md1 /tmp 
-mkdir /mdisk +mkdir /tmp/dist 
-mount /dev/md10 /mdisk +find . ! -regex '\./tmp' | cpio -pd /tmp/dist
-cp -pR /dist /mdisk+
 </cli> </cli>
  
-=== 読み書き可能なFixit環境へ入る ===+=== コピーした環境へ入る ===
 <cli prompt="# "> <cli prompt="# ">
-# mount -t devfs devfs /mdisk/dist/dev +# mount -t devfs devfs /tmp/dist/dev 
-# chroot /mdisk/dist+# chroot /tmp/dist
 </cli> </cli>
  
行 25: 行 30:
  
 === sshdの起動 === === sshdの起動 ===
- 
 <cli prompt="# "> <cli prompt="# ">
 # echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config # echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
行 33: 行 37:
  
 === rootパスワードの設定 === === rootパスワードの設定 ===
- 
 <cli prompt="# "> <cli prompt="# ">
 # passwd # passwd
行 49: 行 52:
 # dd if=/dev/zero of=/dev/ada1 bs=1m count=1 # dd if=/dev/zero of=/dev/ada1 bs=1m count=1
 </cli> </cli>
- 
  
 === GPTを作成 === === GPTを作成 ===
行 58: 行 60:
  
 === パーティション追加 === === パーティション追加 ===
-freebsd-zfs領域をHDD目一杯まで使ってしまうと、HDD交換時に微妙な容量の差でRAIDが組めない事態が起こりうるので、最後の150Mは保険として未使用領域にする。+freebsd-zfs領域をHDD目一杯まで使ってしまうと、HDD交換時に微妙な容量の差でRAIDが組めない事態が起こりうるので、保険として末尾100M(こんなに要らないだろうけど念のため)を未使用領域にする。
 <cli prompt="# "> <cli prompt="# ">
-# gpart add -b 40 -s 64k -t freebsd-boot ada0  # AFT対策としてセクタ40から使う +# gpart add -a 4k -s 64k -t freebsd-boot ada0      # AFT対策で-aで4kにアライメント 
-# gpart add -b 40 -s 64k -t freebsd-boot ada1 +# gpart add -a 4k -s 64k -t freebsd-boot ada1 
-# gpart add -s 10g -t freebsd-swap -l swap0 ada0 +# gpart add -a 4k -s 10g -t freebsd-swap -l swap0 ada0 
-# gpart add -s 10g -t freebsd-swap -l swap1 ada1 +# gpart add -a 4k -s 10g -t freebsd-swap -l swap1 ada1 
-# gpart add -s 1443870247 -t freebsd-zfs -l boot0a ada0 +# gpart add -a 4k -s 1443972647 -t freebsd-zfs ada0 
-# gpart add -s 1443870247 -t freebsd-zfs -l boot0b ada1+# gpart add -a 4k -s 1443972647 -t freebsd-zfs ada1
 # gpart show # gpart show
-=>        34  1465149101  ada0  GPT  (699G+=>     34  1339253  da0  GPT  (3.7G) [CORRUPT] 
-          34                  - free -  (3.0K+       34      128    1  freebsd-boot  (64k) 
-          40         128      freebsd-boot  (64K)+      162  1339125    2  freebsd-ufs  (653M) 
 + 
 +=>        34  1465149101  ada0  GPT  (698G
 +          34                  - free -  (3.0k
 +          40         128      freebsd-boot  (64k)
          168    20971520      freebsd-swap  (10G)          168    20971520      freebsd-swap  (10G)
-    20971688  1443870247     3  freebsd-zfs  (688G) +    20971688  1443972640     3  freebsd-zfs  (688G) 
-  1464841935      307200        - free -  (150M)+  1464944328      204807        - free -  (100M)
  
-=>        34  1465149101  ada1  GPT  (699G+=>        34  1465149101  ada1  GPT  (698G
-          34                  - free -  (3.0K+          34                  - free -  (3.0k
-          40         128      freebsd-boot  (64K)+          40         128      freebsd-boot  (64k)
          168    20971520      freebsd-swap  (10G)          168    20971520      freebsd-swap  (10G)
-    20971688  1443870247     3  freebsd-zfs  (688G) +    20971688  1443972640     3  freebsd-zfs  (688G) 
-  1464841935      307200        - free -  (150M)+  1464944328      204807        - free -  (100M)
 </cli> </cli>
  
行 89: 行 95:
  
 === ZFSプールの作成 === === ZFSプールの作成 ===
 +ZFSを4kセクタに最適化するため、nopデバイス経由でプールを作成する。
 +
 +プール生成時に決定されるZFSの内部パラメータashiftが12になっていればよく、値決定後はnopでアクセスする必要はないらしい。
 +詳しくは[[http://www.allbsd.org/%7Ehrs/diary/201109.html#d0301|4KiB セクタの HDD と FreeBSD]]を参照されたし。
 +
 <cli prompt="# "> <cli prompt="# ">
-# zpool create zroot mirror /dev/gpt/boot0a /dev/gpt/boot0b +# gnop create -S 4096 /dev/ada0p3 
-# zpool set bootfs=zroot zroot+# gnop create -S 4096 /dev/ada1p3 
 +# zpool create zroot mirror /dev/ada0p3.nop /dev/ada1p3.nop 
 +# zdb 
 +zroot: 
 +    version: 28 
 +    name: 'zroot' 
 +    state: 0 
 +    txg: 4 
 +    pool_guid: 3928702653704672869 
 +    hostname: '' 
 +    vdev_children:
 +    vdev_tree: 
 +        type: 'root' 
 +        id: 0 
 +        guid: 3928702653704672869 
 +        create_txg: 4 
 +        children[0]: 
 +            type: 'mirror' 
 +            id: 0 
 +            guid: 10151570094065059124 
 +            metaslab_array: 30 
 +            metaslab_shift: 32 
 +            ashift: 12    ← '12'になっていればOK 
 +            asize: 739309256704 
 +            is_log: 0 
 +            create_txg: 4 
 +            children[0]: 
 +                type: 'disk' 
 +                id: 0 
 +                guid: 4580562153177664810 
 +                path: '/dev/gpt/boot0a.nop' 
 +                phys_path: '/dev/gpt/boot0a.nop' 
 +                whole_disk: 1 
 +                create_txg: 4 
 +            children[1]: 
 +                type: 'disk' 
 +                id: 1 
 +                guid: 4968329952742307772 
 +                path: '/dev/gpt/boot0b.nop' 
 +                phys_path: '/dev/gpt/boot0b.nop' 
 +                whole_disk: 1 
 +                create_txg: 4 
 +# zpool export zroot 
 +# gnop destroy /dev/ada0p3.nop 
 +# gnop destroy /dev/ada1p3.nop 
 +# zpool import zroot
 </cli> </cli>
  
行 98: 行 154:
 # zfs set checksum=fletcher4 zroot # zfs set checksum=fletcher4 zroot
 # zfs set compression=on zroot # zfs set compression=on zroot
-# zfs create -o exec=on -o setuid=off zroot/tmp +</cli> 
-# chmod 1777 /zroot/tmp+ 
 +Macからのアクセスを考慮してNFCにする。 
 +<cli prompt="# "> 
 +# zfs create -o normalization=formC zroot/ROOT 
 +</cli> 
 + 
 +<cli prompt="# "> 
 +# zfs create -o exec=on -o setuid=off zroot/ROOT/tmp 
 +# chmod 1777 /zroot/ROOT/tmp 
 + 
 +# zfs create zroot/ROOT/usr 
 +# zfs create -o compression=gzip-9 zroot/ROOT/usr/include 
 +# zfs create -o compression=gzip-9 zroot/ROOT/usr/src 
 +# zfs create zroot/ROOT/usr/home
  
-zfs create zroot/usr +cd /zroot/ROOT; ln -s /usr/home home 
-# zfs create -o compression=gzip-9 zroot/usr/include +# zfs create -o compression=gzip-9 -o setuid=off zroot/ROOT/usr/ports 
-# zfs create -o compression=gzip-zroot/usr/src +# zfs create -o compression=off -o exec=off -o setuid=off zroot/ROOT/usr/ports/distfiles 
-# zfs create zroot/usr/home+# zfs create -o compression=off -o exec=off -o setuid=off zroot/ROOT/usr/ports/packages
  
-cd /zroot; ln -s /usr/home home +zfs create zroot/ROOT/var 
-# zfs create -o compression=gzip-9 -o setuid=off zroot/usr/ports +# zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/ROOT/var/crash 
-# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles +# zfs create -o exec=off -o setuid=off zroot/ROOT/var/db 
-# zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages+# zfs create -o exec=on -o setuid=off -o compression=gzip-9 zroot/ROOT/var/db/pkg 
 +# zfs create -o exec=off -o setuid=off zroot/ROOT/var/empty 
 +# zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/ROOT/var/log 
 +# zfs create -o exec=off -o setuid=off -o compression=gzip-9 zroot/ROOT/var/mail 
 +# zfs create -o exec=off -o setuid=off zroot/ROOT/var/run 
 +# zfs create -o exec=on -o setuid=off -o compression=gzip-9 zroot/ROOT/var/tmp 
 +# chmod 1777 /zroot/ROOT/var/tmp
  
-zfs create zroot/var +zpool set bootfs=zroot/ROOT zroot
-# 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+
 </cli> </cli>
  
 ===== OSのインストール ==== ===== OSのインストール ====
 <cli prompt="# "> <cli prompt="# ">
-# cd / 
 # sh # sh
-# cd /8.2-RELEASE +# cd /usr/freebsd-dist/ 
-# export DESTDIR=/zroot +# export DESTDIR=/zroot/ROOT 
-# for dir in base catpages dict doc games info lib32 manpages ports; do (cd $dir ; ./install.sh) done +# for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz games.txz 
-You are about to extract the base distribution into /zroot - are you SURE +do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done 
-you want to do this over your installed system (y/n)? y +# zfs set readonly=on zroot/ROOT/var/empty
-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+
 </cli> </cli>
  
-===== chrootして初期設定 ====+===== chrootしてOSの初期設定 ====
 <cli prompt="# "> <cli prompt="# ">
-# mount -t devfs devfs /zroot/dev +# mount -t devfs devfs /zroot/ROOT/dev 
-# chroot /zroot+# chroot /zroot/ROOT
 # /usr/sbin/sysinstall # /usr/sbin/sysinstall
 </cli> </cli>
-Configure +  * Configure 
-Root Password +    Root Password : rootパスワードの設定 
-> Networking +    * User Management 
-Time Zone+      * User : ユーザーの追加 
 +    * Time Zone 
 +      * Select local or UTC (Greenwich Mean Time) clock : Yes (UTCで運用。JSTを使う場合はNo)  
 +      * Asia → Japan → Yes 
 +    * Networking 
 +      * Intarfaces 
 +        * bge0 
 +          * IPv6 configuration : No 
 +          * DFCP configuration : No 
 +          * 設定 
 +          * Bring up : No
  
 === /boot/loader.confの設定 === === /boot/loader.confの設定 ===
 <cli prompt="# "> <cli prompt="# ">
 # cat << EOF > /boot/loader.conf # cat << EOF > /boot/loader.conf
-ahci_load="NO" 
 opensolaris_load="YES" opensolaris_load="YES"
 zfs_load="YES" zfs_load="YES"
-vfs.root.mountfrom="zfs:zroot"+vfs.root.mountfrom="zfs:zroot/ROOT"
 cpufreq_load="YES" cpufreq_load="YES"
 vfs.zfs.txg.timeout="3" vfs.zfs.txg.timeout="3"
行 181: 行 246:
  
 sshd_enable="YES" sshd_enable="YES"
 +EOF
 +</cli>
 +
 +=== swapの設定 ===
 +<cli prompt="# ">
 +# 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 EOF
 </cli> </cli>
行 193: 行 267:
 <cli prompt="# "> <cli prompt="# ">
 # exit # exit
-# umount /zroot/dev+# umount /zroot/ROOT/dev
 </cli> </cli>
  
行 200: 行 274:
 # cd / # cd /
 # zpool export zroot && zpool import zroot # zpool export zroot && zpool import zroot
-# cp /boot/zfs/zpool.cache /zroot/boot/zfs/ +# cp /boot/zfs/zpool.cache /zroot/ROOT/boot/zfs/
-</cli> +
- +
-===== swapの設定 ==== +
-<cli prompt="# "> +
-# 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+
 </cli> </cli>
  
行 216: 行 281:
 # export LD_LIBRARY_PATH=/lib # export LD_LIBRARY_PATH=/lib
 # zfs unmount -a # zfs unmount -a
-# zfs set mountpoint=legacy zroot +# zfs set mountpoint=legacy zroot/ROOT 
-# zfs set mountpoint=/tmp zroot/tmp +# zfs set mountpoint=/tmp zroot/ROOT/tmp 
-# zfs set mountpoint=/usr zroot/usr +# zfs set mountpoint=/usr zroot/ROOT/usr 
-# zfs set mountpoint=/var zroot/var+# zfs set mountpoint=/var zroot/ROOT/var
 </cli> </cli>
- 
  
 ===== 後始末 ===== ===== 後始末 =====
行 228: 行 292:
 # exit # sshから抜ける # exit # sshから抜ける
 </cli> </cli>
- 
-====== STABLEに更新 ====== 
-8.2-RELEASEでAHCIを有効にすると、Marvellのチップを積んだSATAカードからのブートが「ROOT MOUNT ERROR」で失敗するため、STABLEに更新する(参考:[[http://groups.google.com/group/mailing.freebsd.bugs/browse_thread/thread/a17eb9bfe6567edc/8406457decff0fdd|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  
  
 ====== 参考サイト ====== ====== 参考サイト ======
行 248: 行 302:
   * [[http://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7|HIER(7) FreeBSD Miscellaneous Information Manual]]   * [[http://www.freebsd.org/cgi/man.cgi?query=hier&sektion=7|HIER(7) FreeBSD Miscellaneous Information Manual]]
   * [[http://d.hatena.ne.jp/murank/20110123/1295777623|FreeBSD 8.1 on ZFS-boot - murankの日記]]   * [[http://d.hatena.ne.jp/murank/20110123/1295777623|FreeBSD 8.1 on ZFS-boot - murankの日記]]
 +  * [[http://www.aisecure.net/2011/05/01/root-on-zfs-freebsd-current/|Root On ZFS @ FreeBSD 9 Current | aisecure.net]]
 +  * [[http://d.hatena.ne.jp/mteramoto/20101219/1292733916|FreeBSD 8.1-RELEASEでGPTなHDDにZFSでRootを確保してそこからbootする - mteramotoの日記]]
  
  • freebsd/001_020_proliant_microserver高機能nas化計画_osインストール編.1316358835.txt.gz
  • 最終更新: 2011-09-19 00:13
  • by Decomo