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?
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.
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
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'}
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
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.
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
.
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 .
Můžete vyzkoušet následující příkaz:
file /dev/disk/by-id/* | awk -F'/' 'NR>1{print "\047/dev/"$NF}' | sort | uniq
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ů.