免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5601 | 回复: 7
打印 上一主题 下一主题

[FreeBSD] 写了一个代替FreeBSD10.1系统自动zfs分区的脚本... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-01 19:02 |只看该作者 |倒序浏览
本帖最后由 bleakwind 于 2015-07-02 15:23 编辑

参考FreeBSD10.1的自动zfs分区日志整的,我是搞PHP的,对shell做脚本一窍不通,拼拼凑凑三四天啊,终于测试通过.
水平有限,有问题的地方,看到一定要告诉我,随时修复.

btw: 请无视变量命名方式...


FreeBSD每个版本都不断改进,越来越好用.bsdconfig虽说不好用也在大家口水中成长,FreeBSD10.1的分区菜单出现了ZFS自动分区.不过使用后发现如下问题:
1. gpart没有加 -a 4k 参数,导致没有强制4k对齐,所以还是从34扇区开始分freebsd-boot,没有从40扇区开始.但是zfs的pool倒是用gnop来实现了4k读取.
2. zfs分区不能自己定义分区,都得按照系统那一套来,如果你跟我一样有把/home单独分这种强迫症,那就要装好系统再修改.
3. 而如果用命令一条一条敲,特别在机房的时候,那么小的推车,对着老旧显示器,还有好烂的键盘,会出现敲错字符或者设备名字.

综合上述,所以倒腾出如下脚本.可以在装系统的时候配置好网络在git上下载使用:
https://github.com/bleakwind/freebsd/blob/master/zfs_disk.sh

使用方法脚本中有,下面详细说明下(此脚本仅针对FreeBSD10.1,仅对部分参数数值进行了判断和自动取值,部分失败情况没有判断,请自行查询同目录下zfs_disk.sh.log日志文件):
- 当安装光盘选择分区方式的时候 [Partitioning] 选择 [Shell] 方式然后配置网络:

# ifconfig "em0" inet "192.168.8.201" netmask "255.255.255.0"
# route add default "192.168.8.1"
# echo "nameserver 202.96.134.133" >> /etc/resolv.conf
# echo "nameserver 8.8.8.8" >> /etc/resolv.conf

- 切换到 /tmp/ 目录下载脚本文件(此处如果不能在安装环境下fetch,请提前下载放在你能fetch的地方):

# cd /tmp/
# fetch https://raw.githubusercontent.com/bleakwind/freebsd/master/zfs_disk.sh && chmod +x zfs_disk.sh
    地址: https://github.com/bleakwind/freebsd/blob/master/zfs_disk.sh

- 然后开始分区工作:

命令格式:
usage: ${THIS_FILE} command args ...
where 'command' is one of the following:

    <init> <poolname>
    <gpart> <device> <label> [size_boot] [size_swap] [size_zfs]
    <pool> <poolname> <"poolcommand">
    <zfs> <poolname> <auto>
    <finish> <poolname> <"noplist">
    <info> [device]
    <help>

举例说明:
zroot是poolname,根据需要进行修改.

步骤 1: 初始化
# ./zfs_disk.sh -i zroot

步骤 2: -o显示磁盘信息,-g对每个盘顺序开始gpart,后三个参数可从后向前省略,[size_zfs]省略用所有剩余空间,[size_swap]省略用内存大小,[size_boot]省略用512k.
# ./zfs_disk.sh -o
# ./zfs_disk.sh -g da0 0 512k 4g 120g
      或 # ./zfs_disk.sh -g da0 0
# ./zfs_disk.sh -g da1 1 512k 4g 120g
# ./zfs_disk.sh -g da2 2 512k 4g 120g
# ./zfs_disk.sh -g da3 3 512k 4g 120g

步骤 3: 根据需要设定自己的raid方式
# ./zfs_disk.sh -p zroot "raidz2 da0p3.nop da1p3.nop da2p3.nop da3p3.nop"
      或: # ./zfs_disk.sh -p zroot "mirror da0p3.nop da1p3.nop mirror da2p3.nop da3p3.nop"

