Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Nov 2005 13:52:14 -0500 (EST)
From:      Jerry McAllister <jerrymc@clunix.cl.msu.edu>
To:        Michael.Collette@TestEquity.com (Michael Collette)
Cc:        FreeBSD Lists <freebsd-questions@freebsd.org>
Subject:   Re: Automating Drive Formatting
Message-ID:  <200511231852.jANIqE1h012199@clunix.cl.msu.edu>
In-Reply-To: <4384AF06.4090809@TestEquity.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> I'm looking for some way to script together an automatic formatting of a hard
> drive.  Having a fair amount of difficulty locating some good information on
> doing this.
> 
> For example, let's say there's an unknown IDE drive that's at least 40G in
> size.  On that drive I want to create 1 partition with 3 labels.  2 of the
> labels get 10G, and the 3rd gets whatever is left.
> 
> My reason for doing this is that we've set up a couple of servers that are
> running diskless, but are bogging down a bit with getting everything via NFS.
> I'm trying to get a diskless box note the installed drive, check to see if
> it's in the format I expect, and if not perform the bsdlabel, newfs, and all
> that.
> 
> I know the basic info is somewhere accessible, or sysinstall wouldn't have
> this stuff available.  Just need a shove in the right direction please.

If you know the drive devince name  /dev/ad3 or something like that,
you can just run fdisk on it to read information and write a program 
(or script) to read its output.   Part of that output will tell you 
the number of sectors on the drive.   The information you want is in
the third line of the output from fdisk.  Ignore the rest of it.

Your program then decides if it is what you want and then runs the fdisk 
to create a single slice and disklabel (bsdlabel) to make the 3 partitions 
and then newfs on each partition to make the filesystems.

It is not difficult code to write (proof:  I have done it for our
installations).   I did it in C because the rest of the installation
stuff is already in C, but you could easily do it in Perl or most
any language that allows you to run system commands from within
the program or script.   I don't know of any that do not support
that.   Most of them call the directive "system" or something similar.

////jerry

> Thanks,
> -- 
> Michael Collette
> IT Manager
> TestEquity Inc
> Michael.Collette@TestEquity.com
> http://www.testequity.com/
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511231852.jANIqE1h012199>