Print this page
Have kayak install full-GPT disks and use BSD Loader

*** 89,128 **** ListDisksUnique(){ for term in $*; do ListDisksAnd $term done | sort | uniq | xargs } - SMIboot() { - DISK=$1 - RDSK=/dev/rdsk/${DISK}p0 - S2=/dev/rdsk/${DISK}s2 - fdisk -B ${RDSK} - disks -C - prtvtoc -h ${RDSK} | awk '/./{p=0;} {if($1=="2"){size=$5;p=1;} if($1=="8"){start=$5;p=1;} if(p==1){print $1" "$2" "$3" "$4" "$5;}} END{size=size-start; print "0 2 00 "start" "size;}' | sort -n | fmthard -s /dev/stdin $S2 - disks -C - } BuildRpool() { ztype="" ztgt="" disks=`ListDisksUnique $*` log "Disks being used for rpool: $disks" if [[ -z "$disks" ]]; then bomb "No matching disks found to build rpool" fi for i in $disks do - SMIboot $i if [[ -n "$ztgt" ]]; then ztype="mirror" fi ! ztgt="$ztgt ${i}s0" ! INSTALL_GRUB_TGT="$INSTALL_GRUB_TGT /dev/rsdk/${i}s2" done log "zpool destroy rpool (just in case we've been run twice)" zpool destroy rpool 2> /dev/null log "Creating rpool with: zpool create -f rpool $ztype $ztgt" zpool create -f rpool $ztype $ztgt || bomb "Failed to create rpool" BuildBE } GetTargetVolSize() { # Aim for 25% of physical memory (minimum 1G) --- 89,121 ---- ListDisksUnique(){ for term in $*; do ListDisksAnd $term done | sort | uniq | xargs } BuildRpool() { ztype="" ztgt="" disks=`ListDisksUnique $*` log "Disks being used for rpool: $disks" if [[ -z "$disks" ]]; then bomb "No matching disks found to build rpool" fi + rm -f /tmp/kayak-disk-list for i in $disks do if [[ -n "$ztgt" ]]; then ztype="mirror" fi ! ztgt="$ztgt ${i}" ! # Keep track of disks for later... ! echo ${i} >> /tmp/kayak-disk-list done log "zpool destroy rpool (just in case we've been run twice)" zpool destroy rpool 2> /dev/null log "Creating rpool with: zpool create -f rpool $ztype $ztgt" + # Just let "zpool create" do its thing. We want GPT disks now. zpool create -f rpool $ztype $ztgt || bomb "Failed to create rpool" BuildBE } GetTargetVolSize() { # Aim for 25% of physical memory (minimum 1G)