Advertisement
Guest User

ZFS mirror

a guest
Nov 4th, 2012
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6.08 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. mount_cd9660  /dev/cd0 /media
  4.  
  5. DIST="/media/usr/freebsd-dist"
  6. DISKDEV1="da1"
  7. DISKDEV2="da2"
  8. SWAPSIZE="1G"
  9. LOGFILE="tmp06_first.log"
  10. exec 1>$LOGFILE 2>&1
  11. ZPOOL="zroot"
  12. HOSTNAME="BSD"
  13. MNT="/mnt2"
  14.  
  15. mkdir -p $MNT
  16. sysctl kern.geom.debugflags=0x10
  17.  
  18. /bin/echo "Starting newfs ZFS "
  19. /sbin/gpart create -s gpt $DISKDEV1
  20. /sbin/gpart create -s gpt $DISKDEV2
  21. /bin/sync
  22.  
  23. /sbin/gpart add -a 4k -b 34 -s 64k -t freebsd-boot $DISKDEV1
  24. /sbin/gpart add -a 4k -t freebsd-zfs -l disk0 $DISKDEV1
  25. /bin/sync
  26.  
  27. /sbin/gpart add -a 4k -b 34 -s 64k -t freebsd-boot $DISKDEV2
  28. /sbin/gpart add -a 4k -t freebsd-zfs -l disk1 $DISKDEV2
  29. /bin/sync
  30.  
  31. /sbin/gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISKDEV1
  32. /sbin/gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISKDEV2
  33. /bin/sync
  34.  
  35. /sbin/gnop create -S 4096 /dev/gpt/disk0
  36. /sbin/gnop create -S 4096 /dev/gpt/disk1
  37. /bin/sync
  38.  
  39. /sbin/zpool create -m $MNT -f -o cachefile=/var/tmp/$ZPOOL.cache $ZPOOL mirror /dev/gpt/disk0.nop /dev/gpt/disk1.nop
  40. /sbin/zpool export $ZPOOL
  41. /sbin/gnop destroy /dev/gpt/disk0.nop
  42. /sbin/gnop destroy /dev/gpt/disk1.nop
  43. /sbin/zpool import -o cachefile=/var/tmp/$ZPOOL.cache $ZPOOL
  44. /sbin/zpool set bootfs=$ZPOOL $ZPOOL
  45. /sbin/zpool list
  46. /sbin/zpool status
  47. /sbin/zfs get recordsize
  48. /usr/sbin/zdb -U /var/tmp/$ZPOOL.cache |grep ashift
  49. /sbin/mount
  50. /bin/df -H
  51. /bin/sync
  52.  
  53. /sbin/zfs set checksum=fletcher4 $ZPOOL
  54.  
  55. /sbin/zfs create -V $SWAPSIZE $ZPOOL/swap
  56. /sbin/zfs set org.freebsd:swap=on $ZPOOL/swap
  57. /sbin/zfs set checksum=off $ZPOOL/swap
  58. /bin/sync
  59.  
  60. /sbin/zfs create -o mountpoint=$MNT/usr $ZPOOL/usr
  61. /sbin/zfs create -o mountpoint=$MNT/usr/ports $ZPOOL/usr/ports
  62. /sbin/zfs create -o mountpoint=$MNT/usr/src $ZPOOL/usr/src
  63. /sbin/zfs create -o mountpoint=$MNT/usr/home $ZPOOL/usr/home
  64. /sbin/zfs create -o mountpoint=$MNT/var $ZPOOL/var
  65. /sbin/zfs create -o mountpoint=$MNT/var/db $ZPOOL/var/db
  66. /sbin/zfs create -o mountpoint=$MNT/var/tmp $ZPOOL/var/tmp
  67. /sbin/zfs create -o mountpoint=$MNT/tmp $ZPOOL/tmp
  68. /bin/sync
  69.  
  70. chmod 1777 $MNT/tmp $MNT/var/tmp
  71.  
  72. cd $DIST
  73. export DESTDIR=$MNT
  74. for file in base.txz doc.txz kernel.txz ports.txz src.txz; do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}) ; done
  75.  
  76. cat << EOF >> $MNT/etc/rc.conf
  77. #!/bin/sh
  78. ipv6_enable="NO"
  79. rc_info="YES"       # Enables display of informational messages at boot.
  80.  
  81. keymap=ru.koi8-r
  82. keychange="61 ^[[K"
  83. scrnmap=koi8-r2cp866
  84. font8x16=cp866b-8x16
  85. font8x14=cp866-8x14
  86. font8x8=cp866-8x8
  87. saver="blank"
  88. keyrate="fast"
  89.  
  90. mousechar_start="3"
  91. moused_enable="YES"
  92. moused_port="/dev/psm0"
  93. moused_type="auto"
  94.  
  95. network_interfaces="auto"   # List of network interfaces (or "auto").
  96. ifconfig_lo0="inet 127.0.0.1  netmask 255.255.255.0"
  97. defaultrouter="192.168.0.1"
  98. ifconfig_em0="inet 192.168.0.88 netmask 255.255.255.0"
  99.  
  100. hostname=$HOSTNAME
  101.  
  102. zfs_enable="YES"
  103. kern_securelevel_enable="NO"
  104. linux_enable="YES"
  105. sshd_enable="YES"
  106. sshd_flags="-u0"
  107. usbd_enable="NO"
  108.  
  109. #fsck_y_enable="YES"
  110. background_fsck="NO"
  111.  
  112. sendmail_enable="NONE"      # Run the sendmail inbound daemon (YES/NO).
  113. sendmail_flags="-L sm-mta -bd -q30m" # Flags to sendmail (as a server)
  114. sendmail_submit_enable="NO" # Start a localhost-only MTA for mail submission
  115. sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost"
  116. # Flags for localhost-only MTA
  117. sendmail_outbound_enable="NO"   # Dequeue stuck mail (YES/NO).
  118. sendmail_outbound_flags="-L sm-queue -q30m" # Flags to sendmail (outbound only)
  119. sendmail_msp_queue_enable="NO"  # Dequeue stuck clientmqueue mail (YES/NO).
  120. sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m"
  121. # Flags for sendmail_msp_queue daemon.             
  122. # to their chrooted counterparts.
  123.  
  124. nfs_reserved_port_only="NO"
  125. ntpdate_flags="ntp.ucsd.edu"
  126. ntpdate_enable="NO"
  127. xntpd_enable="NO"
  128. net_snmpd_enable="NO"
  129. inetd_enable="NO"
  130. inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one.
  131. inetd_flags="-wW -C 60"     # Optional flags to inetd
  132.  
  133. portmap_enable="NO"
  134. nfs_server_enable="NO"
  135. nfs_client_enable="NO"
  136. tcp_drop_synfin="YES"
  137. icmp_drop_redirect="YES"
  138. icmp_log_redirect="NO"
  139. syslogd_enable="YES"
  140. syslogd_flags="-ss"
  141. accounting_enable="NO"
  142. check_quotas="NO"
  143. clear_tmp_enable="YES"      # Clear /tmp at startup.
  144. cron_enable="YES"       # Run the periodic job daemon.
  145. named_enable="YES"      # Run named, the DNS server (or NO).
  146.  
  147. #devd_enable="YES".
  148. #devfs_system_ruleset="devfsrules_common".
  149. ldconfig_paths="/usr/lib/compat /usr/local/lib /usr/local/kde4/lib /usr/local/lib/compat/pkg"
  150.  
  151. # Denyhosts Startup.
  152. denyhosts_enable="YES"
  153.  
  154. EOF
  155.  
  156. cat << EOF >> $MNT/etc/fstab
  157. # Device    Mountpoint  FStype  Options Dump    Pass#
  158. #linproc    /compat/linux/proc  linprocfs   rw  0   0
  159.  
  160. EOF
  161.  
  162. cat << EOF >> $MNT/etc/resolv.conf
  163. search $HOSTNAME
  164. domain $HOSTNAME
  165. nameserver 127.0.0.1
  166. #nameserver 8.8.8.8
  167.  
  168. EOF
  169.  
  170. cat << EOF >> $MNT/boot/loader.conf
  171. zfs_load="YES"
  172. vfs.root.mountfrom="zfs:$ZPOOL"
  173.  
  174. autoboot_delay="1"
  175. beastie_disable="YES"
  176.  
  177. linux_load="YES"            # Linux emulation
  178. #lindev_load="NO"       # Linux-specific pseudo devices (see lindev(4))
  179. linprocfs_load="YES"        # Linux compatibility process filesystem
  180. linsysfs_load="YES"     # Linux compatibility system filesystem
  181. aio_load="YES"      # Linux compatibility system filesystem
  182.  
  183. #ipfw_load="YES"            # Firewall
  184. #ipfw_nat_load="YES"
  185.  
  186. #if_tap_load="YES"      # Ethernet tunnel software network interface
  187.  
  188. # Kernel Options
  189. kern.ipc.shmseg=1024
  190. kern.ipc.shmmni=1024
  191. kern.maxproc=10000
  192.  
  193. vm.pmap.pg_ps_enabled="0"
  194. #hw.mca.enabled=1
  195. kern.timecounter.hardware=i8254
  196. hw.pci.enable_msix=0
  197. hw.pci.enable_msi=0
  198. net.inet.tcp.tso=0
  199.  
  200. EOF
  201.  
  202. cp /var/tmp/$ZPOOL.cache $MNT/boot/zfs/zpool.cache
  203. zpool set cachefile=$MNT/boot/zfs/zpool.cache $ZPOOL
  204. /bin/sync
  205.  
  206. /sbin/zfs unmount -a
  207. /bin/sync
  208.  
  209. /sbin/zfs set mountpoint=legacy $ZPOOL
  210. /sbin/zfs set mountpoint=/tmp $ZPOOL/tmp
  211. /sbin/zfs set mountpoint=/usr $ZPOOL/usr
  212. /sbin/zfs set mountpoint=/usr/ports $ZPOOL/usr/ports
  213. /sbin/zfs set mountpoint=/usr/src $ZPOOL/usr/src
  214. /sbin/zfs set mountpoint=/usr/home $ZPOOL/usr/home
  215. /sbin/zfs set mountpoint=/var $ZPOOL/var
  216. /sbin/zfs set mountpoint=/var/db $ZPOOL/var/db
  217. /sbin/zfs set mountpoint=/var/tmp $ZPOOL/var/tmp
  218. /bin/sync
  219. rm $MNT
  220.  
  221. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement