我需要知道哪些硬盘可用,包括未安装和可能未格式化的硬盘。我在dmesgor 中找不到它们/var/log/messages(太多了,无法滚动浏览)。我希望有一种方法可以使用/dev或/proc找出这些信息,但我不知道如何。我正在使用 Linux。
我知道用于将标签附加到磁盘分区的 e2label 和朋友程序,例如
e2label /dev/sda1 bla
Run Code Online (Sandbox Code Playgroud)
我想做的是不同的事情:我想为硬盘创建一个标签,即 /dev/sda,而不是分区。
这是可能的,如果是,如何?
编辑:背景:在有多个 HD 托架的情况下,我想在物理托架的门上贴上(纸质)标签,并在逻辑上将相同的标签贴在我放在那里的磁盘上。
EDIT2:这是关于 Ubuntu Linux 12.04 服务器。
EDIT3:在 GPT 分区上还有 partlabel,可以用例如 parted 设置。见https://serverfault.com/q/681088/76442
WWN =全球通用名称
它有“序列号”,9WJxxxxx,它是八个字符。它的 WWN 5000C5002E47xxxx 是 16 个字符。两者都印在硬盘驱动器的标签上。
它有 12 个字符的“序列号”WMC5D0Dxxxxx。它有 16 个字符的 WWN 50014EE003Fxxxxx。
它有“序列号”KWJTxxx,也是八个字符。它有 WWN……我不知道;它没有打印在标签上,也没有插入系统进行查找。
对于库存,我们通常会记下并跟踪以下内容,这些内容始终可以从驱动器上的标签中收集:
当库存表显示任何硬盘驱动器时,问题显然会在 1、2、3 年后出现。您非常确定它在正在运行的服务器中,但您不想关闭服务器以拉动硬盘驱动器来读取标签。
如何获得与标签上的内容相对应的驱动器序列号?
udevadm info --query=all --name=/dev/sda有ID_SERIAL,但那是 WWN。我们不希望另一个字段将 WWN 的 16 个字符作为标识符进行跟踪……而且我已经讨厌写下 WD 驱动器的长序列号。
Linux中有没有办法提取驱动器的序列号?
我相信这是可能的,因为多年前我们一直使用的 RAID 存储管理器 GUI …
在我的系统 (Debian) 上,我可以看到UUID所有磁盘分区的标识符(即/dev/sda1, dev/sda2, ..)
ls /dev/disk/by-uuid/
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到自己的UUID标识符/dev/sda。是否可以引用整个磁盘UUID?
我需要这个是因为我想引用一个特定的磁盘,我不能相信它会被调用/dev/sda。
@don_crissti 建议的解决方案很棒。但是,我希望相同型号/制造商的所有硬盘的 UUID 相同,而不是序列号唯一。
使用udevadm,我可以看到磁盘属性:
udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....
Run Code Online (Sandbox Code Playgroud)
如何UUID从这些属性生成 a ,以便相同的 Model/Manufacturer 磁盘将具有相同的UUID?
我正在尝试自动使用shred并将输出放入日志文件中。目前我正在使用手动复制序列号
hdparm -I /dev/sd? | grep 'Serial\ Number'
Run Code Online (Sandbox Code Playgroud)
我知道有一种方法可以只grep给我数字而不是它前面的“序列号”文本,但我不知道如何。有人知道 reg 表达式可以帮助我吗?