Muszę znaleźć wszystkie zapisywalne urządzenia pamięci masowej podłączone do danego komputera, niezależnie od tego, czy są zamontowane.
Niedokładnym sposobem na to byłoby wypróbowanie każdego wpisu, /dev
który odpowiada zapisywalnym urządzeniom (hd * i sd *).
Czy istnieje lepsze rozwiązanie, czy powinienem trzymać się tego?
Odpowiedzi:
Jeśli interesują się tylko blokowe urządzenia magazynujące, można skorzystać
lsblk
z szeroko dostępnego pakietu util-linux:Dobrze nadaje się do tworzenia skryptów z wieloma innymi dostępnymi kolumnami.
źródło
Możesz przeglądać dane wyjściowe
lshw
i wyodrębniać szczegółowe informacje na temat urządzeń w klasiedisk
lubtape
(a może innych -storage
klasa podaje szczegółowe informacje na temat kontrolerów pamięci, scsi, sata, sas itp.).na przykład
-short
Opcja daje ładny zwarty podsumowanie. np. na moim domowym serwerze / stacji roboczej / pudełku zfsonlinux (niestety nie ma urządzeń taśmowych):Urządzenia / 0/1 są w rzeczywistości czytnikiem kart USB (karta SD 2 GB jest podłączona do jednego z gniazd), a urządzenie / 0/2 to mój telefon z Androidem podłączony tylko do ładowania. Urządzenie 0/3 to pamięć flash USB o pojemności 4 GB.
lshw
może generować zwykły tekst, html, xml i json. Może także zrzucić szczegóły sprzętu do formatu bazy danych sqlite.Jest pakowany dla Debiana i większości innych dystrybucji. Strona główna i źródło znajdują się na stronie http://ezix.org/project/wiki/HardwareLiSter
źródło
Spróbuj tego polecenia
Spowoduje to wyświetlenie wszystkich blokowanych urządzeń w systemie
źródło
Możesz użyć,
lsblk
aby wyświetlić listę wszystkich urządzeń blokowych, wraz z tym, czy każde urządzenie jest tylko do odczytu.Następnie można użyć
grep
iawk
wydrukować nazwy urządzeń blokowych, które nie są tylko do odczytu:źródło
lsblk
wyświetli listę wszystkich blokowych urządzeń magazynujących.fdisk -l
wyświetli listę wszystkich partycji na wszystkich urządzeniach, które są wymienione w/proc/partitions
lshw -short
poda informacje o całym sprzęcie (z wyjątkiem być może firewire) w systemie.źródło
Jeśli, jak na swoje odpowiedzi na derobert, szukasz czegoś, wykazy Napędy taśmowe i drukarki , może być zainteresowany
lsdev
,lsusb
alspci
.źródło
fdisk -l
Możesz spróbować wykonać następujące polecenie:
źródło
Możesz użyć hwinfo, aby wyświetlić listę wszystkich dysków ( dokumentacja ).
hwinfo --block --short
daje przegląd:hwinfo --disk
podaje więcej szczegółów dla każdego dysku.Do Twojej wiadomości: w niektórych dystrybucjach Linuksa, takich jak Ubuntus 14.04 i wyższy, hwinfo nie jest obecny w oficjalnym repozytorium .
źródło
Znalazłem to
fdisk
ilsblk
nie jestem dostępny w wirtualnym terminalu dla instalatora Debiana. W tym przypadku używamblkid
, który pobiera UUID dla blokowych urządzeń magazynujących.źródło
Jeśli masz na myśli urządzenia RAID, nie będziesz w stanie uzyskać poprawnego wyniku za pomocą hdparm smartctl itp., Ponieważ tego rodzaju narzędzia szukają / dev, który jest poziomem systemu operacyjnego, jeśli chcesz wiedzieć na poziomie sprzętu, musisz mieć narzędzie takie jak megacli debugowałem za pomocą megacli
Aby uzyskać numer seryjny dysku
W powyższych wynikach Dane zapytania zawierają numer seryjny
źródło
Oto kilka poleceń, których użyłem do znalezienia pamięci lokalnej i współdzielonej.
Do lokalnego przechowywania
Do wspólnego przechowywania
źródło
loop
itmpfs
partycji. Lepiej więc wyczyścić wyjście używając grep jak wyżej.Spowoduje to wyświetlenie listy wszystkich dysków i zamontowanych napędów:
źródło