답변:
물론, dpkg알고 있는지 확인 하십시오.
먼저 실행중인 커널 버전을 확인하십시오.
uname -a
Linux orwell 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
그런 다음 데이터베이스 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
또는 패키지 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
마지막으로 데비안 아카이브에이 패키지가 포함되어 있는지 확인하십시오.
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
그렇지 않은 경우 사용자 정의 패키지입니다. 물론 dpkg가 이미지 파일을 모른다면 커널은 패키지의 일부가 아니지만 로컬로 컴파일 된 것입니다.
참고 apt 수 데비안 아카이브에 패키지와 동일한 이름의 로컬로 컴파일 된 하나의 차이를 말한다. 패키지의 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
apt-cache show ...작동합니다. 내가 잘못 입력 한 것을 봅니다. 지금 수정 중입니다.
최소한, uname -r같은 커널 버전을 제공합니다 3.18.6. 그러나 커널이 컴파일 될 때 추가 문자열을 구성하고 이에 연결할 수 있으며 배포판은 일반적으로 (대시 후) 자체 패치 수준 및 풍미를 나타 내기 위해이를 수행합니다 3.18.6-32-generic. 그것은 하나의 단서입니다. 사용자 정의 커널을 만들 때 분명히 자신의 문자열을 사용하는 것은 다른 것일 수 있습니다.
uname -v 기본적으로 다음과 같은 문자열을 제공합니다
#4 SMP PREEMPT Mon Mar 9 13:55:25 EDT 2015
이 수는 트리를 재설정하지 않고 특정 소스 트리를 사용하여이 커널을 빌드 한 횟수라는 점에서 임의적입니다. 이는 사용자가 직접 빌드 할 때 유용 할 수 있습니다. 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: -
어느 것이와 거의 일치합니다 Mon Mar 9 13:55:25 EDT 2015.
다른 것과 동일
sudo apt-cache policy linux-generic
패키지 관리자를 통해 설치된 버전이며
uname -r
버전을 비교
나를 위해
linux-generic:
Installed: 3.19.0.15.14
Candidate: 3.19.0.15.14
과
3.19.0-15-generic
같은 버전을 나타내는
/boot. 내 요점은 uname일부 옵션을 변경하는 동안 다시 컴파일하면 출력이 변경되는 이유를 알 수 없다는 것 입니다. 이 경우, 나는 그것을 기대 apt-cache하고 uname -r로컬로 다시 컴파일 한 사실에도 불구하고, 동일한 정보를 반환합니다.
나는 가장 일반적으로 진정한 대답은 "아니오, 당신은 할 수 없다"고 말할 것입니다. 특정 경우에 도움이 될 수있는 다양한 방법이 있으며 이러한 방법은 이미 제안되었지만 이러한 상황이 실제로 어떻게 이루어 졌는지를 놓치는 것 같습니다. 사실, 커스텀 커널을 사용한다면, 그 커널은 존재를 숨기거나 다른 커널 인 것처럼 보이는 것을 포함하여 무엇이든 할 수 있습니다.
실제로 사용자 정의 커널을 실행하고 있고 이것을 모른다면 걱정할 것입니다. 어떤 커널이 사용되고 있는지 아는 유일한 확실한 방법은 컴파일하고 설치할 커널을주의 깊게 추적하는 것입니다.
시스템이 어떤 커널을 실행하고 있는지 또는이 커널이 어느 소스에서 만들어 졌는지 또는 어디에서 왔는지 확실하지 않다면 알려진 좋은 이미지에서 OS를 다시 설치하고 향후 어떤 커널을 시도하고 부팅하는지 더 신중하게 고려해야합니다. 에서 또는 사용합니다.