步骤 4: 可以一个一个自己设定,也可以先用auto自动,再设定自己单独的分区,此处可用-o copies=2等参数
# ./zfs_disk.sh -z zroot auto
# ./zfs_disk.sh -z zroot "-o mountpoint=/pub zroot/pub"
# ./zfs_disk.sh -z zroot "-o mountpoint=/db -o recordsize=8K zroot/db"

步骤 5: 注意引号,前面会给出nop信息,这里要传入nop
# ./zfs_disk.sh -f zroot "da0p3.nop da1p3.nop da2p3.nop da3p3.nop"

步骤 6: 删除shell脚本和日志,exit后安装程序会自动进行余下工作
# rm zfs_disk.sh zfs_disk.sh.log
# exit

其他命令: -o显示磁盘信息,-h显示命令帮助信息
# ./zfs_disk.sh -o
      或: # ./zfs_disk.sh -o da0
# ./zfs_disk.sh -h
  1. #!/bin/sh
  2. #
  3. # $FreeBSD10.1: zfs_disk.sh,v 1.0 2015/06/20 04:20:51 Bleakwind (at) www .weaverdream.com Exp $
  4. #
  5. # - First when [Partitioning] select [Shell] and configure network:
  6. #
  7. # # ifconfig "em0" inet "192.168.8.201" netmask "255.255.255.0"
  8. # # route add default "192.168.8.1"
  9. # # echo "nameserver 202.96.134.133" >> /etc/resolv.conf
  10. # # echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  11. #
  12. # - Second fetch the shell file:
  13. #
  14. # # cd /tmp/
  15. # # fetch https ://raw.githubusercontent.com/bleakwind/freebsd/master/zfs_disk.sh && chmod +x zfs_disk.sh
  16. # #     at: https ://github.com/bleakwind/freebsd/blob/master/zfs_disk.sh
  17. #
  18. # - Third allocating disk space:
  19. #
  20. # step 1
  21. # # ./zfs_disk.sh -i zroot
  22. #
  23. # step 2
  24. # # ./zfs_disk.sh -o
  25. # # ./zfs_disk.sh -g da0 0 512k 4g 120g
  26. #       or # ./zfs_disk.sh -g da0 0
  27. # # ./zfs_disk.sh -g da1 1 512k 4g 120g
  28. # # ./zfs_disk.sh -g da2 2 512k 4g 120g
  29. # # ./zfs_disk.sh -g da3 3 512k 4g 120g
  30. #
  31. # step 3
  32. # # ./zfs_disk.sh -p zroot "raidz2 da0p3.nop da1p3.nop da2p3.nop da3p3.nop"
  33. #       or: # ./zfs_disk.sh -p zroot "mirror da0p3.nop da1p3.nop mirror da2p3.nop da3p3.nop"
  34. #
  35. # step 4
  36. # # ./zfs_disk.sh -z zroot auto
  37. # # ./zfs_disk.sh -z zroot "-o mountpoint=/pub zroot/pub"
  38. # # ./zfs_disk.sh -z zroot "-o mountpoint=/db -o recordsize=8K zroot/db"
  39. # #     option: -o copies=2
  40. #
  41. # step 5
  42. # # ./zfs_disk.sh -f zroot "da0p3.nop da1p3.nop da2p3.nop da3p3.nop"
  43. #
  44. # step 6
  45. # # rm zfs_disk.sh zfs_disk.sh.log
  46. # # exit
  47. #
  48. # other
  49. # # ./zfs_disk.sh -o
  50. #       or: # ./zfs_disk.sh -o da0
  51. # # ./zfs_disk.sh -h
  52. #

  53. THIS_FILE=$0
  54. THIS_OPE=$1
  55. FSTAB_FMT="%s\t\t%s\t%s\t%s\t\t%s\t%s\n"
  56. HELP_INFO="usage: ${THIS_FILE} command args ...
  57. where 'command' is one of the following:

  58.     <init|-i> <poolname>
  59.     <gpart|-g> <device> <label> [size_boot] [size_swap] [size_zfs]
  60.     <pool|-p> <poolname> <"poolcommand">
  61.     <zfs|-z> <poolname> <auto|"zfscommand">
  62.     <finish|-f> <poolname> <"noplist">
  63.     <info|-o> [device]
  64.     <help|-h>"

  65. if [ $# -le 0 ]; then
  66.     echo "missing command"
  67.     echo -e "${HELP_INFO}"
  68.     exit 1
  69. fi

  70. if [ ! -f "${THIS_FILE}.log" ]; then
  71.     echo -e "Log for ${THIS_FILE}: `date +%Y%m%d%H%M%S`" > ${THIS_FILE}.log
  72. else
  73.     echo -e "\nLog for ${THIS_FILE}: `date +%Y%m%d%H%M%S`" >> ${THIS_FILE}.log
  74. fi
  75. echo "\${THIS_FILE} > ${THIS_FILE}" >> ${THIS_FILE}.log
  76. echo "\${THIS_OPE} > ${THIS_OPE}" >> ${THIS_FILE}.log

  77. # begin
  78. case "${THIS_OPE}" in
  79.     # init: # ./zfs_disk.sh -i zroot
  80.     init|-i)
  81.         THIS_POOLNAME=$2

  82.         if [ -z "${THIS_POOLNAME}" ]; then
  83.             echo "missing argument"
  84.             echo -e "${HELP_INFO}"
  85.             exit 1
  86.         fi
  87.         echo "Begin init:" >> ${THIS_FILE}.log
  88.         echo "\${THIS_POOLNAME} > ${THIS_POOLNAME}" >> ${THIS_FILE}.log

  89.         zpool destroy "${THIS_POOLNAME}" >> ${THIS_FILE}.log 2>&1

  90.         printf "" > "/tmp/bsdinstall_etc/fstab"
  91.         printf "$FSTAB_FMT" "# Device" "Mountpoint" "FStype" "Options" "Dump" "Pass#" >> "/tmp/bsdinstall_etc/fstab"

  92.         echo "End init---" >> ${THIS_FILE}.log
  93.         echo "init successful..."
  94.         ;;

  95.     # gpart: # ./zfs_disk.sh -g da0 0 512k 4g 120g
  96.     #    or: # ./zfs_disk.sh -g da0 0
  97.     gpart|-g)
  98.         THIS_DEVICE=$2
  99.         THIS_LABEL=$3
  100.         THIS_SIZE_BOOT=$4
  101.         THIS_SIZE_SWAP=$5
  102.         THIS_SIZE_ZFS=$6

  103.         if [ -z "${THIS_DEVICE}" ] || [ -z "${THIS_LABEL}" ]; then
  104.             echo "missing argument"
  105.             echo -e "${HELP_INFO}"
  106.             exit 1
  107.         fi
  108.         echo "Begin gpart---" >> ${THIS_FILE}.log

  109.         if [ -z "${THIS_SIZE_BOOT}" ]; then
  110.             THIS_SIZE_BOOT="512k"
  111.         fi
  112.         if [ -z "${THIS_SIZE_SWAP}" ]; then
  113.             THIS_SIZE_SWAP=`sysctl hw.physmem | sed -e 's/.*hw\.physmem: \([0-9]*\).*/\1/g'`
  114.             THIS_SIZE_SWAP=`echo "scale=2; ${THIS_SIZE_SWAP}/1024/1024/1024" | bc`
  115.             THIS_SIZE_SWAP="`printf "%.0f" ${THIS_SIZE_SWAP}`g"
  116.         fi

  117.         echo "\${THIS_DEVICE} > ${THIS_DEVICE}" >> ${THIS_FILE}.log
  118.         echo "\${THIS_LABEL} > ${THIS_LABEL}" >> ${THIS_FILE}.log
  119.         echo "\${THIS_SIZE_BOOT} > ${THIS_SIZE_BOOT}" >> ${THIS_FILE}.log
  120.         echo "\${THIS_SIZE_SWAP} > ${THIS_SIZE_SWAP}" >> ${THIS_FILE}.log
  121.         echo "\${THIS_SIZE_ZFS} > ${THIS_SIZE_ZFS}" >> ${THIS_FILE}.log

  122.         gpart destroy -F "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1
  123.         graid delete "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1
  124.         zpool labelclear -f "/dev/${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1
  125.         gpart create -s gpt "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1
  126.         gpart destroy -F "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1
  127.         gpart create -s gpt "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1

  128.         THIS_BOOT=`gpart add -a 4k -l gptboot${THIS_LABEL} -t freebsd-boot -s ${THIS_SIZE_BOOT} "${THIS_DEVICE}"`
  129.         THIS_BOOT_NAME=`echo ${THIS_BOOT} | sed -e 's/\([a-zA-Z0-9]*\) added/\1/g'`
  130.         echo "\${THIS_BOOT} > ${THIS_BOOT}" >> ${THIS_FILE}.log 2>&1
  131.         gpart bootcode -b "/boot/pmbr" -p "/boot/gptzfsboot" -i 1 "${THIS_DEVICE}" >> ${THIS_FILE}.log 2>&1

  132.         THIS_SWAP=`gpart add -a 4k -l swap${THIS_LABEL} -t freebsd-swap -s ${THIS_SIZE_SWAP} "${THIS_DEVICE}"`
  133.         THIS_SWAP_NAME=`echo ${THIS_SWAP} | sed -e 's/\([a-zA-Z0-9]*\) added/\1/g'`
  134.         echo "\${THIS_SWAP} > ${THIS_SWAP}" >> ${THIS_FILE}.log 2>&1
  135.         zpool labelclear -f "/dev/${THIS_SWAP_NAME}" >> ${THIS_FILE}.log 2>&1

  136.         if [ -z "${THIS_SIZE_ZFS}" ]; then
  137.             THIS_ZFS=`gpart add -a 4k -l zfs${THIS_LABEL} -t freebsd-zfs "${THIS_DEVICE}"`
  138.         else
  139.             THIS_ZFS=`gpart add -a 4k -l zfs${THIS_LABEL} -t freebsd-zfs -s ${THIS_SIZE_ZFS} "${THIS_DEVICE}"`
  140.         fi
  141.         THIS_ZFS_NAME=`echo ${THIS_ZFS} | sed -e 's/\([a-zA-Z0-9]*\) added/\1/g'`
  142.         echo "\${THIS_ZFS} > ${THIS_ZFS}" >> ${THIS_FILE}.log 2>&1
  143.         zpool labelclear -f "/dev/${THIS_ZFS_NAME}" >> ${THIS_FILE}.log 2>&1

  144.         printf "${FSTAB_FMT}" "/dev/${THIS_SWAP_NAME}" "none" "swap" "sw" "0" "0" >> "/tmp/bsdinstall_etc/fstab"
  145.         gnop create -S 4096 "${THIS_ZFS_NAME}" >> ${THIS_FILE}.log 2>&1

  146.         echo "remenber this => freebsd-boot:${THIS_BOOT_NAME}"
  147.         echo "                 freebsd-swap:${THIS_SWAP_NAME}"
  148.         echo "                 freebsd-zfs :${THIS_ZFS_NAME}"

  149.         echo "End gpart---" >> ${THIS_FILE}.log
  150.         echo "create partition successful..."
  151.         ;;

  152.     # pool: # ./zfs_disk.sh -p zroot "raidz2 da0p3.nop da1p3.nop da2p3.nop da3p3.nop"
  153.     #   or: # ./zfs_disk.sh -p zroot "mirror da0p3.nop da1p3.nop mirror da2p3.nop da3p3.nop"
  154.     pool|-p)
  155.         THIS_POOLNAME=$2
  156.         THIS_POOLCOMMAND=$3

  157.         if [ -z "${THIS_POOLNAME}" ] || [ -z "${THIS_POOLCOMMAND}" ]; then
  158.             echo "missing argument"
  159.             echo -e "${HELP_INFO}"
  160.             exit 1
  161.         fi
  162.         echo "Begin pool---" >> ${THIS_FILE}.log
  163.         echo "\${THIS_POOLNAME} > ${THIS_POOLNAME}" >> ${THIS_FILE}.log
  164.         echo "\${THIS_POOLCOMMAND} > ${THIS_POOLCOMMAND}" >> ${THIS_FILE}.log
  165.         echo "zpool create -o altroot=/mnt -O compress=lz4 -O atime=off -m none -f "${THIS_POOLNAME}" ${THIS_POOLCOMMAND}" >> ${THIS_FILE}.log

  166.         zpool create -o altroot=/mnt -O compress=lz4 -O atime=off -m none -f "${THIS_POOLNAME}" ${THIS_POOLCOMMAND} >> ${THIS_FILE}.log 2>&1
  167.         zfs create -o mountpoint=none "${THIS_POOLNAME}/ROOT" >> ${THIS_FILE}.log 2>&1
  168.         zfs create -o mountpoint=/ "${THIS_POOLNAME}/ROOT/default" >> ${THIS_FILE}.log 2>&1

  169.         echo "End pool---" >> ${THIS_FILE}.log
  170.         echo "create pool successful..."

  171.         ;;

  172.     # zfs: # ./zfs_disk.sh -z zroot auto
  173.     #      # ./zfs_disk.sh -z zroot "-o mountpoint=/pub zroot/pub"
  174.     #      # ./zfs_disk.sh -z zroot "-o mountpoint=/db -o recordsize=8K zroot/db"
  175.     zfs|-z)
  176.         THIS_POOLNAME=$2
  177.         THIS_ZFSCOMMAND=$3

  178.         if [ -z "${THIS_POOLNAME}" ] || [ -z "${THIS_ZFSCOMMAND}" ]; then
  179.             echo "missing argument"
  180.             echo -e "${HELP_INFO}"
  181.             exit 1
  182.         fi
  183.         echo "Begin zfs---" >> ${THIS_FILE}.log
  184.         echo "\${THIS_POOLNAME} > ${THIS_POOLNAME}" >> ${THIS_FILE}.log
  185.         echo "\${THIS_ZFSCOMMAND} > ${THIS_ZFSCOMMAND}" >> ${THIS_FILE}.log

  186.         if [ "${THIS_ZFSCOMMAND}" = "auto" ]; then
  187.             zfs create -o mountpoint=/tmp -o exec=on -o setuid=off "${THIS_POOLNAME}/tmp" >> ${THIS_FILE}.log 2>&1

  188.             zfs create -o mountpoint=/usr -o canmount=off "${THIS_POOLNAME}/usr" >> ${THIS_FILE}.log 2>&1
  189.             zfs create -o setuid=off "${THIS_POOLNAME}/usr/ports" >> ${THIS_FILE}.log 2>&1
  190.             zfs create  "${THIS_POOLNAME}/usr/src" >> ${THIS_FILE}.log 2>&1

  191.             zfs create -o mountpoint=/var -o canmount=off "${THIS_POOLNAME}/var" >> ${THIS_FILE}.log 2>&1
  192.             zfs create -o exec=off -o setuid=off "${THIS_POOLNAME}/var/crash" >> ${THIS_FILE}.log 2>&1
  193.             zfs create -o exec=off -o setuid=off "${THIS_POOLNAME}/var/log" >> ${THIS_FILE}.log 2>&1
  194.             zfs create -o atime=on "${THIS_POOLNAME}/var/mail" >> ${THIS_FILE}.log 2>&1
  195.             zfs create -o setuid=off "${THIS_POOLNAME}/var/tmp" >> ${THIS_FILE}.log 2>&1

  196.             zfs create -o mountpoint=/home "${THIS_POOLNAME}/home" >> ${THIS_FILE}.log 2>&1
  197.         else
  198.             zfs create ${THIS_ZFSCOMMAND} >> ${THIS_FILE}.log 2>&1
  199.         fi

  200.         echo "End zfs---" >> ${THIS_FILE}.log
  201.         echo "create dataset successful..."

  202.         ;;

  203.     # finish: # ./zfs_disk.sh -f zroot "da0p3.nop da1p3.nop da2p3.nop da3p3.nop"
  204.     finish|-f)
  205.         THIS_POOLNAME=$2
  206.         THIS_NOPLIST=$3

  207.         if [ -z "${THIS_POOLNAME}" ] || [ -z "${THIS_NOPLIST}" ]; then
  208.             echo "missing argument"
  209.             echo -e "${HELP_INFO}"
  210.             exit 1
  211.         fi
  212.         echo "Begin finish---" >> ${THIS_FILE}.log
  213.         echo "\${THIS_POOLNAME} > ${THIS_POOLNAME}" >> ${THIS_FILE}.log
  214.         echo "\${THIS_NOPLIST} > ${THIS_NOPLIST}" >> ${THIS_FILE}.log

  215.         chmod 1777 "/tmp" >> ${THIS_FILE}.log 2>&1
  216.         chmod 1777 "/var/tmp" >> ${THIS_FILE}.log 2>&1

  217.         zpool set bootfs="${THIS_POOLNAME}/ROOT/default" "${THIS_POOLNAME}" >> ${THIS_FILE}.log 2>&1
  218.         zpool export "${THIS_POOLNAME}" >> ${THIS_FILE}.log 2>&1
  219.         gnop destroy ${THIS_NOPLIST} >> ${THIS_FILE}.log 2>&1
  220.         zpool import -o altroot="/mnt" "${THIS_POOLNAME}" >> ${THIS_FILE}.log 2>&1

  221.         mkdir -p "/mnt/boot/zfs" >> ${THIS_FILE}.log 2>&1
  222.         zpool set cachefile="/mnt/boot/zfs/zpool.cache" "${THIS_POOLNAME}" >> ${THIS_FILE}.log 2>&1
  223.         echo "zfs_enable=\"YES\"" >> "/tmp/bsdinstall_etc/rc.conf.zfs"
  224.         echo "zfs_load=\"YES\"" >> "/tmp/bsdinstall_boot/loader.conf.zfs"
  225.         echo "kern.geom.label.gptid.enable=\"0\"" >> "/tmp/bsdinstall_boot/loader.conf.zfs"

  226.         echo "End finish---" >> ${THIS_FILE}.log
  227.         echo "finish successful..."

  228.         ;;

  229.     # help: # ./zfs_disk.sh -h
  230.     help|-h)
  231.         echo -e "${HELP_INFO}"
  232.         exit 0
  233.         ;;

  234.     # info: # ./zfs_disk.sh -o
  235.     #   or: # ./zfs_disk.sh -o da0
  236.     info|-o)
  237.         THIS_DEVICE=$2

  238.         echo "Begin info---" >> ${THIS_FILE}.log
  239.         echo "\${THIS_DEVICE} > ${THIS_DEVICE}" >> ${THIS_FILE}.log

  240.         if [ -z "${THIS_DEVICE}" ]; then
  241.             gpart show
  242.         else
  243.             gpart show "${THIS_DEVICE}"
  244.         fi

  245.         echo "End info---" >> ${THIS_FILE}.log
  246.         echo "show disk info successful..."

  247.         ;;

  248.     # error
  249.     *)
  250.         echo "unrecognized command '${THIS_OPE}'"
  251.         echo -e "${HELP_INFO}"
  252.         exit 1
  253.         ;;
  254. esac
