So überprüfen Sie den Dateisystemtyp eines logischen Volumes

12

Wie überprüfe ich den Dateisystemtyp eines logischen Volumes mit lvmeinem anderen Dienstprogramm?

Wenn mein logisches Volume beispielsweise lautet, /dev/vg1/lv1wie kann der Dateisystemtyp überprüft werden?

Ich habe ein ext4Dateisystem im logischen Volume mit erstellt mkfs -t ext4 /dev/vg1/lv1. Aber ich weiß nicht, wie ich es überprüfen soll. Ich konnte keine Option für Thin Is sehen lvm?

sps
quelle
Weiß jemand, wie dies auf C / C ++ - Ebene gemacht wird?
Lothar

Antworten:

18

Wie bei jedem anderen Blockgerät. z.B

file -s /dev/vg1/lv1

Wenn es ext4 ist, sagt es etwas wie:

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

Alternativ könnten Sie laufen blkid /dev/vg1/lv1. Das würde so etwas wie berichten:

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

Von man file:

-s, --special-files

Normalerweise versucht file nur, den Typ der Argumentdateien zu lesen und zu bestimmen, von denen stat (2) berichtet, dass es sich um normale Dateien handelt. Dies verhindert Probleme, da das Lesen spezieller Dateien besondere Konsequenzen haben kann. Wenn Sie die Option -s angeben, liest die Datei auch Argumentdateien, bei denen es sich um Block- oder Zeichenspezialdateien handelt.

Dies ist nützlich, um die Dateisystemtypen der Daten in Raw-Festplattenpartitionen zu bestimmen, bei denen es sich um Blockspezialdateien handelt. Diese Option führt auch dazu, dass Dateien die von stat (2) angegebene Dateigröße ignorieren, da auf einigen Systemen eine Größe von Null für Raw-Festplattenpartitionen angegeben wird.

cas
quelle
oben Befehle funktionierten. Ich frage mich nur, es gibt keinen lvmBefehl dafür?
sps
Tun Sie dies auf meinem / dev / sdb1,2,5 - das sind LVM-Partitionsausgaben/dev/sdb#: block special
Adeerlike
bist du gerade gelaufen fileoder file -s? -s(oder --special-files) weist filean, spezielle Block- oder Zeichendateien zu identifizieren. sehen man fileund suchen --special-files.
Cas
Ich filebrauchte es, --dereferencedamit es durch den symbolischen Link von / dev / vg0 / lv0 sehen konnte
Felipe Alvarez
8

Verwenden Sie 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
quelle
1

Wenn das logische Volume mehrere Partitionen hat, kann es hilfreich sein, die Partitionsversätze zu kennen.

Verwenden Sie fdiskdiese Option , um die Partitionsinformationen des Volumes zu lesen:

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

Verwenden Sie dann blkid, um den Dateisystemtyp zu bestimmen. Die -pOption führt eine Tiefenprüfung unter Umgehung der lokalen blkidCache-Datei durch, und das Großbuchstaben -Obestimmt den zu prüfenden Byte-Offset. Der Versatz wird durch Multiplizieren des Startsektors mit der Sektorgröße bestimmt; z.B,

 `expr 3132675 \* 512`

wo die Backticks zum Inlinen des Ausdrucks dienen und der Backslash \*verhindert, dass Bash das Sternchen frisst.

Hier ist der blkidBefehl zum Bestimmen des Zieldateisystems:

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

was in diesem Beispiel ist: ext3 .

Mounten Sie den Offset, um auf das Dateisystem zuzugreifen:

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

Die oben in SLES 12.4 ausgeführten Operationen:

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
quelle