J'ai besoin de trouver tous les périphériques de stockage inscriptibles attachés à une machine donnée, qu'ils soient montés ou non .
La meilleure façon de faire cela serait d' essayer chaque entrée /dev
qui correspond à un périphérique inscriptible ( hd* and sd*
) ......
Existe-t-il une meilleure solution ou devrais-je m'en tenir à celle-ci?
Réponses:
/proc/partitions
listera tous les périphériques de bloc et les partitions que le système reconnaît. Vous pouvez ensuite essayer d'utiliserfile -s <device>
pour déterminer le type de système de fichiers présent sur la partition, le cas échéant.la source
Vous pouvez toujours faire
fdisk -l
ce qui semble fonctionner plutôt bien, même sur des configurations étranges telles que les appareils EC2 xvda.Voici un vidage pour une instance m1.large:
Alors que
mount
dit:Et
/proc/partitions
dit:Note d'accompagnement
Comment
fdisk -l
fonctionne est quelque chose que j'aimerais connaître moi-même.la source
fdisk -l
fonctionne, mais j'ai pensé que vous aimeriez le savoir: il lit/proc/partitions
puis itère à travers/sys/dev/block/*
lequel contient un ensemble de liens symboliques vers la vraie reprographie des périphériques dans sysfs. Vous pouvez trouver ces informations en courantfdisk
sousstrace
:)vous pouvez aussi essayer lsblk ... est dans util-linux ... mais j'ai aussi une question
pas de résultat
fdisk est bon mais pas si bon ... il semble qu'il ne peut pas tout "voir"
dans mon exemple particulier, j'ai un bâton qui a également un lecteur de carte intégré et je ne peux voir que le bâton en utilisant fdisk:
mais pas la carte (la carte étant / dev / sdl)
aussi, file -s est inefficace ...
c'est sympa ... MAIS
pour afficher des informations sur un disque auquel fdisk ne peut pas accéder, vous pouvez utiliser parted:
la source
ls /sys/block
la source
Utilisation de HAL (noyau 2.6.17 et supérieur):
la source
Les systèmes Linux modernes n'auront normalement que des entrées dans / dev pour les périphériques existants, donc passer par hda * et sda * comme vous le suggérez fonctionnerait assez bien.
Sinon, vous pouvez utiliser quelque chose dans / proc. D'un coup d'œil rapide là-dedans, j'aurais dit que / proc / partitions semble pouvoir faire ce dont vous avez besoin.
la source
libsysfs semble potentiellement utile, mais pas directement à partir d'un script shell. Il y a un programme qui l'accompagne appelé systool qui fera ce que vous voulez, bien qu'il puisse être plus facile de simplement regarder directement dans / sys plutôt que d'utiliser un autre programme pour le faire pour vous.
la source