come controllare il tipo di filesystem di un volume logico


12

Come controllare il tipo di filesystem di un volume logico usando lvmo qualsiasi altra utility?

Ad esempio, se il mio volume logico è /dev/vg1/lv1come controllare il suo tipo di filesystem?

Ho creato un ext4filesystem nel volume logico usando mkfs -t ext4 /dev/vg1/lv1. Ma non so come verificarlo. Non vedevo alcuna opzione per thin è lvm?


Qualcuno sa come questo è fatto a livello C / C ++?
Lothar,

Risposte:


19

Come faresti con qualsiasi altro dispositivo a blocchi. per esempio

file -s /dev/vg1/lv1

Se è ext4, dirà qualcosa del tipo:

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

In alternativa, potresti correre blkid /dev/vg1/lv1. Ciò segnalerebbe qualcosa del tipo:

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

Da man file:

-s, --special-files

Normalmente, il file tenta solo di leggere e determinare il tipo di file di argomenti i cui report stat (2) sono file ordinari. Questo evita problemi, perché la lettura di file speciali può avere conseguenze peculiari. Se si specifica l'opzione -s, il file legge anche i file degli argomenti che sono file speciali a blocchi o caratteri.

Ciò è utile per determinare i tipi di file system dei dati nelle partizioni del disco non elaborate, che sono file speciali a blocchi. Questa opzione fa sì che il file ignori la dimensione del file come riportato da stat (2) poiché su alcuni sistemi riporta una dimensione zero per le partizioni del disco non elaborate.


sopra i comandi funzionavano. Mi chiedo solo, non c'è alcun lvmcomando per questo?
sps,

In questo modo su my / dev / sdb1,2,5 - che sono output delle partizioni LVM/dev/sdb#: block special
Adeerlike il

hai corso solo fileo file -s? -s(o --special-files) indica filedi identificare i file speciali di blocchi o caratteri. vedere man filee cercare --special-files.
Cas

ne avevo filebisogno in --dereferencemodo che potesse vedere attraverso il collegamento simbolico di / dev / vg0 / lv0
Felipe Alvarez

8

Usa 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  

1

Se il volume logico ha più partizioni, può essere utile conoscere gli offset delle partizioni.

Utilizzare fdiskper leggere le informazioni sulla partizione del 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

Quindi utilizzare blkidper determinare il tipo di filesystem. L' -popzione esegue un deep probe bypassando il blkidfile di cache locale e il capitale -Odetermina l'offset di byte da esaminare. L'offset viene determinato moltiplicando il settore iniziale per la dimensione del settore; per esempio,

 `expr 3132675 \* 512`

dove i backtick servono per allineare l'espressione e il backslash \*impedisce a bash di mangiare l'asterisco.

Ecco il blkidcomando utilizzato per determinare il filesystem di destinazione:

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

che in questo esempio è: ext3 .

Per accedere al filesystem, montare l'offset:

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

Le operazioni sopra descritte sono state eseguite su 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.