88e4dbacdb
slice, partition, newfs, and install FreeBSD from a tarball on a remote server. Handy for doing mass-installs for server farms. Documentation following shortly.
53 lines
1.3 KiB
Bash
Executable File
53 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Prepares disk based on kernel disk information. Assumes fdisk -e was
|
|
# run beforehand.
|
|
#
|
|
# 'swap' is the size of the swap partition in 512 byte blocks (def: 256MB)
|
|
|
|
# dev=target_disk
|
|
|
|
target_disk=$1
|
|
|
|
dmesg | grep "${target_disk}.*sectors" | tr -d '(:)' | awk '
|
|
{
|
|
v = $3
|
|
c = $5
|
|
h = $7
|
|
s = $9
|
|
ss = c * h * s - s
|
|
sw = 522240
|
|
ap = ss - sw
|
|
|
|
print "#",$0 > "_"
|
|
print "g c"c" h"h" s"s > "_"
|
|
print "p 1 165",s,ss > "_"
|
|
print "a 1" > "_"
|
|
|
|
print "#",$0 > "__"
|
|
print "type: ESDI" > "__"
|
|
print "disk:", $1 > "__"
|
|
print "label:" > "__"
|
|
print "flags:" > "__"
|
|
print "bytes/sector: 512" > "__"
|
|
print "sectors/track:", s > "__"
|
|
print "tracks/cylinder:", h > "__"
|
|
print "sectors/cylinder:", s * h > "__"
|
|
print "cylinders:", c > "__"
|
|
print "sectors/unit:", ss > "__"
|
|
print "rpm: 3600" > "__"
|
|
print "interleave: 1" > "__"
|
|
print "trackskew: 0" > "__"
|
|
print "cylinderskew: 0" > "__"
|
|
print "headswitch: 0 # milliseconds" > "__"
|
|
print "track-to-track seek: 0 # milliseconds" > "__"
|
|
print "drivedata: 0 " > "__"
|
|
print "8 partitions:" > "__"
|
|
print "# size offset fstype [fsize bsize bps/cpg]" > "__"
|
|
print "a:",ap,"0 4.2BSD 512 4096 " > "__"
|
|
print "b:",sw,ap,"swap " > "__"
|
|
print "c:",ss,"0 unused 0 0" > "__"
|
|
}
|
|
'
|
|
disklabel -BrR ${target_disk} __
|