dmesg
或/var/log/messages
中找不到它们(滚动太多)。我希望有一种使用/dev
或/proc
的方法来查找此信息,但我不知道如何。我正在使用Linux。#1 楼
这是高度依赖平台的。同样,不同的方法可能会以不同的方式对待边缘情况(各种“假”磁盘,RAID卷等)。在现代udev安装中,
/dev/disk
子目录中有指向存储介质的符号链接,您可以通过序列号(/dev/disk/by-id/
),UUID(/dev/disk/by-uuid
),文件系统标签(/dev/disk/by-label/
)或硬件连接性(/dev/disk/by-path/
)或磁盘来查找磁盘或分区。在Linux 2.6下,每个磁盘和分区磁盘状设备在
/sys/block
中具有一个条目。自Linux诞生以来,磁盘和分区在/proc/partitions
中列出。另外,您也可以使用lshw:lshw -class disk
。Linux还提供了
lsblk
实用程序,该实用程序显示了存储卷的漂亮树形视图(因为util-linux 2.19,在带有BusyBox的嵌入式设备上不存在)。 br /> 如果您有
fdisk
或disklabel
实用程序,它可能会告诉您它可以在哪些设备上工作。您会在Windows上找到许多Unix变体的实用程序名称。用于Unix的Rosetta Stone,特别是“列出硬件配置”和“读取磁盘标签”行。
评论
噢!罗塞塔石碑网站非常棒
– Michael Mrozek
2010-12-04 15:22
sudo lshw -class磁盘使我的生活变得简单而直观。
–JoãoPimentel Ferreira
20-08-22在11:07
#2 楼
lsblk
将列出所有块设备。它很适合脚本编写:$ lsblk -io 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
lsblk
存在于util-linux软件包中,因此比拟议的替代品更通用。评论
如果只需要物理磁盘,请使用lsblk -d,-d表示未列出任何依赖项消息。
–合作伙伴
2015年4月1日在8:09
确实=)$ lsblk -ido KNAME,TYPE,SIZE,MODEL(util-linux的一部分,它是Arch的一部分)会立即提供所请求的信息,而无需成为root用户。请注意,它提供了设备模型,而不是模型系列。 Skippy建议使用smarctl -i / dev /
–tuk0z
2015年9月3日下午13:47
#3 楼
lshw -class disk
怎么样
评论
不错...下车时我会仔细检查,我确定它能正常工作...很不幸,服务器上未安装(lshw),我怀疑答案是我们没有安装它。
– xenoterracide
2010年12月6日在8:23
由于某些原因,lshw不会列出硬盘。
–Andrévan Schoubroeck
13年11月6日,0:44
如果不以root用户身份运行,则不会列出任何磁盘,但也不会出错。
– Volker Siegel
2014年7月1日在11:26
bash:lshw:找不到命令
–安东尼
17年1月25日在18:51
跳过NVMe SSD
–陆even
19年11月14日在4:21
#4 楼
hwinfo
帮助:> hwinfo --disk
21: IDE 00.0: 10600 Disk
[Created at block.245]
Unique ID: 3OOL.8MZXfAWnuH8
Parent ID: w7Y8.1T_0outZkp6
SysFS ID: /class/block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "Hitachi HTS54322"
Vendor: "Hitachi"
Device: "HTS54322"
Revision: "ESBO"
Driver: "ahci", "sd"
Driver Modules: "ahci"
Device File: /dev/sda
Device Files: /dev/sda, /dev/disk/by-id/ata-Hitachi_HTS543225A7A384_E2021342GEPG4J, /dev/disk/by-id/scsi-SATA_Hitachi_HTS5432_E2021342GEPG4J, /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x5000cca614c6395e
Device Number: block 8:0-8:15
BIOS id: 0x80
Geometry (BIOS EDD): CHS 484521/16/63
Size (BIOS EDD): 488397168 sectors
Geometry (BIOS Legacy): CHS 1023/255/63
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #17 (SATA controller)
> hwinfo --block --short
disk:
/dev/sda Hitachi HTS54322
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda3 Partition
/dev/sda4 Partition
/dev/sda5 Partition
#5 楼
@Giles说,这高度依赖平台。这是一个这样的例子。我正在运行CentOS 5.5系统。该系统有4个磁盘和3ware RAID控制器。在我的情况下,
lshw -class disk
,cat /proc/scsi/scsi
和parted --list
显示RAID控制器(3ware 9650SE-4LP)。这不会显示实际的磁盘:仅显示提供/ dev / sda卷的3ware RAID控制器:
# lshw -class disk
*-disk
description: SCSI Disk
product: 9650SE-4LP DISK
vendor: AMCC
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: AMCC Model: 9650SE-4LP DISK Rev: 4.06
Type: Direct-Access ANSI SCSI revision: 05
# parted --list
Model: AMCC 9650SE-4LP DISK (scsi)
Disk /dev/sda: 2000GB
在为了查看下面的磁盘,我不得不从3ware安装tw_cli实用程序,并询问控制器本身。
# tw_cli info c0
...
VPort Status Unit Size Type Phy Encl-Slot Model
------------------------------------------------------------------------------
p0 OK u0 931.51 GB SATA 0 - WDC WD1002FBYS-02A6
p1 OK u0 931.51 GB SATA 1 - WDC WD1002FBYS-02A6
#6 楼
我正在运行fedora 14,此处不提供lshw
(至少默认情况下不可用)。但是,就我而言,我使用fdisk -l
命令(以root用户身份)获得以下输出:Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a697
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 16777215 7875584 8e Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/dm-0: 6509 MB, 6509559808 bytes
255 heads, 63 sectors/track, 791 cylinders, total 12713984 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 1543 MB, 1543503872 bytes
255 heads, 63 sectors/track, 187 cylinders, total 3014656 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/dm-1 doesn't contain a valid partition table
评论
使用fdisk -l / dev / sd?还是fdisk -l / dev / hd?避免带入dm设备。
–laebshade
2012年2月11日在23:23
#7 楼
由于这两个“我可以看到已安装的硬盘吗?”和“如何确定存储设备的品牌和型号?”被标记为该问题的重复项,我很惊讶没有人提到hdparm
和smartctl
。看看几台机器,似乎它们中的任何一个(当不是同时出现时)都已经发现已经安装在标准(甚至旧的)Linux发行版中。# smartctl -i /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-3.9.9-301.fc19.i686.PAE] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Toshiba 2.5" HDD MK..56GSY
Device Model: TOSHIBA MK1656GSY
Serial Number: 60PKT43CT
LU WWN Device Id: 5 000039 2919874b6
Firmware Version: LH013D
User Capacity: 160 041 885 696 bytes [160 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Mon Jul 22 11:13:37 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
# hdparm -i /dev/sda
/dev/sda:
Model=TOSHIBA MK1656GSY, FwRev=LH013D, SerialNo=60PKT43CT
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
* signifies the current active mode
与往常一样,请查看联机帮助页以获取更多选项。
评论
应该注意的是,smartctl方式甚至可以对Cygwin +1起作用!只需遍历可能的设备名称,然后查看smartctl是否返回驱动器支持SMART的信息。
– AdrianFrühwirth
2013年9月12日12:35
#8 楼
我在其他SE答案中发现inxi
工具非常方便:inxi -Dxx
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
#9 楼
sfdisk -l
将为您提供有关硬件/物理磁盘的详细信息,即使未安装它们也是如此。您必须是root用户才能使用它。
#10 楼
列出的许多命令将帮助您查找系统在启动时已识别的磁盘。使用现代驱动器,您可能会发现自己正在寻找在机器启动和运行时插入的东西(我确实这样做过)。我喜欢来自http://fredericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/的建议:尝试重新扫描SCSI主机(每个SATA端口显示为SCSI总线):
echo“ 0 0 0”> / sys / class / scsi_host / host / scan
>
...然后,您可以使用fdisk之类的Linux实用工具向您显示有关找到的磁盘的信息。
#11 楼
这对我有用:fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print }' | sed -e 's/://g'
#12 楼
sudo gparted
将在GUI中显示所有这些信息。(您未指定需要在终端中执行此操作,所以我想知道为什么缺少此解决方案。)
#13 楼
另一种解决方案lsblk | grep disk
我的情况下的输出:
sda 8:0 0 1,8T 0 disk
sdb 8:16 0 931,5G 0 disk
您可以看到,我有两个物理磁盘。
与
fdisk
或sfdisk
相反,您没有不需要root权限才能运行它。评论
较干净的方法是使用lsblk --nodeps。 (添加--noheadings即可准确获取您的输出。)
–马丁
20/09/13在22:48
#14 楼
恕我直言,lsblk是Linux世界中最广泛使用的命令(甚至在Raspbian等端口上也可以使用)。我并不是要冒犯任何人,但是有些命令需要您明确知道要查找的设备名称。例如,您应该知道存在用于运行smartctl的sdc。就是说,lsblk不是通用的-在Solaris上是,但不是hpux。谢谢。评论
除了提到lsblk在Solaris上也可用之外,它没有添加比两个投票最多的答案更多的信息。最好将其发布为unix.stackexchange.com/a/94211/22812的评论
– Anthony Geoghegan
17年11月30日在12:30
#15 楼
要返回块设备的数量,没有精美的工具,也不需要晦涩的语法或参数:
ls /sys/block/* | grep block | grep sd | wc -l
在我的本地测试案例中,
47
是我最大的战争-机器和笔记本电脑上的1
。评论
在我的一个系统(Ubuntu 12.04)上,这减少了500%,在另一个系统上,这减少了200%。
–安东
2014年4月7日在12:03
问题不是“块设备的数量”。
–于尔根·艾哈德(JürgenA. Erhard)
20年1月22日在12:36
评论
最初的问题没有指定任何特定的unix变体,并且硬件管理显然高度依赖变体。@gilles是的,当我写它的时候我还在工作,所以我回到家并想一想后就澄清了。
根据您的工作,使用udisk。
我找到了一个有用的页面,该页面描述了许多常见的硬件命令以及在Google上的搜索。磁盘驱动器包括lshw(列表硬件),hwinfo(硬件信息),lsscsi(列表scsi设备),lsusb(列表usb总线/设备),lsblk(列表块设备),fdisk -l和mount。有关更多信息,请访问binarytides.com/linux-commands-hardware-info。