From owner-freebsd-questions@FreeBSD.ORG Thu Dec 6 23:43:14 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 56917954 for ; Thu, 6 Dec 2012 23:43:14 +0000 (UTC) (envelope-from rfg@tristatelogic.com) Received: from outgoing.tristatelogic.com (segfault.tristatelogic.com [69.62.255.118]) by mx1.freebsd.org (Postfix) with ESMTP id 2DFD68FC12 for ; Thu, 6 Dec 2012 23:43:13 +0000 (UTC) Received: from segfault-nmh-helo.tristatelogic.com (localhost [127.0.0.1]) by segfault.tristatelogic.com (Postfix) with ESMTP id 906BB5081A for ; Thu, 6 Dec 2012 15:43:13 -0800 (PST) To: freebsd-questions@freebsd.org Subject: Re: List all hard drives on system (with capacities)... How? In-Reply-To: <50C12B6C.5020109@tundraware.com> Date: Thu, 06 Dec 2012 15:43:13 -0800 Message-ID: <9477.1354837393@tristatelogic.com> From: "Ronald F. Guilmette" X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Dec 2012 23:43:14 -0000 In message <50C12B6C.5020109@tundraware.com>, Tim Daneliuk wrote: >On 12/06/2012 05:30 PM, Ronald F. Guilmette wrote: >> >> I'd like to write a small program or shell script that simply lists all >> of the physical hard drives attached to the local system, along with their >> product identifiers and their respective capacities. >> >> The following simple script works well for both PATA/SATA and USB hard drive >s, >> but it does not list drive capacities: >> >> #!/bin/sh >> >> atacontrol list | grep ': ad[0-9]' | sed 's/^.*: //' >> camcontrol devlist | grep '(da[0-9]' | sed -E 's/^(.*) \((da[0-9]+).*$/\2 \1 >/' >> >> >> How can I modify the script above in order to get it to print out the >> respective drive capacities? > >Look into fdisk -s Thank you Tim. Silly me! Before I even got your reply, I had already doen a bit more research and I had found what I think may perhaps be an even better answer. I never knew about this utility program called "diskinfo", but I just now found it, and it seems to do the trick. There appears to be a small problem with using fdisk -s... It looks like it hiccups when and if the drive in question has not actually been partitioned yet: # fdisk -s /dev/ad6 fdisk: invalid fdisk partition table found (The diskinfo utility apparently does not suffer from this problem.)