Scripting sysinstall(8) to create & use multiple slices on a disk?

John Baldwin jhb at freebsd.org
Fri Mar 5 13:43:48 UTC 2010


On Thursday 04 March 2010 4:33:29 pm David Wolfskill wrote:
> For reasons that may well be idiosyncratic, I like to set up FreeBSD
> machines to have at least 2 bootable slices -- e.g., one can act as a
> fallback if an attempted software upgrade proves to have been ill-timed.
> 
> In the past, I've done this manually; while a bit tedious & fairly
> "target-rich" with opportunities for human error, it's something that is
> typically done infrequently (i.e., once) in the life of a machine (or at
> least its boot drive).
> 
> At work, the IT folks use a scripted sysinstall(8) to set machines up;
> to increase the probability that I'll be able to get 3 "special"
> machines set up the way I want, I'm trying to set up a sysinstall config
> file to make this as painless as possible.
> 
> I managed to get a copy of the config script IT uses, so I had a
> starting-point ... but they were setting the machines up with
> 
> partition=exclusive
> 
> which doesn't seem like a good choice for what I'm doing.  :-}
> 
> 
> After my first attempt failed, I poked around on the Net & found
> <http://www.nntpnews.net/f2458/what-proper-install-cfg-configuring-multiple-
slices-4387807/>,
> (dated 18-11-08, 10:40 PM ), in which Peter Steele describes something
> similar to what I was about to try next, and writes:
> 
> | My intent here is to create three slices-one 6GB in size, another 1GB in
> | size, and the third sized to consume the remaining free space. When I
> | run this through sysinstall, it complains that it can't find the space
> | for the partitions. It even complains that it can't find any free space.
> | Because the slices don't get created, the subsequent label assignments
> | fail as well. What is the proper commands for creating multiple slices
> | in install.cfg?
> 
> In a foillowup, he writes:
> 
> | After a lot of experimenting, my impression is that sysinstall simply
> | doesn't support multiple slice installations. It works to a point, but I
> | get some unexpected errors, e.g.
> |
> | Unable to make device node for /dev/ad0s1a in /dev
> 
> which doesn't seem very encouraging.
> 
> 
> Would someone please either confirm the limitation or provide a
> suitable excerpt from a sysinstall config script to demonstrate
> that it is actually possible?  (Or show me where it's spelled out in the
> man page....)
> 
> (I'm using 7.x sysinstall, if that matters.)

If you are doing a fully scripted install you may be better off just using a 
dedicated shell script to format your disks and mount them and then use the 
various *-install.sh scripts from the release distributions to install the 
code.  You could still do this via sysinstall by sticking your shell script in 
/stand in the MFS root and having your sysinstall script just run that script.  
You might want to build a custom mfsroot to add some more useful tools though.

I really think sysinstall needs to support a disk "backdoor" whereby the user 
can either manually partition disks and then mount them at /mnt (or have a 
script do it), and tell sysinstall to just skip the disk stuff and assume /mnt 
is mounted.

-- 
John Baldwin


More information about the freebsd-hackers mailing list