列出Linux系统中的所有硬盘

25

我遇到了一个问题,无法检测我的块设备中哪个是硬盘。我的系统有一台光驱、USB驱动器和一台未知供应商/型号的单个硬盘。

有什么Linux命令、脚本或C应用程序可以用来识别硬盘?


相关:http://unix.stackexchange.com/questions/4561/how-do-i-find-out-what-hard-disks-are-in-the-system - shuttle87
3个回答

26
sudo lshw -class disk

该命令将显示系统中可用的磁盘。


有趣...我还没有听说过这个lshw程序。它是标准安装的一部分吗?我的Debian服务器没有它。我的FreeBSD安装也没有(但他要求Linux,所以BSD不算)。 - Aleks G
我的Debian系统肯定已经过时了 - 它是一年前由托管公司在专用服务器上提供的标准安装。问题是,如果标准安装不包括它,那么他就不能依赖它。 - Aleks G
3
“bash: lshw: command not found” 的意思是“在Bash终端中执行命令“lshw”,但找不到该命令”。 - Mr_and_Mrs_D
1
请编辑您的答案,加上最后两条评论。 - Mr_and_Mrs_D
对于那些几年后搜索此问题的人,我必须执行sudo lshw -class storage而不是disk。可能是因为我使用的是固态硬盘而不是机械硬盘。 - Samee
显示剩余2条评论

12

正如shuttle87所指出的那样,有几篇其他的文章回答了这个问题。我比较喜欢的解决方案是:

root# lsblk -io NAME,TYPE,SIZE,MOUNTPOINT,FSTYPE,MODEL

NAME    TYPE    SIZE MOUNTPOINT FSTYPE            MODEL
sdb     disk    2.7T                              WDC WD30EZRX-00D
`-sdb1  part    2.7T            linux_raid_member 
  `-md0 raid1   2.7T /home      xfs               
sda     disk    1.8T                              ST2000DL003-9VT1
|-sda1  part  196.1M /boot      ext3              
|-sda2  part  980.5M [SWAP]     swap              
|-sda3  part    8.8G /          ext3            
|-sda4  part      1K                              
`-sda5  part    1.8T /samba     xfs               
sdc     disk    2.7T                              WDC WD30EZRX-00D
`-sdc1  part    2.7T            linux_raid_member 
  `-md0 raid1   2.7T /home      xfs               
sr0     rom    1024M                              CDRWDVD DH-48C2S

参考资料:


1
如果您有一组可能的块设备列表,那么文件 /sys/block/[blockdevname]/removable 将包含“1”(表示该设备是可拆卸的)或者“0”(表示不可拆卸)。

一个外置USB硬盘是可移动的,但你仍然可以从它启动系统,所以在这种情况下,检查“可移动”可能不足够。 - Aleks G
是的,我明白。稍微读懂一些隐含信息,我猜测楼主想要将安装程序放在(内置的,无法移除的)硬盘上,而不是重新格式化已插入的 USB 设备(可能是因为安装程序就在其中)。 - janneb
USB闪存和USB硬盘之间存在区别。例如,在Windows上,它们甚至会显示不同的图标。如果他担心重新格式化安装USB闪存,他可能可以明确从列表中删除该特定设备。他知道自己执行程序的路径,因此只需检查/ etc / mtab以获取相应设备,并将其从列表中排除即可。 - Aleks G
嗯,无论如何,回到主题上来,我的观点是,对于一个根据OP的规格具有CD-ROM驱动器、USB键和单个硬盘的系统,按照我所解释的检查可移动属性可能是解决问题的一种方法。 - janneb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接