⚙️ Как определить типы файловых систем на Linux

by itisgood

Linux поддерживает множество файловых систем, таких как Btrfs, ext4, ext3, ext2, exFAT, sysfs, securityfs, FAT16, FAT32, NTFS и многие другие.

Наиболее часто используемыми файловыми системами являются Ext4 и Btrfs.

Задумывались ли вы когда-нибудь, какую файловую систему вы используете в своей системе Linux?

Нет? Нет проблем!

В этом руководстве перечислены все возможные способы поиска типа смонтированной файловой системы в Linux и Unix-подобных операционных системах.

Различные способы поиска типов файловых систем в Linux

Существует множество способов найти тип файловой системы в Linux.

Здесь я привел 8 различных методов проверки типа файловой системы Linux с примерами

Метод 1 – Определение типа файловой системы в Linux с помощью Findmnt

Наиболее часто используемой командой для определения типа базовой файловой системы в Linux является Findmnt.

Команда findmnt выводит список всех смонтированных файловых систем или выполняет поиск файловой системы.

Команда findmnt может искать в /etc/fstab, /etc/mtab или /proc/self/mountinfo.

Команда Findmnt является частью пакета util-linux, который поставляется предустановленным в большинстве дистрибутивов Linux.

В случае, если команда findmnt недоступна в вашей системе, просто установите пакет util-linux, как показано ниже.

Для установки пакета util-linux в системах на базе Debian используйте команду:

$ sudo apt install util-linux

Давайте рассмотрим, как использовать команду findmnt для поиска типов смонтированных файловых систем в Linux.

Когда вы запустите команду findmnt без каких-либо опций, она выведет список всех смонтированных файловых систем в древовидном формате:

$ findmnt

Пример вывода:

TARGET                        SOURCE         FSTYPE          OPTIONS
/                             /dev/nvme0n1p2 ext4            rw,relatime,errors=remount-ro
├─/sys                        sysfs          sysfs           rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security      securityfs     securityfs      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup            cgroup2        cgroup2         rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/pstore            pstore         pstore          rw,nosuid,nodev,noexec,relatime
│ ├─/sys/firmware/efi/efivars efivarfs       efivarfs        rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/bpf               bpf            bpf             rw,nosuid,nodev,noexec,relatime,mode=700
│ ├─/sys/kernel/debug         debugfs        debugfs         rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/tracing       tracefs        tracefs         rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/fuse/connections  fusectl        fusectl         rw,nosuid,nodev,noexec,relatime
│ └─/sys/kernel/config        configfs       configfs        rw,nosuid,nodev,noexec,relatime
├─/proc                       proc           proc            rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc  systemd-1      autofs          rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=20897
├─/dev                        udev           devtmpfs        rw,nosuid,relatime,size=16196312k,nr_inodes=4049078,mode=755,inode64
│ ├─/dev/pts                  devpts         devpts          rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ ├─/dev/shm                  tmpfs          tmpfs           rw,nosuid,nodev,inode64
│ ├─/dev/mqueue               mqueue         mqueue          rw,nosuid,nodev,noexec,relatime
│ └─/dev/hugepages            hugetlbfs      hugetlbfs       rw,relatime,pagesize=2M
├─/run                        tmpfs          tmpfs           rw,nosuid,nodev,noexec,relatime,size=3249276k,mode=755,inode64
│ ├─/run/lock                 tmpfs          tmpfs           rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
│ ├─/run/rpc_pipefs           sunrpc         rpc_pipefs      rw,relatime
│ └─/run/user/1000            tmpfs          tmpfs           rw,nosuid,nodev,relatime,size=3249272k,nr_inodes=812318,mode=700,uid=1000,gid=1000,inode64
│   ├─/run/user/1000/gvfs     gvfsd-fuse     fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
│   └─/run/user/1000/doc      portal         fuse.portal     rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
├─/boot/efi                   /dev/nvme0n1p1 vfat            rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro
├─/media/ostechnix/SK_WD_SSD  /dev/sda1      exfat           rw,nosuid,nodev,noexec,noatime,nodiratime,fmask=0000,dmask=0000,allow_utime=0022,iocharset=utf8,errors=remount-ro
├─/var/lib/lxcfs              lxcfs          fuse.lxcfs      rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
└─/etc/pve                    /dev/fuse      fuse            rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other

Как видно из приведенного выше вывода, команда findmnt отображает целевую точку монтирования (TARGET), исходное устройство (SOURCE), тип файловой системы (FSTYPE) и соответствующие параметры монтирования, например, является ли файловая система доступной только для чтения/записи или только для чтения. (OPTIONS).

В моем случае тип файловой системы root(/) – EXT4.

Если вы не хотите отображать вывод в древовидном формате, вы можете использовать флаг -l для отображения типов файловых систем в виде простого списка.

$ findmnt -l

Вы также можете перечислить разделы только определенной файловой системы, например ext4, используя опцию -t.

$ findmnt -t ext4
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime,commit=360
└─/boot /dev/sda1 ext4 rw,relatime,commit=360,data=ordered

Findmnt также может производить вывод в стиле df.

$ findmnt --df

или

$ findmnt -D

Это эквивалентно команде df -T.

Можно также отобразить базовую файловую систему определенного раздела или точки монтирования.

Поиск устройства:

$ findmnt /dev/nvme0n1p2
TARGET                SOURCE         FSTYPE OPTIONS
/                     /dev/nvme0n1p2 ext4   rw,relatime,errors=remount-ro
/run/timeshift/backup /dev/nvme0n1p2 ext4   rw,relatime,errors=remount-ro

Поиск точки монтирования:

$ findmnt /
TARGET SOURCE         FSTYPE OPTIONS
/      /dev/nvme0n1p2 ext4   rw,relatime,errors=remount-ro

Можно даже найти файловые системы с определенной меткой:

$ findmnt LABEL=Storage

Более подробную информацию можно найти на страницах руководства по команде findmnt.

$ man findmnt

Команды findmnt достаточно, чтобы найти тип смонтированной файловой системы в Linux.

Она создана только для этой конкретной цели.

Однако существует еще несколько способов просмотра типов файловых систем в Linux.

Если вам интересно узнать об этом, читайте дальше.

Метод 2 – Проверка типа файловой системы в Linux с помощью команды blkid

Команда blkid используется для поиска и вывода атрибутов блочных устройств.

Она также входит в пакет util-linux, поэтому ее не нужно устанавливать.

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

$ sudo blkid

Пример вывода:

/dev/nvme0n1p1: UUID="CF87-3143" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="9dc59fb7-f900-484d-b4c5-c9090b901727"
/dev/nvme0n1p2: UUID="99406049-9ff5-47d1-a1ce-d5e27cd859c0" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="f2d515b2-a3c4-4c8c-a609-91d5b755b001"
/dev/nvme0n1p3: UUID="1ff239fc-674c-4749-9c73-fe5d0668071a" TYPE="swap" PARTUUID="95db6d7b-903b-4f8c-8583-bd00070aa45a"
/dev/sda1: LABEL="SK_WD_SSD" UUID="2A81-C276" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="6251cb36-01"
/dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="VTOYEFI" LABEL="VTOYEFI" UUID="5A89-BA75" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="6251cb36-02"

Чтобы узнать тип файловой системы определенного устройства, например, /dev/sda1, выполните команду:

$ sudo blkid /dev/sda1
/dev/sda1: LABEL="SK_WD_SSD" UUID="2A81-C276" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="6251cb36-01"

Вы также можете отобразить более подробную информацию с помощью команды:

$ sudo blkid -po udev /dev/sda1
ID_FS_LABEL=SK_WD_SSD
ID_FS_LABEL_ENC=SK_WD_SSD
ID_FS_UUID=2A81-C276
ID_FS_UUID_ENC=2A81-C276
ID_FS_VERSION=1.0
ID_FS_BLOCK_SIZE=512
ID_FS_TYPE=exfat
ID_FS_USAGE=filesystem
ID_PART_TABLE_TYPE=dos
ID_PART_ENTRY_SCHEME=dos
ID_PART_ENTRY_UUID=6251cb36-01
ID_PART_ENTRY_TYPE=0x7
ID_PART_ENTRY_FLAGS=0x80
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
ID_PART_ENTRY_SIZE=1953457584
ID_PART_ENTRY_DISK=8:0

Для получения более подробной информации обратитесь к man-страницам команды blkid.