复制代码

评分

参与人数 1可用积分 +10 信誉积分 +2 收起 理由
lsstarboy + 10 + 2 很给力!

查看全部评分

论坛徽章:
9
2015年亚洲杯之卡塔尔
日期:2015-05-07 07:05:542015亚冠之鹿岛鹿角
日期:2015-05-29 14:55:522015亚冠之鹿岛鹿角
日期:2015-06-11 09:55:192015亚冠之山东鲁能
日期:2015-06-19 23:53:042015亚冠之大阪钢巴
日期:2015-06-23 21:03:17操作系统版块每日发帖之星
日期:2015-06-23 22:20:00操作系统版块每日发帖之星
日期:2015-06-27 22:20:002015亚冠之布里斯班狮吼
日期:2015-07-04 03:40:012015亚冠之平阳省
日期:2015-07-12 09:32:55
2 [报告]
发表于 2015-07-01 23:29 |只看该作者
先顶了再看

论坛徽章:
15
2015年迎新春徽章
日期:2015-03-04 09:57:09操作系统版块每日发帖之星
日期:2016-08-10 06:20:00操作系统版块每日发帖之星
日期:2016-07-16 06:20:00操作系统版块每日发帖之星
日期:2016-06-04 06:20:00操作系统版块每日发帖之星
日期:2016-03-14 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2015-12-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-04 06:20:00每日论坛发贴之星
日期:2015-10-21 06:20:00操作系统版块每日发帖之星
日期:2015-10-21 06:20:00操作系统版块每日发帖之星
日期:2015-10-18 06:20:00操作系统版块每日发帖之星
日期:2015-07-13 23:17:29
3 [报告]
发表于 2015-07-01 23:35 |只看该作者
我还在思考...

