byt*_*ire 10 ubuntu linux-kernel
以Ubuntu为例,我们能否判断内核是否是自定义编译的,而不是发行版自带的?
Fah*_*tha 13
当然,只是检查是否dpkg知道它。
首先检查您正在运行的内核版本。
uname -a
Linux orwell 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
然后告诉dpkg在dpkg数据库中搜索内核映像文件。
dpkg -S /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64
Run Code Online (Sandbox Code Playgroud)
或者,更好地,dlocate从dlocate包中使用。dlocate首先从dpkg数据库构建一个缓存,并使用它。所以它很快。
dlocate /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64
Run Code Online (Sandbox Code Playgroud)
最后,检查 Debian 档案是否包含这个包。
apt-cache policy linux-image-3.2.0-4-amd64
linux-image-3.2.0-4-amd64:
Installed: 3.2.68-1+deb7u1
Candidate: 3.2.68-1+deb7u1
Version table:
*** 3.2.68-1+deb7u1 0
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
100 /var/lib/dpkg/status
3.2.65-1 0
500 http://httpredir.debian.org/debian/ wheezy/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)
如果他们不这样做,那么它是一个自定义包。当然,如果 dpkg 不知道映像文件,那么您的内核根本不是包的一部分,而是已在本地编译。
请注意,这apt 可以区分 Debian 存档中的软件包和本地编译的同名软件包之间的区别。我认为它会检查包的 md5sum,但我忘记了它是如何执行的详细信息。二进制包包含有关哈希的信息apt-cache show linux-image-3.2.0-4-amd64,例如,请参见 的底部。例如
Package: linux-image-3.2.0-4-amd64
Source: linux
Version: 3.2.68-1+deb7u1
Installed-Size: 105729
[...]
Size: 23483788
MD5sum: f9736f30f8b68ae79b2747d8a710ce28
SHA1: 64bfde903892801dccd04b52b12316901a02cd96
SHA256: 775814b3eff4a964b593c0bdeaac20587a4e3ddb1257a9d2bfcf1e9d3b9bfd15
Run Code Online (Sandbox Code Playgroud)
至少,uname -r将提供内核版本,例如3.18.6. 但是,在编译内核时,可以在其中配置附加字符串并将其附加到该字符串中,发行版通常会这样做以指示他们自己的补丁级别(在破折号之后)和风格,例如3.18.6-32-generic. 这是一个线索;显然,在创建自定义内核时使用自己的字符串可以是另一个。
uname -v 给出一个字符串,默认情况下是这样的
#4 SMP PREEMPT Mon Mar 9 13:55:25 EDT 2015
Run Code Online (Sandbox Code Playgroud)
这个数字是任意的,因为它是使用特定源树构建内核而不重置树的次数——这在您构建自己的时可能很有用。 SMP表示多任务(即,非实时)内核,而 PREEMPT 是另一个与调度程序的“抢占模型”相关的配置选项。但这里的重要线索可能是它的建造时间。这可用于匹配内核本身的修改/更改时间戳,记住可以更改,例如,使用touch. 例如,stat在那个内核上看起来像这样:
File: ‘3.19-goldilocksSpecial’
Size: 6858880 Blocks: 13400 IO Block: 4096 regular file
Device: 801h/2049d Inode: 3156605 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-02-15 15:32:29.000000000 -0500
Modify: 2015-03-03 13:55:21.000000000 -0500
Change: 2015-03-03 14:02:26.767045553 -0500
Birth: -
Run Code Online (Sandbox Code Playgroud)
这与Mon Mar 9 13:55:25 EDT 2015.
| 归档时间: |
|
| 查看次数: |
2601 次 |
| 最近记录: |