diff --git a/install/newclient b/install/newclient index b155207ffb5e2a2c61c3c86d704e31c15e68af9a..64bcec18a1cc2f124bebe402ff811ec50fe9c08b 100644 --- a/install/newclient +++ b/install/newclient @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# Copyright (c) 2003-2012 University of Utah and the Flux Group. +# Copyright (c) 2003-2013 University of Utah and the Flux Group. # # {{{EMULAB-LICENSE # @@ -519,9 +519,27 @@ sub freebsd_get_disksize { while () { chomp; # - # Take the first of ad or da, whichever we find first + # FreeBSD 9.x and above have renamed IDE and SATA devs. + # Use the compat name for now. # - if (/^((ad|da|ar|aacd|amrd|mfid|mfisyspd)\d): (\d+)MB/) { + if (/^(ada\d+): (\d+)MB/) { + $diskdev = $1; + $disksize = $2; + next; + } + if (/^(ada\d+): Previously was known as (ad\d+)/) { + if (defined($disksize) && defined($diskdev) && $1 eq $diskdev) { + $diskdev = $2; + } else { + $diskdev = ""; + } + last; + } + + # + # Take the first disk of a recognized type + # + if (/^((ad|da|ar|aacd|amrd|mfid|mfisyspd)\d+): (\d+)MB/) { $diskdev = $1; $disksize = $3; last;