333

I found a 6 GB IDE HDD in my basement. I want to plug it in and see what might be on it. The drive seems to be recognized in BIOS.

I can't find it in Ubuntu to view files, and Ubuntu is the only OS on that particular computer. I was wondering if Ubuntu has an equivalent to the Windows feature "My Computer", which lists all available drives/storage devices. Typically, My Computer shows C:, which can be opened to view all of your directories and files. At this point, it is very similar to Ubuntu's Home Folder.

How to view/select all available partitions of that drive or all available HDD's without formatting or tampering with the contents in any way?

2
  • 9
    Use Gparted, but with care! This can be a dangerous tool. If you just look at the partitions it's fine
    – user164752
    Jun 5, 2013 at 19:38
  • df -h --human-readable is a nice, short way of doing it. (Point out any errors that I may have) Thanks! Best wishes to the future //Will Oct 7, 2020 at 17:55

11 Answers 11

561

There are many ways but my favorite is lsblk. Here is a demonstration:

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

That would show the following:

NAME   FSTYPE   SIZE MOUNTPOINT LABEL
sda           111.8G            
├─sda1 swap     121M [SWAP]     
└─sda2 ext4   111.7G /          
sdb             2.7T            
└─sdb1 ext4     2.7T            xtreme
sdc             3.7T            
└─sdc1 ext4     3.7T            titan

It is showing:

  • The name of the drive and the partitions it has.
  • The type of file system.
  • The size the whole drive has and the size each partition has.
  • The mount point and if available, the label for them.

You can play around with the options by first looking at the ones available with lsblk --help. I like lsblk because of the friendly way of showing the information if compared for example with fdisk or parted.

5
  • 9
    I don't seem to need sudo for this.
    – szabgab
    Mar 15, 2017 at 12:44
  • 1
    How can u ammend a hard disks label?
    – Jono
    Apr 12, 2017 at 10:16
  • 5
    This command even has the ability to output as json with lsblk --output-all --json which is awesome!
    – Zren
    Oct 6, 2018 at 17:56
  • @Zren spoken like a developer!
    – asgs
    Nov 29, 2018 at 18:55
  • To show hdd model name: unix.stackexchange.com/a/94211/221416
    – mrgloom
    Aug 29, 2019 at 9:59
102

The command-line solution:

  • to check which drives your system can see:

    sudo fdisk -l
    

If your drive is in the list, you'll be able to see what partitions are on the drive, like this:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
...

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      208844      104391   83  Linux
/dev/sda2          208845     2313359     1052257+  82  Linux swap / Solaris
/dev/sda3         2313360   312576704   155131672+  83  Linux

Then create a directory somewhere and mount one of the partitions. For example, to mount a FAT32 partition located at dev/sda3 read-only into directory /media/my_test_mount you can do

sudo mount -t cifs -o ro /dev/sda3 /media/my_test_mount

This approach gives you more control, as you can use different mount options, for example mount the partition read-only.

See man mount for details.

31

I second Luis in that lsblk(8) is probably the most straightforward and concise solution. It's very easy to visualize what is there and gives you all of the information needed quickly:

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

For your convenience, here is a list of all available columns that can be used.

Available columns:
       NAME  device name
      KNAME  internal kernel device name
    MAJ:MIN  major:minor device number
     FSTYPE  filesystem type
 MOUNTPOINT  where the device is mounted
      LABEL  filesystem LABEL
       UUID  filesystem UUID
         RO  read-only device
         RM  removable device
      MODEL  device identifier
       SIZE  size of the device
      STATE  state of the device
      OWNER  user name
      GROUP  group name
       MODE  device node permissions
  ALIGNMENT  alignment offset
     MIN-IO  minimum I/O size
     OPT-IO  optimal I/O size
    PHY-SEC  physical sector size
    LOG-SEC  logical sector size
       ROTA  rotational device
      SCHED  I/O scheduler name
    RQ-SIZE  request queue size
       TYPE  device type
   DISC-ALN  discard alignment offset
  DISC-GRAN  discard granularity
   DISC-MAX  discard max bytes
  DISC-ZERO  discard zeroes data
9

Use the following command lines, that together will give you a good overview of the partitions (location, sizes, free space and mount points),

df -h
sudo parted -ls
sudo lsblk -f
sudo lsblk -m

If your terminal window is wide enough (for example 130 characters), you can combine the lsblk commands to

sudo lsblk -fm
8

To list the hard drives/disks, I use

sudo parted -l

Output:

Model: ATA Samsung SSD 850 (scsi) 
Disk /dev/sda: 250GB 
Sector size (logical/physical): 512B/512B 
Partition Table: msdos

Number  Start   End    Size   Type      File system  Flags  
 1      1049kB  256MB  255MB  primary   ext2         boot
 2      257MB   120GB  120GB  extended  
 5      257MB   120GB  120GB  logical   lvm


Model: Linux device-mapper (linear) (dm) 
Disk /dev/mapper/ubuntu--vg-swap_1: 8573MB 
Sector size (logical/physical): 512B/512B 
Partition Table: loop

Number  Start  End     Size    File system     Flags  
 1      0.00B  8573MB  8573MB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm) 
Disk /dev/mapper/ubuntu--vg-root: 111GB 
Sector size (logical/physical): 512B/512B 
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  111GB  111GB  ext4

And then to list the partitions as other people have already suggested you can use:

sudo lsblk -f

Which will tell you the file system partition types

1
  • parted gives me the hardware information and lsblk gives me the partition information. Looks like what I needed. Too bad there's no single command to document everything to support disaster recovery. Thank you!
    – Suncat2000
    Jan 14, 2018 at 17:13
6

Nautilus (where you view your home folder) will show all mounted drives on the system. If the drive is recognized by the computer you can mount it and begin to use it.

Directions and information about mounting drives can be found here: https://help.ubuntu.com/community/Mount

4

The solution below is very easy, clear, a GUI approach and it shows you exactly what you have laid out on your HDD:

  1. Go to: "System tools" in your main launch list
  2. Launch "GParted"
  3. Enter your password (should be your log on password if you are the admin.) You will be shown your HDD layouts, partitions sizes and amounts used.
  4. Quit the GParted application

CAUTION: Do not change ANYTHING unless you know what you are doing!

0
3

I have created some regex to help those who want to read this data into some application.

To do that, The lsblk command it is more usefully when you use the "-P" command. Here a example:

$ lsblk -P -o KNAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
KNAME="sda" FSTYPE="" SIZE="80G" MOUNTPOINT="" LABEL="" MODEL="VBOX HARDDISK   "
KNAME="sda1" FSTYPE="" SIZE="243M" MOUNTPOINT="/boot" LABEL="" MODEL=""
KNAME="sda2" FSTYPE="" SIZE="1K" MOUNTPOINT="" LABEL="" MODEL=""
KNAME="sda5" FSTYPE="" SIZE="79.8G" MOUNTPOINT="" LABEL="" MODEL=""
KNAME="dm-0" FSTYPE="" SIZE="79G" MOUNTPOINT="/" LABEL="" MODEL=""
KNAME="dm-1" FSTYPE="" SIZE="768M" MOUNTPOINT="[SWAP]" LABEL="" MODEL=""
KNAME="sr0" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM          "
KNAME="sr1" FSTYPE="" SIZE="1024M" MOUNTPOINT="" LABEL="" MODEL="CD-ROM          "

You can read this output usign some regex like

/KNAME=\"(.*)\" FSTYPE=\"(.*)\" SIZE=\"(.*)\" MOUNTPOINT=\"(.)*\" LABEL=\"(.*)\" MODEL=\"(.*)\"/g

http://regex101.com/r/uX5eG3/1

If you don't need the size of the partition, you can use the mount -l to

$ mount -l
/dev/mapper/precise32-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
/vagrant on /vagrant type vboxsf (uid=1000,gid=1000,rw)

And read it using some Regex like that

/(.*) on (.*) type (.*) \((.*)\)/g

http://regex101.com/r/nE4pQ9/1

If you are doing that in node, you can convert the string into a array of occurrences using some code like

stdout.split("\n").map(function(x){return x.split(/(.*) on (.*) type (.*) \((.*\))/g)}); 
3

(building on previous advise in regards to lsblk).

For the lazy typist (and if you don't need the sizes) you can use:

sudo lsblk -f

which is same as using -o NAME,FSTYPE,LABEL,MOUNTPOINT

for example

NAME                 FSTYPE             LABEL MOUNTPOINT
sda
└─sda1               ntfs             TOSHIBA
sdb
└─sdb1               LVM2_member
  └─root-root (dm-0) ext4                     /
1

Late answer but try this:

  1. Open files (Application from dash or open a folder)
  2. Go to "File System"
  3. Go to "media"
  4. Go into your user E.g. Lola Chang (From Ubuntu.com)
  5. It should list all attached drives, not including the SDA 1 (In your case probably C:)
0

Simply install gparted:

sudo apt update
sudo apt install gparted

This can perform all actions graphically.

1
  • package names are case sensitive - GParted will not work in place of gparted
    – Nmath
    Oct 7, 2020 at 17:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .