如何检查逻辑卷的文件系统类型

如何检查逻辑卷的文件系统类型

如何使用lvm或任何其他实用程序检查逻辑卷的文件系统类型?

例如,如果我的逻辑卷是/dev/vg1/lv1那么如何检查其文件系统类型?

我已经ext4使用在逻辑卷中创建了一个文件系统mkfs -t ext4 /dev/vg1/lv1。但不知道如何验证。我看不到任何薄的选项lvm

答案1

与任何其他块设备相同。例如

file -s /dev/vg1/lv1

如果/dev/vg1/lv1是符号链接,您还需要file's -L(又名--dereference)选项来取消引用它(即跟随它到它指向的真实设备节点):

file -L -s /dev/vg1/lv1

顺便说一句,可以-L在常规文件上使用。

如果是 ext4,它会显示如下内容:

/dev/vg1/lv1: Linux rev 1.0 ext4 filesystem data, UUID=xxxx, volume name "yyyy" (needs journal recovery) (extents) (large files) (huge files)

或者,您可以运行blkid /dev/vg1/lv1.那会报告类似的内容:

/dev/vg1/lv1: LABEL="yyyy" UUID="xxxx" TYPE="ext4"

man file

-s, --特殊文件

通常, file 仅尝试读取并确定 stat(2) 报告为普通文件的参数文件的类型。这可以防止出现问题,因为读取特殊文件可能会产生特殊的后果。指定 -s 选项会导致文件还读取作为块或字符特殊文件的参数文件。

这对于确定原始磁盘分区中数据的文件系统类型非常有用,这些分区是块特殊文件。此选项还会导致 file 忽略 stat(2) 报告的文件大小,因为在某些系统上它报告原始磁盘分区的大小为零。

答案2

使用lsblk -f

$ lsblk -f
    NAME            FSTYPE      LABEL          UUID                                   FSAVAIL FSUSE% MOUNTPOINT
    sda                                                                                              
    ├─sda1          ext4                       d2123fec-6c94-426f-b505-8cf3441122cf    742,6M    17% /boot
    └─sda2          LVM2_member                BLt1F3-S5E3-hBRX-Eqya-AUOx-wyxc-a5Yaf4                
      ├─fedora-root xfs                        59935050-8e89-4f7f-bf0f-2f448c4c680b     12,8G    15% /
      └─fedora-swap swap                       5fbca8c7-fd22-4acf-a411-d96a100c8ab2                  [SWAP]
    sr0             iso9660     VBox_GAs_6.0.8 2019-05-13-13-58-35-65  

答案3

如果逻辑卷有多个分区,了解分区偏移量会很有帮助。

用于fdisk读取卷的分区信息:

linux1:~ # fdisk -l /dev/vg01/lv001
Disk /dev/vg01/lv001: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000825ab

Device           Boot   Start       End   Sectors  Size Id Type
/dev/vg01/lv0011           63   3132674   3132612  1.5G 82 Linux swap / Solaris
/dev/vg01/lv0012 *    3132675 167734664 164601990 78.5G 83 Linux

然后用于blkid确定文件系统类型。该-p选项绕过本地缓存文件执行深度探测blkid,并且 Capital-O确定要检查的字节偏移量。偏移量由起始扇区乘以扇区大小确定;例如,

 `expr 3132675 \* 512`

其中反引号用于内联表达式,反斜杠\*可防止 bash 吃掉星号。

这是blkid用于确定目标文件系统的命令:

linux1:~ # blkid -pO `expr 3132675 \* 512`   /dev/vg01/lv001
/dev/vg01/lv001: UUID="..." VERSION="1.0" TYPE="ext3" USAGE="filesystem" PTTYPE="dos"

在这个例子中是:外部3

要访问文件系统,请安装偏移量:

mount -o offset=`expr 3132675 \* 512`  /dev/vg01/lv001 /mnt/lv001

以上操作在SLES 12.4上执行:

linux1:~ # uname -a
Linux linux1 4.12.14-95.6-default #1 SMP Thu Jan 17 06:04:39 UTC 2019 (6af4ef8) x86_64 x86_64 x86_64 GNU/Linux

答案4

wipefs(没有选项)也会这样做......

[root@localhost backup]# wipefs /dev/mapper/d2-vmStorage
DEVICE       OFFSET TYPE UUID                                 LABEL
d2-vmStorage 0x0    xfs  141c43c0-ebdb-414a-aa8a-1a23871b9052 

文件 -s 的相同输出:

[root@localhost backup]# file -L -s /dev/mapper/d2-vmStorage
/dev/mapper/d2-vmStorage: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

要实际擦除 fs :

[root@localhost backup]# wipefs -a /dev/mapper/d2-vmStorage
/dev/mapper/d2-vmStorage: 4 bytes were erased at offset 0x00000000 (xfs): 58 46 53 42

相关内容