시스템에 어떤 하드 디스크가 있는지 어떻게 알 수 있습니까?


223

마운트되지 않았거나 포맷되지 않은 하드 디스크를 포함하여 사용 가능한 하드 디스크를 알아야합니다. 나는 그들을 찾을 수 dmesg없거나 /var/log/messages(너무 많이 스크롤 할 수 없습니다 ). 이 정보 를 사용 /dev하거나 /proc찾을 수 있는 방법이 있기를 바랍니다 . 그러나 방법을 모르겠습니다. Linux를 사용하고 있습니다.


원래 질문은 특정 유닉스 변형을 지정하지 않았으며 하드웨어 관리는 분명히 변형에 따라 다릅니다.
Gilles

@gilles 네, 제가 글을 쓸 때 직장에 있었기 때문에 집에 돌아와서 생각해 보았습니다.
xenoterracide

1
당신이하고있는 것에 따라 udisks .
derobert

2
Google에서 검색 할 때 많은 일반적인 하드웨어 명령을 설명하는 유용한 페이지를 찾았습니다. 디스크 드라이브에는 lshw(하드웨어 목록), hwinfo(하드웨어 정보), lsscsi(목록 scsi 장치), lsusb(USB 버스 / 장치 lsblk목록 ), (블록 장치 목록) fdisk -lmount. binarytides.com/linux-commands-hardware-info 에서 자세한 내용을 확인하십시오 .
Edward

답변:


182

이것은 플랫폼에 따라 다릅니다. 또한 다른 방법으로 엣지 케이스를 다르게 처리 할 수 ​​있습니다 (다양한 종류의 "가짜"디스크, 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있습니다. 새벽부터 리눅스에서는 디스크와 파티션이에 나열되어 /proc/partitions있습니다. 또는 lshw :를 사용할 수 있습니다 lshw -class disk.

Linux는 또한 lsblk저장소 볼륨의 멋진 트리 뷰를 표시하는 유틸리티를 제공합니다 (Utily Linux 2.19부터 BusyBox가있는 내장형 장치에는 없음).

fdisk또는 disklabel유틸리티 가있는 경우 작동 할 수있는 장치를 알려줄 수 있습니다.

Rosetta Stone for Unix , 특히 "목록 하드웨어 구성"및 "디스크 레이블 읽기"행 에서 많은 유닉스 변형에 대한 유틸리티 이름을 찾을 수 있습니다.


11
우우; Rosetta Stone 사이트는 훌륭합니다
Michael Mrozek

146

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 패키지에 존재하므로 제안 된 대안보다 훨씬 보편적입니다.


9
물리 디스크 만 필요한 경우을 사용 lsblk -d하면 -d종속성 메시지가 표시되지 않습니다.
coanor

2
실제로 =) $ lsblk -ido KNAME,TYPE,SIZE,MODEL( util-linux그중 일부는 baseArch의 일부 임 )는 루트가 될 필요없이 요청 된 정보를 즉시 제공합니다. 모델 제품군이 아닌 장치 모델을 제공합니다 . Skippy의 조언을 받았습니다 : 예 : "모델 제품군 : Seagate Barracuda 7200.12"(lsblk -ido에서 누락 : "disk 465,8G ST3500418AS"). smarctl -i /dev/<device>
tuk0z

68

어때요?

lshw -class disk

3
나쁘지 않습니다 ... 하차 할 때 다시 확인하고 작동하는지 확신합니다 ... 불행히도 lshw서버에 ( )이 설치되지 않았으며 설치하지 않을 것입니다.
xenoterracide

어떤 이유로 lshw는 하드 디스크를 나열하지 않습니다.
André van Schoubroeck가

2
루트로 실행하지 않으면 디스크가 나열되지 않고 오류도 표시되지 않습니다.
Volker Siegel

1
bash : lshw : 명령을 찾을 수 없음
Antoine

26

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

19