$ man blkid

см. также:

🐧 Команда Blkid на Linux для поиска подробной информации об устройствах

🐧 Как установить порядок монтирования файловых систем в современных дистрибутивах Linux

Метод 3 – Определение типа файловой системы Linux с помощью команды df

Команда df используется для составления отчета об использовании дискового пространства файловой системы в Linux и Unix-подобных операционных системах.

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

$ sudo df -T

Пример:

Метод 4 – Просмотр типа файловой системы Linux с помощью команды File

Команда file определяет тип указанного файла.

Она отлично работает для файлов без расширения.

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

$ sudo file -sL /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=99406049-9ff5-47d1-a1ce-d5e27cd859c0 (needs journal recovery) (extents) (64bit) (large files) (huge files)

Более подробную информацию можно найти на страницах руководства:

$ man file

Метод 5 – Отображение типа файловой системы в Linux с помощью команды Fsck

Команда fsck используется для проверки целостности файловой системы или ее восстановления.

Вы можете узнать тип файловой системы с помощью команды fsck, передав раздел в качестве аргумента, как показано ниже.

$ sudo fsck -N /dev/nvme0n1p2
fsck from util-linux 2.36.1
[/usr/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/nvme0n1p2

Для получения более подробной информации обратитесь к странице руководства команды fsck.

$ man fsck

см.также:

Метод 6 – Найти тип смонтированной файловой системы с помощью файла Fstab

Fstab – это файл, который содержит статическую информацию о файловых системах.

Этот файл обычно содержит точку монтирования, тип файловой системы и параметры монтирования.

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

$ cat /etc/fstab

Пример вывода:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=99406049-9ff5-47d1-a1ce-d5e27cd859c0 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=CF87-3143  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/nvme0n1p3 during installation
UUID=1ff239fc-674c-4749-9c73-fe5d0668071a none            swap    sw              0       0
LABEL=SK_WD_SSD /media/ostechnix/SK_WD_SSD      exfat    errors=remount-ro,defaults,users,noatime,nodiratime,umask=0	0       2

см. также:

Метод 7 – Получение типа файловой системы в Linux с помощью команды lsblk

Команда lsblk отображает информацию об устройствах.

Чтобы отобразить информацию о смонтированных файловых системах, просто выполните команду:

$ lsblk -f
NAME        FSTYPE FSVER LABEL     UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                    
├─sda1      exfat  1.0   SK_WD_SSD 2A81-C276                             747.5G    20% /media/ostechnix/SK_WD_SSD
└─sda2      vfat   FAT16 VTOYEFI   5A89-BA75                                           
nvme0n1                                                                                
├─nvme0n1p1 vfat   FAT32           CF87-3143                             507.6M     1% /boot/efi
├─nvme0n1p2 ext4   1.0             99406049-9ff5-47d1-a1ce-d5e27cd859c0  214.4G    48% /run/timeshift/backup
└─nvme0n1p3 swap   1               1ff239fc-674c-4749-9c73-fe5d0668071a                [SWAP]

см. также:

🖴 Как вывести список имен устройств, информации о дисках и разделах в Linux с помощью lsblk

⚙️ Обзор способов просмотра дисков и разделов в Linux

Метод 8 – Поиск типа смонтированной файловой системы с помощью команды mount

Команда mount используется для монтирования локальной или удаленной файловой системы в Unix-подобных системах.

Чтобы узнать тип файловой системы с помощью команды mount, выполните следующие действия:

$ mount | grep "^/dev"
/dev/nvme0n1p2 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sda1 on /media/ostechnix/SK_WD_SSD type exfat (rw,nosuid,nodev,noexec,noatime,nodiratime,fmask=0000,dmask=0000,allow_utime=0022,iocharset=utf8,errors=remount-ro)
/dev/fuse on /etc/pve type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)
/dev/nvme0n1p2 on /run/timeshift/backup type ext4 (rw,relatime,errors=remount-ro)

см. также:

🐧 Как изменить цвет вывода команд в системах Linux

🐳 Как проверить использование дискового пространства образов, контейнеров и томов Docker

Заключение

Это 8 различных команд Linux для поиска смонтированных типов файловых систем в Linux.

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

 

You may also like

Leave a Comment