I just formatted stuff. One disk I format as ext2. The other I want to format as ext4. I want to test how they perform.
Now, how do I know the kind of file system in a partition?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityI just formatted stuff. One disk I format as ext2. The other I want to format as ext4. I want to test how they perform.
Now, how do I know the kind of file system in a partition?
How do I tell what sort of data (what data format) is in a file?
→ Use the file
utility.
Here, you want to know the format of data in a device file, so you need to pass the -s
flag to tell file
not just to say that it's a device file but look at the content. Sometimes you'll need the -L
flag as well, if the device file name is a symbolic link. You'll see output like this:
# file -sL /dev/sd*
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=63fa0104-4aab-4dc8-a50d-e2c1bf0fb188 (extents) (large files) (huge files)
/dev/sdb1: Linux rev 1.0 ext2 filesystem data, UUID=b3c82023-78e1-4ad4-b6e0-62355b272166
/dev/sdb2: Linux/i386 swap file (new style), version 1 (4K pages), size 4194303 pages, no label, UUID=3f64308c-19db-4da5-a9a0-db4d7defb80f
Given this sample output, the first disk has one partition and the second disk has two partitions. /dev/sda1
is an ext4 filesystem, /dev/sdb1
is an ext2 filesystem, and /dev/sdb2
is some swap space (about 4GB).
You must run this command as root, because ordinary users may not read disk partitions directly: if needed, add sudo
in front.
$ sudo file /dev/sda1
, I get /dev/sda1: block special
Jan 10, 2013 at 16:55
file -s /dev/sd*
− with sudo
in front, that's sudo file -s /dev/sd*
.
Jan 10, 2013 at 16:57
file -sL /dev/mapper/foo-bar
, with the -L
flag to dereference the symlink.
Dec 1, 2014 at 17:04
Another option is to use blkid
:
$ blkid /dev/sda1
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2"
This recognizes most filesystem types and stuff like encrypted partitions.
You can also search for partitions with a given type:
# blkid -t TYPE=ext2
/dev/sda1: UUID="625fa1fa-2785-4abc-a15a-bfcc498139d1" TYPE="ext2"
/dev/sdb1: UUID="b80153f4-92a1-473f-b7f6-80e601ae21ac" TYPE="ext2"
ext2
filesystem with mount -t ext4
. blkid
isn't fooled by that.
Jan 9, 2013 at 16:45
blkid
is not as great as lsblk
is at detecting unmounted drives (if you need to)
Mar 4, 2015 at 22:41
FEATURE_BLKID_TYPE
must be enabled to use BusyBox blkid
in this manner.
Feb 13 at 15:40
You can use sudo parted -l
[shredder12]$ sudo parted -l
Model: ATA WDC WD1600BEVT-7 (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 8587MB 8587MB primary ext3 boot
4 8587MB 40.0GB 31.4GB primary ext4
2 40.0GB 55.0GB 15.0GB primary ext4
3 55.0GB 160GB 105GB extended
5 55.0GB 158GB 103GB logical ext4
6 158GB 160GB 1999MB logical linux-swap(v1)
sudo apt-get install parted
(or gparted
) if you are on Ubuntu or any other debian derivative.
Jan 9, 2013 at 12:24
ext2
filesystem with mount -t ext4
. parted
isn't fooled by that.
Jan 9, 2013 at 16:45
mount -t auto
)
Jan 18, 2016 at 8:18
Surprised this isn't on here already.
No sudo
required:
lsblk -f
lsblk
columns...
Sep 3, 2015 at 22:00
Still another way, since you know you're running some flavor of ext?
, is to look at the filesystem's feature list:
# tune2fs -l /dev/sda1 | grep features
If in the list you see:
extent
— it's ext4extent
, but has_journal
— it's ext3extent
nor has_journal
— it's ext2The parted
and blkid
answers are better if you want these heuristics run for you automatically. (They tell the difference with feature checks, too.) They can also identify non-ext?
filesystems.
This method has the virtue of showing you the low-level differences.
The important thing to realize here is that these three filesystems are forwards compatible, and to some extent backwards-compatible, too. Later versions just add features on top of the older ones.
See the ext4 HOWTO for more information on this.
try using df -T
see man df
for more options still one more way I found is cfdisk
mount -t ext4
on an ext2
filesystem, df -T
reports ext4
. That is, it's just reading what the mount table says, not looking at the filesystem metadata to figure this out.
Jan 9, 2013 at 18:19
use -T option to print file system type
[root@centos6 ~]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 6795192 6367072 76276 99% /
tmpfs tmpfs 639164 0 639164 0% /dev/shm
/dev/sda1 ext4 487652 28684 433368 7% /boot
fdisk -l
will list
Usage:
fdisk [options] -l <disk> list partition table(s)
fdisk -s <partition> give partition size(s) in blocks
fdisk [options] <disk> change partition table
fdisk
, on the system I'm using at the moment at least, only shows the partition type, not the filesystem type. That means not only can't it tell the difference between ext2
, ext3
, and ext4
, it also can't discern ReiserFS or XFS from these.
Jan 9, 2013 at 20:17
To get just the filesystem type with lsblk
:
# lsblk -n -o FSTYPE /dev/sda1
vfat
# lsblk -n -o FSTYPE /dev/sda2
ext4
Another option is blkid
:
blkid -o export <partition-device> | grep '^TYPE' | cut -d"=" -f2
An example run is:
# blkid -o export /dev/sda1 | grep '^TYPE' | cut -d"=" -f2
vfat
# blkid -o export /dev/sda2 | grep '^TYPE' | cut -d"=" -f2
ext4
This didn't show the BSD answer I was looking for. I had the impression these type bytes were actually contained in the partition table on the disk, not sure about that. There's only type 85 for all Linux extfs types, but Linux doesn't recognize OpenBSD's A6 type at all either.
00 unused 20 Willowsoft 66 NetWare 386 A9 NetBSD
01 DOS FAT-12 24 NEC DOS 67 Novell AB MacOS X boot
02 XENIX / 27 Win Recovery 68 Novell AF MacOS X HFS+
03 XENIX /usr 38 Theos 69 Novell B7 BSDI filesy*
04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 BSDI swap
05 Extended DOS 40 VENIX 286 75 PCIX BF Solaris
06 DOS > 32MB 41 Lin/Minux DR 80 Minix (old) C0 CTOS
07 NTFS 42 LinuxSwap DR 81 Minix (new) C1 DRDOSs FAT12
08 AIX fs 43 Linux DR 82 Linux swap C4 DRDOSs < 32M
09 AIX/Coherent 4D QNX 4.2 Pri 83 Linux files* C6 DRDOSs >=32M
0A OS/2 Bootmgr 4E QNX 4.2 Sec 84 OS/2 hidden C7 HPFS Disbled
0B Win95 FAT-32 4F QNX 4.2 Ter 85 Linux ext. DB CPM/C.DOS/C*
0C Win95 FAT32L 50 DM 86 NT FAT VS DE Dell Maint
0E DOS FAT-16 51 DM 87 NTFS VS E1 SpeedStor
0F Extended LBA 52 CP/M or SysV 8E Linux LVM E3 SpeedStor
10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor
11 OS/2 hidden 54 Ontrack 94 Amoeba BBT EB BeOS/i386
12 Compaq Diag. 55 EZ-Drive 99 Mylex EE EFI GPT
14 OS/2 hidden 56 Golden Bow 9F BSDI EF EFI Sys
16 OS/2 hidden 5C Priam A0 NotebookSave F1 SpeedStor
17 OS/2 hidden 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ Sec
18 AST swap 63 ISC, HURD, * A6 OpenBSD F4 SpeedStor
19 Willowtech 64 NetWare 2.xx A7 NEXTSTEP FF Xenix BBT
1C ThinkPad Rec 65 NetWare 3.xx A8 MacOS X
If you're in OpenBSD's fdisk
and you hit ? when it asks for partition type this is what you get. The types show when you're editing or listing the partition table.
Partition types on Wikipedia: https://en.wikipedia.org/wiki/Partition_type