根据hwinfo
该命令的手册页,应该转储到 /var/lib/hardware。
hwinfo --dump-db 0
但在我的 Ubuntu 服务器上,上述命令似乎没有任何作用。
这是一个错误还是一个功能?
版本:
root@foo:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
答案1
有一个类似的错误报告在 Ubuntu Launchpad 16.10 中不保存配置文件。
总之,debian 版本没有创建目录:
DIR PERMISSION
/var/lib/hardware 0755
/var/lib/hardware/udi 0755
我尝试在安装后手动创建这些目录hwinfo
,但转储数据库的命令仍然对我不起作用。
我建议提交一个错误报告。
答案2
--dump-db N
Dump hardware data base. N is either 0 for the external data
base in /var/lib/hardware, or 1 for the internal data base.
...
FILES
/var/lib/hardware/hd.ids
External hardware data base (in readable text form). Try the
--dump-db option to see the format.
/var/lib/hardware/udi
Directory where persistent config data are stored (see --save-
config option).
我读到的是hwinfo
倾销从数据库中/var/lib/hardware
,而不是转储到 /var/lib/hardware
。因此,如果 中没有内容/var/lib/hardware
,则无内容可转储。
输出strace
结果反映了这一点:
$ strace -e open hwinfo --dump-db 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libhd.so.21", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/x86_64-linux-gnu/libx86emu.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/proc/version", O_RDONLY) = 3
open("/proc/cmdline", O_RDONLY) = 3
open("/var/lib/hardware/cmdline", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/modules/4.13.0-37-generic/modules.alias", O_RDONLY) = 3
open("/var/lib/hardware/hd.ids", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/lib/hardware/ids", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
它尝试(但失败了)读 /var/lib/hardware/hd.ids
。