cara memeriksa tipe sistem file dari volume yang logis

12

Bagaimana cara memeriksa tipe filesystem dari volume logis menggunakan lvmatau utilitas lain?

Sebagai contoh, jika volume logis saya adalah /dev/vg1/lv1bagaimana memeriksa jenis sistem file?

Saya telah membuat ext4filesystem menggunakan volume logis mkfs -t ext4 /dev/vg1/lv1. Tetapi tidak tahu bagaimana memverifikasinya. Saya tidak bisa melihat opsi apa pun untuk kurus lvm?

sps
sumber
Adakah yang tahu bagaimana hal ini dilakukan pada level C / C ++?
Lothar

Jawaban:

19

Sama seperti yang Anda lakukan dengan perangkat blok lain. misalnya

file -s /dev/vg1/lv1

Jika ext4, ia akan mengatakan sesuatu seperti:

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

Atau, Anda bisa berlari blkid /dev/vg1/lv1. Itu akan melaporkan sesuatu seperti:

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

Dari man file:

-s, --special-files

Biasanya, file hanya mencoba membaca dan menentukan jenis file argumen yang laporan stat (2) adalah file biasa. Ini mencegah masalah, karena membaca file khusus mungkin memiliki konsekuensi aneh. Menentukan opsi -s menyebabkan file juga membaca file argumen yang merupakan file khusus blok atau karakter.

Ini berguna untuk menentukan tipe sistem file dari data di partisi disk mentah, yang memblokir file-file khusus. Opsi ini juga menyebabkan file mengabaikan ukuran file seperti yang dilaporkan oleh stat (2) karena pada beberapa sistem ia melaporkan ukuran nol untuk partisi disk mentah.

cas
sumber
Perintah di atas bekerja. Hanya ingin tahu, tidak ada lvmperintah untuk ini?
sps
Melakukan ini pada / dev / sdb1,2,5 saya - yang merupakan keluaran partisi LVM/dev/sdb#: block special
Adeerlike
apakah Anda berlari saja file, atau file -s? -s(atau --special-files) memberi tahu fileuntuk mengidentifikasi file khusus blok atau karakter. lihat man filedan cari --special-files.
cas
filekebutuhan saya --dereferencesehingga bisa melihat melalui tautan simbolis dari / dev / vg0 / lv0
Felipe Alvarez
8

Gunakan 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
sumber
1

Jika volume logis memiliki banyak partisi, mengetahui offset partisi dapat membantu.

Gunakan fdiskuntuk membaca info partisi 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

Kemudian gunakan blkiduntuk menentukan tipe sistem file. The -ppilihan melakukan penyelidikan mendalam melewati lokal blkidcache file, dan modal -Omenentukan byte offset untuk memeriksa. Offset ditentukan dengan mengalikan sektor awal dengan ukuran sektor; misalnya,

 `expr 3132675 \* 512`

di mana backticks digunakan untuk menguraikan ekspresi, dan backslash \*mencegah bash memakan asterisk.

Inilah blkidperintah yang digunakan untuk menentukan sistem file target:

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

yang dalam contoh ini adalah: ext3 .

Untuk mengakses sistem file, pasang offset:

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

Operasi di atas dilakukan pada 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
sumber