我遇到了 udev 规则未运行的问题。下面是一个例子:
我有一个规则/etc/udev/rules.d/99-test.rules
,其中包含:
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", RUN+="/sayhi"
Run Code Online (Sandbox Code Playgroud)
并且sayhi
只有:
#!/bin/bash
date +"%Y-%m-%d %H:%M:%S,%3N" >> /saidhi
Run Code Online (Sandbox Code Playgroud)
这是一台英特尔机器,我显然有许多供应商 0x8086 PCI 设备:
root@imtrobot:~# lspci -n |grep 8086
00:00.0 0600: 8086:2770 (rev 02)
00:02.0 0300: 8086:2772 (rev 02)
00:1d.0 0c03: 8086:27c8 (rev 01)
[ etc. 12 lines total ]
Run Code Online (Sandbox Code Playgroud)
然而,当我启动时,/saidhi
要么根本不创建,要么里面有 1 或 2 个日期行。
如果在启动后,我运行udevadm trigger --action=add --subsystem-match=pci
然后 /saidhi
将获得添加到它的正确数量的日期。
为什么这在启动过程中不起作用?
我配置的一些机器有一个单独的/dev/sdb
用于/home
,而一些只有一个磁盘。
有没有一种方法可以设置 preseed,以便如果/dev/sdb
存在,它会使用 100% 的 for /home
,但如果没有,它会在/home
上进行分区/dev/sda
?
15 年前,GoBack出现,它允许 Windows 用户恢复更改并将计算机恢复到以前的状态。它通过在操作系统下面强加一个日志系统来做到这一点——在块级别,而不是文件级别——并让你回滚更改。
Linux 有类似的东西吗?在 VirtualBox 中很容易做到这一点,但我希望这适用于我的主要顶级机器。
让虚拟机成为普通机器有多容易?怎么办呢?
假设我有一个包列表:
foo
libfoo
bar
baz
quux
Run Code Online (Sandbox Code Playgroud)
并假设foo
需要libfoo
和bar
,并且baz
需要quux
。
我想要一种方法来放入那个列表,然后取出这个列表:
foo
baz
Run Code Online (Sandbox Code Playgroud)
即 - 我想要安装的最小包列表 - 在依赖解析后 - 导致安装整个包列表。
我的印象是它source
是.
bash的同义词。但是,似乎在.profile
文件中,source
不起作用。该 youtube 视频演示了当source
用于~/.profile
获取文件时foo
,该文件中定义的变量不会导出到后续 shell。但是,如果文件是使用 获取的.
,则变量将按预期导出。
请注意,当我使用时source
,环境变量不会被导出,但是当我使用.
它时。
apt ×1
backup ×1
bash ×1
deb ×1
dependencies ×1
partitioning ×1
preseed ×1
snapshot ×1
udev ×1