OVH Cloud OVH Cloud

connaître le type de filesystem sur un périphérique?

13 réponses
Avatar
Emmanuel Florac
Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?

--
Ne pas savoir de quoi on parle est un avantage dont il ne faut pas
abuser.
R.Debray

10 réponses

1 2
Avatar
TiChou
Dans le message <news:,
*Emmanuel Florac* tapota sur f.c.o.l.configuration :

Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script?


Avec la commande 'file' par exemple ?

mount le fait, mkfs_xfs aussi, mais existe t'il un outil ?


$ file -s -L /dev/hda1
/dev/hda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery)

--
TiChou

Avatar
no_spam
On Thu, 21 Oct 2004 23:08:16 +0200, Emmanuel Florac wrote:


Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?


mount ne reconnait pas le filesystem, c'est le kernel qui le fait si le
type est "auto".
file reconnait les filesystems, mais de là à exploiter l'output... Ca
existe peut être en librairie...

Avatar
g.patel
On Thu, 21 Oct 2004 23:23:30 +0200, "TiChou"
wrote:

$ file -s -L /dev/hda1
/dev/hda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery)


[ gerard]# file -s -L /dev/hda7
/dev/hda7: data
[ gerard]# debugreiserfs -J /dev/hda7
debugreiserfs 3.6.17 (2003 www.namesys.com)


Filesystem state: consistency is not checked after last mounting

Reiserfs super block in block 16 on 0x307 of format 3.6 with standard
journal
....

Gerard Patel

Avatar
TiChou
Dans le message <news:,
*gerard patel* tapota sur f.c.o.l.configuration :

$ file -s -L /dev/hda1
/dev/hda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery)


[ gerard]# file -s -L /dev/hda7
/dev/hda7: data
[ gerard]# debugreiserfs -J /dev/hda7
Reiserfs super block in block 16 on 0x307 of format 3.6 with standard
journal


J'ai le même constat et c'est très bizarre. En effet, il semblerait qu'il y
ait un bug dans la commande 'file' car dans le fichier magic qu'elle
utilise, on retrouve bien les nombres magic suivant :

# reiserfs -
0x10034 string ReIsErFs ReiserFS V3.5
0x10034 string ReIsEr2Fs ReiserFS V3.6
0x1002c leshort x block size %d
0x10032 leshort &2 (mounted or unclean)
0x10000 lelong x num blocks %d
0x10040 lelong 1 tea hash
0x10040 lelong 2 yura hash
0x10040 lelong 3 r5 hash


Or j'ai vérifié, en éditant une image ReiserFS, ce que l'on trouvait à
l'offset 0x10034 et on le retrouve bien la chaîne 'ReIsEr2Fs'. Alors
pourquoi la commande file ne reconnaît-elle pas les systèmes de fichiers
ReiserFS ?

Sinon, toujours d'après le fichier magic, la commande 'file' est sensé
reconnaître les systèmes de fichiers FAT (et toutes les variantes), NTFS,
ext2/3, HFS, MFS, XFS, UFS, etc, la liste est très grande et à priori
complète.

--
TiChou


Avatar
marmotte
Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?



Cela pourrait t'aider :

[root @ bourriquet] (/home/marmotte)
# cfdisk -P s /dev/sda
Partition Table for /dev/sda

First Last
# Type Sector Sector Offset Length Filesystem Type
(ID) Flag
-- ------- ----------- ----------- ------ -----------
-------------------- ----
1 Primary 0 251903 32 251904 FAT16 (06)
None


Ensuite un filtrage pour prendre le bon champ, et le tour serait joué.
Qu'en penses-tu ?


--
Linuxement,

marmotte
JID:
GPG fingerprint: 3A12 BB75 447F 6F6F FE53 C2B3 C398 3331 A277 95C6


PS: Enlevez _les_doigts_du_nez_ pour me répondre

Avatar
Emmanuel Florac
Le Thu, 21 Oct 2004 23:23:30 +0200, TiChou a écrit :


Avec la commande 'file' par exemple ?



bof, chez moi c'est pas très parlant, regarde :

emmanuel[~]$ sudo fdisk -l /dev/hda
Password:

Disque /dev/hda: 10.0 Go, 10000000000 octets
255 têtes, 63 secteurs/piste, 1215 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 1 79 634536 82 Linux swap
/dev/hda2 80 1215 9124920 83 Linux

emmanuel[~]$ mount
/dev/hda2 on / type reiserfs (rw)

emmanuel[~]$ file -s -L /dev/hda1
/dev/hda1: x86 boot sector, code offset 0x52, OEM-ID "NTFS ",
sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, heads 255,
hidden sectors 63, dos < 4.0 BootSector (0x80)

emmanuel[~]$ file -s -L /dev/hda2
/dev/hda2: data


Bref file ne reconnait pas les partitions reiser de toute évidence, me
voilà bien avancé!

--
Ne pas savoir de quoi on parle est un avantage dont il ne faut pas
abuser.
R.Debray

Avatar
Emmanuel Florac
Le Fri, 22 Oct 2004 01:25:10 +0200, marmotte a écrit :


Ensuite un filtrage pour prendre le bon champ, et le tour serait joué.
Qu'en penses-tu ?


Marche pas... Doit utiliser la commande file :

emmanuel[~]$ cfdisk -P s /dev/hda
Table de partitions de /dev/hda

Premier Dernier
# Type Secteur Secteur Offset Longueur Sys.FichierType (ID) Fanions
-- ------- ----------- ----------- ------ ----------- -------------------- ----
1 Primair 0 1269134 63 1269135 Linux swap (82) Aucun
2 Primair 1269135 19518974 0 18249840 Linux (83) Aucun

Quelle panade...

--
L'esprit qu'on veut avoir gâte celui qu'on a.
Jean-Baptiste Louis Grisset.

Avatar
Alexandre
Emmanuel Florac écrivait :

Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?


for i in a1 b1 b2 ; do ./mount --guess-fstype /dev/hd$i ; done
ext2
ntfs
reiserfs
--
Alexandre

Avatar
Alexandre
Emmanuel Florac écrivait :

Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?


$ for i in a1 b1 b2 ; do mount --guess-fstype /dev/hd$i ; done
ext2
ntfs
reiserfs
--
Alexandre

Avatar
marmotte
Emmanuel Florac écrivait :


Comment peut-on détecter le type de fs sur un périphérique, de
préférence dans un script? mount le fait, mkfs_xfs aussi, mais existe
t'il un outil ? Hein les potes?



$ for i in a1 b1 b2 ; do mount --guess-fstype /dev/hd$i ; done
ext2
ntfs
reiserfs


Ça marche bien en effet, où as-tu trouvé ça? Ce n'est pas dans le man de
mount, et je n'avais trouvé aucune trace sur le net (la question
d'Emmanuel m'avait bien intéressé)·

--
Linuxement,

marmotte
JID:
GPG fingerprint: 3A12 BB75 447F 6F6F FE53 C2B3 C398 3331 A277 95C6


PS: Enlevez _les_doigts_du_nez_ pour me répondre


1 2