论坛徽章:
12
数据库技术版块每日发帖之星
日期:2015-07-08 22:20:00IT运维版块每日发帖之星
日期:2016-05-01 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44IT运维版块每月发帖之星
日期:2016-03-07 16:25:25IT运维版块每日发帖之星
日期:2016-02-21 06:20:00IT运维版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-02-06 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-03 06:20:00IT运维版块每日发帖之星
日期:2015-11-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00
4 [报告]
发表于 2015-07-02 09:41 |只看该作者
不是说zfs在非sun系统下性能下降很大吗?zfs最好用2块hdd 单盘没啥意思!

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
5 [报告]
发表于 2015-07-02 10:17 |只看该作者
回复 4# rtm009

性能下降是从哪地方得来的消息?应该是指的Linux吧,FreeBSD花了很大精力才移植过来的,几十万行代码呢。

单盘zfs也是有意义的,电力不好的时候可以避免磁盘fsck,也可以避免数据库不能启动。
   

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
6 [报告]
发表于 2015-07-02 10:19 |只看该作者
本帖最后由 lsstarboy 于 2015-07-02 10:19 编辑

可以把磁盘也到shell的循环里面,官方的安装脚本里在就是对选中的磁盘进行循环。

论坛徽章:
12
数据库技术版块每日发帖之星
日期:2015-07-08 22:20:00IT运维版块每日发帖之星
日期:2016-05-01 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44IT运维版块每月发帖之星
日期:2016-03-07 16:25:25IT运维版块每日发帖之星
日期:2016-02-21 06:20:00IT运维版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-02-06 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-03 06:20:00IT运维版块每日发帖之星
日期:2015-11-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00
7 [报告]
发表于 2015-07-02 14:59 |只看该作者
回复 5# lsstarboy


    鸟语不好的说 装过不会用 也不会调 仅仅是装上了

论坛徽章:
0
8 [报告]
发表于 2015-07-02 15:10 |只看该作者
lsstarboy 发表于 2015-07-02 10:19
可以把磁盘也到shell的循环里面,官方的安装脚本里在就是对选中的磁盘进行循环。



主要是想给更多自定义,代替打过多命令,还有为了加上系统gpart没加的-a 4k,和自定义分区.
比如我习惯最后空出1g空间,作为磁盘容量不同的机动调整,还有swap也给予自定义.

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP