About Me

My photo
I know the last digit of PI

Wednesday, June 23, 2010

Show available disks drives under Linux (Fedora)

Somebody wondering how to show all attached hard disks / CD DVD drives under Linux?

Here is a small program that do just that. It works perfectly under Fedora 13. Copy/Past the text in file called /usr/bin/lshdd
#!/bin/bash
if [ "$1" == "-v" ]; then
  verbose="true"
else
  verbose="false"
fi

lshal | awk -v verbose=$verbose 'BEGIN {
  name=""
}
{
  if ($0~"^udi = ") {name=""}
  if ($0~"^udi = ./org/freedesktop/Hal/devices/storage_serial_.*") {
    match($3, "/org/freedesktop/Hal/devices/storage_serial_(.*).", arr);
    name=arr[1]
  }
  if ($0~"^udi = ./org/freedesktop/Hal/devices/storage_model.*") {
    match($3, "/org/freedesktop/Hal/devices/storage_model_(.*).", arr);
    name=arr[1]
  }
  if (name!="" && $0~"block.device") {
    match($3, "(/dev/.*).", arr);
    if (verbose~"true") {
      print arr[1] " = " name
    } else {
      print arr[1]
    }
    name = ""
  }
}'
Change the file permissions:
chmod a+x /usr/bin/lshdd
Then you can list your hard & dvd drives:
lshdd -v
and the output looks like:
/dev/sr0 = DVD__RW_TS_L632D
/dev/sdb = WDC_WD50_00AAVS_00ZTB0_D577A3503523_0_0
/dev/sda = SAMSUNG_HM400LI_S1PSJ10Q710844

You can easily find the partitions of specific drive
fdisk -l /dev/sdb



P.S. It is my first awk script, so it really looks ugly, I know ;-)

No comments: