How to check physical device contents
Solution 1
The answer to your questions are maybe, and yes.
lsblk
will hide empty devices -- however, in its case, it is only talking about partitions, not the data on those partitions. lsblk
is not the best tool for the job here.
This does, however, tell us the partition is not mounted - so yes, it is not currently being used.
So, is there any data on the partition (and therefore, the drive)?
We can find this out with the df
command, or "disk free".
To view the contents of the partition (and because there is only one partition, we can call this the contents of the drive itself), we first need to mount it.
Let's create a directory for it, as root
# mkdir /mnt/xvde1
And then mount this partition
# mount /dev/xvde1 /mnt/xvde1
Next, before we get to viewing the actual information... let's see how much (if any) disk space is being used. We know the partition is ~ 40GB large, but that's the allocated space, not the used space. [thanks to @n.st in the comments for suggesting to use the partition as an argument to df
!]
# df -H /dev/xvde1
Will tell us how much space is being used. Here is an example from my filesystem
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 43G 15G 29G 35% /
The second column (15GB) is the used amount. this is what we're looking for! If it is > 0, this drive is not empty!
You can view all of your mounted filesystems' information by simply using
$ df -H
We use -H
for "Human readable", by the way. Try it without -H
and you'll see everything is in K blocks!
And finally, we can view all of its contents (filenames at least) by using:
# ls -R /mnt/xvde1
Good luck!
Solution 2
First specifically regarding the example from the question:
No! It does not mean the second drive is empty.
The lines
xvde 202:64 0 40G 0 disk
└─xvde1 202:65 0 40G 0 part
mean there is a 40GB partition on that disk that is currently not mounted, and may, or may not contain a filesystem. It says nothing about the data on it. It does also not say whether it can be mounted at all.
In general:
To list all local partitions - mounted and unmounted ones - you can use
fdisk -l
which shows the partition tables - similar to cat /proc/partitions
proposed in the answer of @Ramesh, but with some additional details that may help to identify disks and partitions (ie: partition type id, boot flag, disk identifier).
See below for example output.
For identifying data actually inside the partitions, use file -s
as proposed by @Ramesh:
# file -s /dev/sdc1
/dev/sdc1: Linux rev 1.0 ext4 filesystem data, UUID=[...]
Example output of fdisk -l
(shortened):
Disk /dev/sdc: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
[...]
Disk identifier: 0x0005550d
Device Boot Start End Blocks Id System
/dev/sdc1 2048 217643007 108820480 83 Linux
/dev/sdc2 217645054 234440703 8397825 5 Extended
/dev/sdc5 217645056 234440703 8397824 82 Linux swap / Solaris
Disk /dev/sdd: 160.0 GB, 160041885696 bytes
[...]
Solution 3
/proc/partitions
will list all the block devices and partitions that the system recognizes. You can then try using file -s <device>
to determine what kind of file system is present on the partition, if any.
You can look for more options here.
Solution 4
You need to mount the filesystem and then list it for files, if any.
mount /dev/xvde1 /mnt || echo 'No filesystem found'
ls -lR /mnt | tee /tmp/xvde1_files.txt
umount /mnt
Related videos on Youtube
rumburak
BSc- Automation MSc - Information technology Software Engineer - Internet Applications
Updated on September 18, 2022Comments
-
rumburak over 1 year
I got a server with 2 hard drives. I would like to know what is on 2nd drive. How would I list all contents on physical device ?
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 40G 0 disk └─xvda1 202:1 0 40G 0 part / xvde 202:64 0 40G 0 disk └─xvde1 202:65 0 40G 0 part
I run the above code. Does it mean that 2nd drive is empty and not in use ?
-
n.st about 10 yearsWhy don't you just use
df -H /mnt/xvde1
? That way you will also keep the column titles in the output. -
cell-in about 10 yearsThanks @n.st. I didn't think df would take a partition/mount as an argument, very cool! I'll update the answer and attribute it to you.
-
n.st about 10 yearsYou can even do something like
df -h .
if you want to know the free space of the current working directory without looking up its mount point.