在 Ubuntu 下查找硬盘信息

在 Ubuntu 下查找硬盘信息

Ubuntu 启动几天后,有什么可靠的方法可以查看硬盘信息吗?

$ uptime 
 21:18:59 up 15 days, 10:46, 11 users,  load average: 1.01, 0.82, 0.65

我知道通常可以在重启时从获取硬盘信息dmesg,但我的系统仅启动了 15 天,我已经丢失了该信息。

FreeBSD 查找所有已安装的硬盘信息说检查/var/run/dmesg.boot文件。Linux 命令查找 SATA说要检查一个名为的日志文件/var/log/messages。但在我的 Ubuntu 下,我没有这些文件:

# Run as root,

% ls /var/run/dmesg.boot || echo no found
ls: cannot access /var/run/dmesg.boot: No such file or directory
no found

& ls /var/run/dmesg* || echo no found
ls: cannot access /var/run/dmesg*: No such file or directory
no found

% ls /var/log/me* || echo no found
ls: cannot access /var/log/me*: No such file or directory
no found

% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.04
Release:        15.04
Codename:       vivid

# and I've also checked:
% cat /var/log/dmesg 
(Nothing has been logged yet.)

% grep -i ata /var/log/boot.log 
         Starting Increase datagram queue length...
[  OK  ] Started Increase datagram queue length.
         Starting Tell Plymouth To Write Out Runtime Data...
[  OK  ] Started Tell Plymouth To Write Out Runtime Data.

我的syslog说我的有问题ata2,但是,由于 Linux/Ubuntu 总是交换磁盘顺序,我想确切地知道我的 3 个驱动器中哪一个是ata2。谢谢。

答案1

这取决于您要搜索的信息类型。正确的方法是使用

udevadm info -a -n /dev/sda

这将返回所有udev已包含的信息。如果您想要分区表,

parted /dev/sda

并且p(对于打印)将显示分区表。如果您想查看 MBR(如果你有一个),那么

dd if=/dev/sda of=mbr.bin bs=512 count=1
hexdump -C mbr.bin

如果你希望在当前会话中生成消息(包括错误消息),那么

dmesg | grep sda

或类似的东西。dmesg显示存储在 中的消息/var/log/dmesg。当然,除非您使用systemd,在这种情况下上述命令仍然有效,但您可以按如下方式显示内核消息:

sudo journalctl | grep sda

sudo很重要,如果省略它,您将只显示用户日志,而不是内核的日志)。

或者,您可以通过以下方式查询磁盘的常规信息

lshw -C disk

或者您可以使用dmidecode(在较新版本的 Linux 上不可用),它允许您访问 BIOS 中显示的硬件(或更确切地说,在 SMBIOS,系统管理 BIOS 中)。请注意,这不会扫描您的系统,而只是报告 BIOS 所说的您的 PC 的情况。

如果这还不够,你可能不得不求助于诊断工具,例如smartctl

答案2

以 root 身份:

hdparm -i /dev/XXX 将告诉您磁盘的几何形状。

smartctl -i /dev/XXX 将告诉您类似的信息以及磁盘状态。

相关内容