it-swarm-eu.dev

Nalezení všech úložných zařízení připojených k počítači se systémem Linux

Musím najít všechna zapisovatelná paměťová zařízení připojená k danému počítači, ať už jsou nebo nejsou připojena.

Jediným způsobem, jak toho dosáhnout, by bylo vyzkoušet všechny položky v /dev, které odpovídá zapisovatelným zařízením (hd * a sd *).

Existuje lepší řešení, nebo bych se měl držet tohoto?

34
warren

Pokud se zajímáte pouze o blok úložná zařízení, můžete použít lsblk z široce dostupného balíčku util-linux:

$ lsblk -o KNAME,TYPE,SIZE,MODEL
KNAME TYPE   SIZE MODEL
sda   disk 149.1G Toshiba MK1637GS
sda1  part  23.3G 
sda2  part    28G 
sda3  part  93.6G 
sda4  part   4.3G 
sr0   rom   1024M CD/DVDW TS-L632M

Je vhodný pro skriptování s mnoha dalšími dostupnými sloupci.

51
K3---rnc

Dalo by se projít výstupem lshw a extrahovat podrobnosti o zařízeních ve třídě disk nebo tape (a možná další - třída storage vám poskytuje podrobnosti o řadiče úložiště, scsi, sata, sas atd.).

např.

lshw -class disk -class tape

Možnost -short Poskytuje pěkné kompaktní shrnutí. např. na mém domovském serveru/pracovní stanici/experimentu zfsonlinux (bohužel žádná pásková zařízení):

 # lshw -třída páska -třída disk -třída skladování -short 
 H/W cesta Popis zařízení třídy 
 ================ ======================================== 
/0/100/4/0 úložiště JMB362 SATA Controller 
/0/100/5/0 scsi10 storage JMB362 SATA Controller 
/0/100/5/0/0.0.0/dev/sdc disk 120GB Patriot Wildfire 
/0/100/b/0 scsi1 úložiště SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] 
/0/100/b/0/0.0.0/dev/sdd disk 1TB WDC WD10EARS-00Y 
/0/100/b/0/0,1,0/dev/sde disk 1 TB WDC WD10EACS-00Z 
/0/100/b/0/0,2. 0/dev/sdf disk 1TB WDC WD10EACS-00Z 
/0/100/b/0/0,3,0/dev/sdg disk 1TB ST31000528AS 
/0/100/b/0/0,4 .0/dev/sdh disk 1TB ST31000528AS 
/0/100/b/0/0,5.0/dev/sdi disk 1TB ST31000528AS 
/0/100/b/0/0,6/dev/sdj disk 1TB ST31000528AS 
/0/100/11 scsi2 úložiště SB7x0/SB8x0/SB9x0 SATA Controller [režim AHCI] 
/0/100/11/0/dev/sda disk 128 GB Patriot Torqx 2 
/0/100/11/1/dev/sdb disk 1TB ST31000528AS 
/0/1 scsi11 úložiště 
/0/1/0.0.0/dev/sdk disk 1967MB SCSI disk Disk 
/0/1/0,01,1/dev/sdl SCSI Disk 
/0/1/0.0.2/dev/sdm Disk SCSI 
/0/1/Disk SCSI Disk 0.0.3/dev/sdn 
/0/2 scsi66 úložiště 
/0/2/0.0.0/dev/sdo disk SCSI Disk 
/0/3 úložiště scsi67 
/0/3/0,0.0/dev/sdp disk 4057 MB SCSI disk 
 

Zařízení/0/1 jsou ve skutečnosti čtečka karet USB (k jednomu slotu je připojena karta SD o kapacitě 2 GB) a zařízení/0/2 je moje Android je připojen telefon) Pouze pro nabíjení 0/3 zařízení je 4 GB USB flash disk.

lshw může vytvářet prostý text, html, xml a json výstup. Může také vypsat podrobnosti o hardwaru do formátu databáze sqlite.

Je zabalen pro debian a většinu dalších distros. Domovská stránka a zdroj jsou na http://ezix.org/project/wiki/HardwareLiSter

13
cas

Můžete použít lsblk k výpisu všech blokových zařízení spolu s tím, zda je každé zařízení pouze pro čtení.

Poté můžete pomocí grep a awk vytisknout jména blokových zařízení, která nejsou jen pro čtení:

lsblk -d -n -oNAME,RO | grep '0$' | awk {'print $1'}
5
Jason Hobbs

Zkuste tento příkaz

ls -l /dev /dev/mapper |grep '^b'

Zobrazí se vám seznam všech blokovacích zařízení ve vašem systému

5
Serge

lsblk zobrazí seznam všech blokových úložišť.

fdisk -l vypíše všechny oddíly na všech zařízeních, která jsou uvedena v /proc/partitions

lshw -short vám poskytne informace o veškerém hardwaru (s výjimkou snad firewire) v systému.

4
Simon Woodside

Pokud podle vaší odpovědi na derobert hledáte něco, co uvádí páskové jednotky a tiskárny, možná vás bude zajímat lsdev, lsusb a lspci.

3
colons

Můžete použít hwinfo k výpisu všech disků ( dokumentace ).

hwinfo --block --short poskytuje přehled:

disk:
  /dev/sdb             WDC WD3200AAKS-7
  /dev/sda             SAMSUNG HD103UJ
partition:
  /dev/sdb1            Partition
  /dev/sdb2            Partition
  /dev/sda1            Partition
cdrom:
  /dev/sr1             TSSTcorp DVD+-RW TS-H653B
  /dev/sr0             HL-DT-ST DVD-ROM GDRH20N

hwinfo --disk poskytuje další podrobnosti pro každý disk.

FYI: na některých distribucích Linuxu, jako je Ubuntus 14.04 a vyšší, hwinfo není přítomen v oficiálním úložišti .

2

Můžete vyzkoušet následující příkaz:

file /dev/disk/by-id/* | awk -F'/' 'NR>1{print "\047/dev/"$NF}' | sort | uniq
2
Gilles Quenot

Zjistil jsem, že fdisk a lsblk nejsou dostupné ve virtuálním terminálu pro instalační program Debianu. V tomto případě používám blkid, který získá UUID pro zařízení pro ukládání bloků.

0
ryanjdillon