2 votes

Est-ce que /dev/sda est un fichier ou un répertoire ?

Je veux formater une clé USB en exFAT, mais je veux m'assurer d'avoir le bon périphérique. Donc, j'ai décidé de vérifier le contenu de /dev/sda, où je pense que la clé USB se trouve. Cependant, lorsque j'ai essayé de faire un cd dedans, il m'a donné une erreur en disant que ce n'était pas un répertoire. J'ai donc pensé "Oh, c'est un fichier qui contient toutes les informations sur le contenu de la clé USB." Par conséquent, j'ai essayé d'utiliser Vim dessus. Mais cela m'a donné une erreur en disant que ce n'était pas un fichier!

Est-ce que /dev/sda est un fichier ou un répertoire? (De plus, y a-t-il un meilleur moyen de s'assurer que j'utilise le bon périphérique?)

3voto

Kamil Maciorowski Points 57004

/dev/sda est formellement un fichier car dans Unix/Linux presque tout est un fichier. Normalement c'est un fichier spécial de bloc associé à un périphérique de bloc. Vous pouvez appeler /dev/sda un "nœud de périphérique". Par "normalement", je veux dire "par convention", car vous pouvez créer /dev/sda comme tout autre type de fichier si vous le souhaitez; néanmoins, tout utilisateur averti s'attendra à ce qu'il s'agisse d'un fichier spécial de bloc.

Un scénario relativement courant où /dev/sdX se révèle être un fichier régulier est après qu'un utilisateur ait écrit quelque chose à ce chemin sans s'assurer qu'il existait en tant que fichier spécial au préalable. Écrire sur un chemin inexistant peut créer un fichier régulier. Comparez cette réponse à la mienne.

Ce que Vim voulait dire était que votre /dev/sda n'est pas un fichier régulier; cd vous a dit que ce n'est pas un répertoire. Il s'agit très probablement d'un périphérique spécial de bloc comme il se doit. Vous pouvez le confirmer en utilisant ls -l ou file. Exemple:

$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Oct 28 15:35 /dev/sda
$ # Ce 'b' devant indique un fichier spécial de bloc.
$
$ file /dev/sda
/dev/sda: block special (8/0)
$

y a-t-il un meilleur moyen de m'assurer que j'utilise le bon périphérique?

lsblk. Voir également comment détecter si un disque dur est externe en USB ou interne.


Vous ne pouvez pas faire cd vers /dev/sda pour voir son contenu. Le périphérique peut contenir un ou plusieurs systèmes de fichiers mais pour naviguer dans un système de fichiers, vous devez d'abord le monter. Exemple:

mount /dev/sda /mnt
# puis naviguez dans /mnt/

Cette commande exacte aura du sens s'il y a un système de fichiers sur l'ensemble du périphérique. Habituellement, il y a une table de partitions; ensuite les systèmes de fichiers résident dans des partitions référencées et montées via /dev/sda1, /dev/sda2, etc. Comparez cette question.

1voto

eastender Points 134

/dev/sda est un nom de code pour un périphérique. Vous ne pouvez pas parcourir ces noms de code. Vous ne pouvez que les monter dans un vrai dossier (par exemple /media/my-usb) et ensuite parcourir le dossier monté.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X