ext3/ext4 的鉴别确认

之前绝大部分的磁盘都是 ext4 的格式,出于某些原因将某些磁盘换成了 ext3,现在要找出这批 ext3 的磁盘。下面的 sdb 实际是被格式化成了 ext3 的,但是通过 mount -a 的时候忘记修改参数了:
$ cat /etc/fstab

/dev/sdb1 /data/data1 ext4 defaults,noatime 0 2
/dev/sdc1 /data/data2 ext4 defaults,noatime 0 2

于是挂在上去了之后,通过 df 查看到的依然是 ext4 的格式:
$ df -T
Filesystem     Type      1K-blocks      Used  Available Use% Mounted on

/dev/sdb1      ext4     1922790980 267416068 1557699236  15% /data/data1
/dev/sdc1      ext4     1951519468 785431756 1068412036  43% /data/data2

而 sdb1 挂着 ext4 的名号实际只能干 ext3 的活,虽然最终目的达到了: 将 sdb1 变成 ext3,但是外表的 ext4 会迷惑其他的人,通过 mount 得到的结果同样有偏差:
$ mount

/dev/sdb1 on /data/data1 type ext4 (rw,noatime)

后来通过 tune2fs 算是勉强解决的了问题,可以发现,ext3 的 Filesystem features 比 ext 4 的少的多,另外通过 "Filesystem created" 可以确认这点,下面第一个是 ext3 的,第二个是 ext4 的:
$ sudo tune2fs -l /dev/sdb1
tune2fs 1.42 (29-Nov-2011)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file

Filesystem created:       Thu Feb  7 11:40:38 2013
Last mount time:          Thu Feb  7 11:48:48 2013
Last write time:          Thu Feb  7 11:48:48 2013

$ sudo tune2fs -l /dev/sdc1
tune2fs 1.42 (29-Nov-2011)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem created:       Fri Dec  7 00:47:53 2012
Last mount time:          Thu Feb  7 11:37:31 2013
Last write time:          Thu Feb  7 11:37:31 2013

后来偶然发现了个叫 blkid 的命令:
$ sudo blkid
/dev/sdb1: UUID="640159da-3352-4d66-b3ab-a27cde554606" TYPE="ext3"
/dev/sda1: UUID="59ce12a0-c6a1-4981-aef3-9112ef7ddfe8" TYPE="ext4"

这下终于找到了真容 :-)