Как определить файловую систему размонтированного устройства?

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

Я ищу команду, которая дает тип файловой системы, поскольку mount будет использовать / обнаруживать ее, не устанавливая ее. Он также должен работать, например, для зашифрованных устройств LUKS (где file -s дает «зашифрованный файл LUKS» вместо «crypto_LUKS»). Разумеется, есть более удобный способ, чем разбор fsck -N /dev/whatever 's output (который может использовать stderr в зависимости от существования соответствующего fsck.TYPE )?

Существует несколько способов получить эту информацию. Большинство из них требуют, чтобы вы анализировали вывод другой команды.

  • Запустите # fdisk /dev/sdX -l чтобы получить базовую идею о структуре файловой системы. Результат выглядит примерно так:

     Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 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 Disk identifier: 0x9f7685a8 Device Boot Start End Blocks Id System /dev/sda1 63 289169 144553+ 83 Linux /dev/sda2 289170 459121634 229416232+ 83 Linux /dev/sda3 459121635 461129759 1004062+ 82 Linux swap / Solaris /dev/sda4 * 461129760 625142447 82006344 7 HPFS/NTFS/exFAT 

    Но это только скажет вам тип раздела.

  • Вы также можете использовать # blkid для получения следующего результата:

     /dev/sda1: LABEL="boot" UUID="aa84c5a8-6408-4952-b577-578f2a67af86" TYPE="ext2" /dev/sda2: LABEL="root" UUID="a430e0ef-fd35-432f-8b9a-75a49b89ad8a" TYPE="ext4" /dev/sda3: LABEL="swap" UUID="e388806a-dc27-4f4e-a136-3d1ff4e53962" TYPE="swap" /dev/sda4: UUID="088E027A8E026114" TYPE="ntfs" 
  • Кроме того, для хорошо отформатированного вывода вы можете запустить # parted /dev/sdX -l для следующего вывода:

     Model: ATA WDC WD3200BEVT-7 (scsi) Disk /dev/sda: 320GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 32.3kB 148MB 148MB primary ext2 2 148MB 235GB 235GB primary ext4 3 235GB 236GB 1028MB primary linux-swap(v1) 4 236GB 320GB 84.0GB primary ntfs boot 
  • $ df -T . Это еще одна команда, которая не требует выполнения суперпользователей. Однако это будет сообщать для каждой точки монтирования

     Filesystem Type 1K-blocks Used Available Use% Mounted on rootfs rootfs 225815276 99381340 114963128 47% / dev devtmpfs 1538396 0 1538396 0% /dev run tmpfs 1541260 416 1540844 1% /run /dev/sda2 ext4 225815276 99381340 114963128 47% / tmpfs tmpfs 1541260 360 1540900 1% /dev/shm tmpfs tmpfs 1541260 0 1541260 0% /sys/fs/cgroup tmpfs tmpfs 1541260 900 1540360 1% /tmp /dev/sda1 ext2 139985 30386 102372 23% /boot /dev/sda4 fuseblk 82006340 79676036 2330304 98% /mnt 

Другая команда, которая может пригодиться, – # file -sL /dev/sdXY . Это имеет один недостаток в том, что он не работает с полным блочным устройством. Требуется передать точное устройство. Выход довольно аккуратный:

 /dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=aa84c5a8-6408-4952-b577-578f2a67af86, volume name "boot" 

Все они всегда будут выводиться на stdout. Вы можете проанализировать их в сценарии, если это необходимо.