comment vérifier le type de système de fichiers d'un volume logique

12

Comment vérifier le type de système de fichiers d'un volume logique en utilisant lvmou tout autre utilitaire?

Par exemple, si mon volume logique est /dev/vg1/lv1alors comment vérifier son type de système de fichiers?

J'ai créé un ext4système de fichiers dans le volume logique en utilisant mkfs -t ext4 /dev/vg1/lv1. Mais je ne sais pas comment le vérifier. Je ne pouvais voir aucune option pour mince est lvm?

sps
la source
Est-ce que quelqu'un sait comment cela se fait au niveau C / C ++?
Lothar

Réponses:

19

Identique à tout autre périphérique bloc. par exemple

file -s /dev/vg1/lv1

Si c'est ext4, il dira quelque chose comme:

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

Vous pouvez également exécuter blkid /dev/vg1/lv1. Cela signifierait quelque chose comme:

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

De man file:

-s, - fichiers-spéciaux

Normalement, file essaie seulement de lire et de déterminer le type de fichiers d'arguments dont les rapports stat (2) sont des fichiers ordinaires. Cela évite les problèmes, car la lecture de fichiers spéciaux peut avoir des conséquences particulières. Si vous spécifiez l'option -s, le fichier lit également les fichiers d'arguments qui sont des fichiers spéciaux de blocs ou de caractères.

Ceci est utile pour déterminer les types de système de fichiers des données dans les partitions de disque brutes, qui sont des fichiers spéciaux de bloc. Cette option oblige également le fichier à ignorer la taille du fichier indiquée par stat (2) car sur certains systèmes, il signale une taille nulle pour les partitions de disque brutes.

cas
la source
au-dessus des commandements ont fonctionné. Je me demande simplement, il n'y a pas de lvmcommande pour cela?
sps
Faire cela sur mes / dev / sdb1,2,5 - qui sont des sorties de partitions LVM/dev/sdb#: block special
Adeerlike
as-tu couru juste file, ou file -s? -s(ou --special-files) indique filed'identifier les fichiers spéciaux de blocs ou de caractères. voir man fileet rechercher --special-files.
cas
mon filebesoin --dereferencepour qu'il puisse voir à travers le lien symbolique de / dev / vg0 / lv0
Felipe Alvarez
8

Utilisez 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  
celso.lom
la source
1

Si le volume logique a plusieurs partitions, la connaissance des décalages de partition peut être utile.

Utilisez fdiskpour lire les informations de partition du volume:

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

Utilisez ensuite blkidpour déterminer le type de système de fichiers. L' -poption effectue une analyse approfondie en contournant le blkidfichier de cache local et le capital -Odétermine le décalage d'octet à inspecter. Le décalage est déterminé en multipliant le secteur de départ par la taille du secteur; par exemple,

 `expr 3132675 \* 512`

où les backticks sont destinés à souligner l'expression, et la barre oblique inverse \*empêche bash de manger l'astérisque.

Voici la blkidcommande utilisée pour déterminer le système de fichiers cible:

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

qui dans cet exemple est: ext3 .

Pour accéder au système de fichiers, montez l'offset:

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

Les opérations ci-dessus effectuées sur 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
bvj
la source