web-dev-qa-db-fra.com

Comment déterminer le système de fichiers d'un appareil non monté?

Duplicata possible:
Trouver le système de fichiers d'une partition à partir d'un script
Comment afficher le type de système de fichiers via le terminal?

Je recherche une commande qui donne le type de système de fichiers comme mount l'utiliserait/le détecterait, sans le monter réellement. Cela devrait également fonctionner, par exemple pour les appareils cryptés LUKS (où file -s renvoie "Fichier crypté LUKS" au lieu de "crypto_LUKS"). Il y a sûrement un moyen plus pratique que d'analyser fsck -N /dev/whatever's output (qui peut utiliser stderr en fonction de l'existence d'un fsck.TYPE)?

98
Tobias Kienzler

Il existe plusieurs façons d'obtenir ces informations. La plupart d'entre eux nécessitent que vous analysiez la sortie d'une autre commande.

  • Courir # fdisk /dev/sdX -l pour avoir une idée de base de la structure du système de fichiers. La sortie est quelque chose comme ceci:

    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
    

    Mais cela ne vous indiquera que le type de partition.

  • Vous pouvez également utiliser # blkid pour obtenir la sortie suivante:

    /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" 
    
  • De plus, pour une sortie bien formatée, vous pouvez exécuter # parted /dev/sdX -l pour la sortie suivante:

    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. Il s'agit d'une autre commande qui ne nécessite pas de privilèges de super-utilisateur pour s'exécuter. Cependant, cela rendra compte pour chaque point de montage

    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
    

Une autre commande qui peut être utile est # file -sL /dev/sdXY. Cela a un inconvénient en ce qu'il ne fonctionne pas avec le périphérique de bloc complet. Nécessite que l'appareil exact soit transmis. La sortie est assez nette cependant:

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

Tous ces éléments seront toujours sortis sur stdout. Vous pouvez les analyser dans un script si nécessaire.

122
darnir