@Giles는 이것이 플랫폼에 따라 다르다고 말합니다. 다음은 그러한 예입니다.

CentOS 5.5 시스템을 실행하고 있습니다. 이 시스템에는 4 개의 디스크와 3ware RAID 컨트롤러가 있습니다.

내 경우에는 lshw -class disk, cat /proc/scsi/scsiparted --listRAID 컨트롤러 (3웨어 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 

13

모두 "이후 내가 HDD 내가? 설치되어있는 것을 볼 수 및" " 어떻게 내 저장 장치의 제조업체 및 모델을 결정합니까? "이 질문의 중복으로 표시되어, 나는 놀랐어요 아무도 언급하지 hdparm하고 smartctl. 몇 대의 머신을 살펴보면, 두 머신 중 하나 (둘 다가 아닌 경우)가 표준 (이전의) 리눅스 배포판에 이미 설치되어있는 것으로 보입니다.

# 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에서, 하나에서 작동합니다! 가능한 장치 이름을 반복 smartctl하고 드라이브가 SMART를 지원 하는지 반환 하십시오 .
Adrian Frühwirth

12

나는 fedora 14를 실행 중이며 lshw여기서는 사용할 수 없습니다 (적어도 기본적으로는 아닙니다). 그러나 필자의 경우 fdisk -lroot 사용자로 command를 사용 하여 다음과 같은 출력을 얻었습니다.

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

5

다른 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

3

나열된 많은 명령은 부팅시 시스템에서 이미 인식 한 디스크를 찾는 데 도움이됩니다. 최신 드라이브를 사용하면 기계가 작동 중일 때 삽입 한 것을 찾고 자신을 찾을 수 있습니다. 나는 http://fredericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/ 의 조언을 좋아합니다 .

SCSI 호스트를 다시 스캔하려면 이것을 시도하십시오 (각 SATA 포트는 SCSI 버스로 나타남).

에코 "0 0"> / sys / class / scsi_host / host / scan

... fdisk와 같은 Linux 유틸리티를 사용하여 발견 된 디스크에 대한 정보를 표시 할 수 있습니다.


3
sfdisk -l  

마운트되지 않은 하드웨어 / 물리 디스크에 대한 자세한 정보를 제공합니다.

이 프로그램은 내가 사용한 모든 Linux 변형에 사전 설치되어 있지만 사용하려면 루트 여야합니다.


2

이것은 나를 위해 일했다 :

fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g'

1

sudo gparted 이 모든 것을 GUI에 표시합니다.

(단말기 내에서 수행해야한다고 지정하지 않았 으므로이 솔루션이 누락 된 이유가 궁금합니다.)


-1

멋진 도구 나 구문이나 매개 변수를 모호하게하지 않고 블록 장치 수 를 반환하려면 :

 ls /sys/block/* | grep block | grep sd | wc -l

내 로컬 테스트 사례, 47가장 큰 전쟁 기계 및 1랩톱에서.


2
내 시스템 중 하나 (Ubuntu 12.04)에서는 500 %, 다른 시스템에서는 200 % 떨어져 있습니다.
Anthon

-1

IMHO, lsblk는 Linux 세계에서 가장 널리 사용되는 명령입니다 (Raspbian과 같은 포트에서도 작동). 다른 사람을 화나게하는 것은 아니지만, 장치 이름을 명시 적으로 찾아서 찾아야하는 명령이 있습니다. 예를 들어 smartctl을 실행하려면 sdc의 존재를 알고 있어야합니다. 즉, lsblk는 보편적이지 않습니다-예, 그러나 Solaris에서는 hpux는 아닙니다. 감사.


2
lsblk솔라리스에서도 사용 가능 하다는 언급 외에는, 두 개의 가장 인기있는 답변보다 더 많은 정보를 추가하지 않습니다. 이것은 더 나은에 주석으로 게시 될 것입니다 unix.stackexchange.com/a/94211/22812
안토니 문헌 [Geoghegan을
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.