как проверить тип файловой системы логического тома

12

Как проверить тип файловой системы логического тома, используя lvmлюбую другую утилиту?

Например, если мой логический том - это /dev/vg1/lv1как проверить тип его файловой системы?

Я сделал ext4файловую систему в логическом томе, используя mkfs -t ext4 /dev/vg1/lv1. Но не знаю, как это проверить. Я не мог видеть какой-либо вариант для худых есть lvm?

СФС
источник
Кто-нибудь знает, как это делается на уровне C / C ++?
Лотар

Ответы:

19

То же, что и с любым другим блочным устройством. например

file -s /dev/vg1/lv1

Если это 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, -special-файлы

Обычно file пытается только прочитать и определить тип файлов аргументов, отчеты stat (2) которых являются обычными файлами. Это предотвращает проблемы, потому что чтение специальных файлов может иметь особые последствия. Указание опции -s заставляет файл также читать файлы аргументов, которые являются блочными или символьными специальными файлами.

Это полезно для определения типов файловой системы данных в разделах необработанного диска, которые являются блочными специальными файлами. Эта опция также заставляет файл игнорировать размер файла, как сообщает stat (2), поскольку в некоторых системах он сообщает нулевой размер для разделов необработанного диска.

саз
источник
вышеуказанные команды работали. Просто интересно, lvmкоманды для этого нет?
Спс
Делая это на моем / dev / sdb1,2,5 - которые являются выходами разделов LVM/dev/sdb#: block special
Adeerlike
ты просто бежал fileили file -s? -s(или --special-files) указывает fileидентифицировать блочные или символьные специальные файлы. увидеть man fileи найти --special-files.
Cas
Мне fileнужно, --dereferenceчтобы он мог видеть через символическую ссылку / dev / vg0 / lv0
Фелипе Альварес
8

Использование 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
источник
1

Если логический том имеет несколько разделов, знание смещений разделов может быть полезным.

Используйте 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кэш - файл, и капитал -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"

который в этом примере: ext3 .

Чтобы получить доступ к файловой системе, смонтируйте смещение:

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
bvj
источник