Linux çekirdeğimin dağıtımın aksine özel (yani derlenmiş) olup olmadığını söylemek mümkün müdür?


Yanıtlar:


13

Elbette, dpkgbunu bilip bilmediğini kontrol et.

İlk önce çalıştırdığınız çekirdek sürümünü kontrol edin.

uname -a
Linux orwell 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux

Sonra veritabanındaki dpkgçekirdek görüntü dosyasını aramasını söyleyin dpkg.

dpkg -S /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64

Ya da, daha iyi kullanmak dlocategelen dlocatepaketin. dlocateönce dpkgveritabanından bir önbellek oluşturur ve bunu kullanır. Bu yüzden hızlı.

dlocate /boot/vmlinuz-3.2.0-4-amd64
linux-image-3.2.0-4-amd64: /boot/vmlinuz-3.2.0-4-amd64

Son olarak, Debian arşivlerinin bu paketi içerdiğini kontrol edin.

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

Eğer yapmazlarsa, o zaman özel bir pakettir. Tabii ki, dpkg görüntü dosyasını bilmiyorsa, çekirdeğiniz bir paketin parçası değildir, ancak yerel olarak derlenmiştir.

Not apt olabilir Debian arşivinde bir paket ve aynı adı taşıyan bir derlediğim arasındaki farkı anlatmak. Bence paketin md5sum'unu kontrol ediyor, ama bunu nasıl yaptığının ayrıntılarını unutuyorum. İkili paketler karmalar hakkında bilgi içerir apt-cache show linux-image-3.2.0-4-amd64, örneğin altına bakın . Örneğin

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

1
Lütfen exussum'un cevabı hakkındaki yorumlarıma bakın. Aynı çekirdeği farklı seçeneklerle yeniden birleştirirseniz, ancak başka bir ad vermezseniz ne olur?
terdon

@terdon bkz. düzenlemeler.
Faheem Mitha

2
Ah, evet, hashes bunu yapmalı, zeki!
terdon

Bu yaklaşım çoğu durumda çalışmasına rağmen, yerel olarak derlenmiş paketler için özel bir depoya sahip olduğum için benim için çalışmıyor, bu nedenle yerel olarak derlenmiş bir paket kullandığımda bile bir satıcı paketi olarak görünüyor. Tabii ki satıcı paketleri paketimin benim adıma sahip olduğu sürümün bir parçası olarak satıcı adına sahip olduğundan farkı kolayca tespit edebilirsiniz.
Hildred

1
@ bytefire apt-cache show ...çalışır. Görüyorum ki yanlış yazdım. Şimdi düzeltiliyor.
Faheem Mitha

7

En azından, uname -rçekirdek sürümünü verecek gibi 3.18.6. Bununla birlikte, çekirdek derlendiğinde, içinde ek bir dize yapılandırılabilir ve ona eklenebilir ve dağıtımlar genellikle bunu kendi yama seviyelerini (tiredan sonra) ve tadı belirtmek için yapar 3.18.6-32-generic. Bu bir ipucu; özel bir çekirdek oluşturduğunuzda kendi dizginizi kullanmak başka bir şey olabilir.

uname -v varsayılan olarak bunun gibi bir dize verir

#4 SMP PREEMPT Mon Mar 9 13:55:25 EDT 2015

Sayı, bu çekirdeğin, ağaç sıfırlanmadan belirli bir kaynak ağaç kullanılarak kaç kez oluşturulduğu anlamındadır - bu, kendinizinkini oluştururken yararlı olabilir. SMPçok görevli (yani gerçek zamanlı olmayan) bir çekirdeği belirtir ve PREEMPT, zamanlayıcının "önleme modeli" ile ilgili başka bir yapılandırma seçeneğidir. Ama buradaki büyük ipucu muhtemelen inşa edildiği zamandır. Bu, örneğin, ile değiştirilebileceğini akılda tutarak, çekirdeğin kendisindeki değişiklik / değişiklik zaman damgasına karşı eşleştirmek için kullanılabilir touch. Örneğin, statbu çekirdekte şöyle görünür:

  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: -

Hangi hemen hemen doğrultusunda Mon Mar 9 13:55:25 EDT 2015.


2

Diğerleriyle aynı

sudo apt-cache policy linux-generic

paket yöneticisi aracılığıyla yüklenmiş sürüm ve

uname -r

sürümleri karşılaştır

benim için

linux-generic:
  Installed: 3.19.0.15.14
  Candidate: 3.19.0.15.14

ve

3.19.0-15-generic

aynı sürümü gösterir


1
Aynı sürümü farklı seçeneklerle yeniden derlerseniz bu değişecek mi? Bu durumda sürüm dizesinin neden değiştiğini anlamıyorum.
terdon

Aynı ada sahip 2'nin yükleneceğinden emin değilim. Bunu denemedim. Şahsen farklı seçeneklerle yeniden
derlerken

Aynı adın üzerine yazılacağını tahmin ediyorum /boot. Demek istediğim, unamebazı seçenekleri değiştirirken yeniden derlerseniz , çıktının neden değişmesini beklediğinizi görmüyorum . Bu durumda, bunu beklediğiniz apt-cacheve uname -ryerel olarak yeniden derlenmesi ettik olmasına rağmen, aynı bilgileri döndürür.
terdon

@terdon Sürüm dizesi çekirdek yapılandırmasında özelleştirilebilir; bu, dağıtım kaynağını kullanıyorsanız iyi bir fikirdir.
goldilocks

@ goldilocks evet, cevabınızda gördüm ve bu mantıklı. Ancak, bunu yapamayacak kadar aptal olsaydım ve dağıtımımın stok çekirdeğini birkaç seçeneği değiştirerek yeniden derlediysem, sürüm dizeleri aynı olacak, değil mi? Yapıların sayısı ile ilgili önerileriniz yardımcı olabilir, ancak bildiğim kadarıyla burada önerilenler değil.
terdon

0

En genel doğru cevabın "hayır, yapamazsın" olduğunu söyleyebilirim. Bazı durumlarda yardımcı olabilecek çeşitli yöntemler vardır ve bunlar zaten önerilmiştir, ancak bunların hepsi bu durumun gerçekte nasıl ortaya çıktığını kaçırmaktadır. Gerçekte, özel bir çekirdek kullanıyorsanız, bu çekirdek varlığını gizlemek veya farklı bir çekirdek gibi görünmek de dahil olmak üzere her şeyi yapabilir.

Gerçekten özel bir çekirdek çalıştırıyorsanız ve bunu bilmiyorsanız endişelenirim. Hangi çekirdeğin kullanıldığını bilmenin tek güvenilir yolu, hangi çekirdeği derlediğiniz ve yüklediğinizi dikkatlice takip etmektir.

Sistemin hangi çekirdeğin çalıştığından veya bu çekirdeğin hangi kaynaklardan veya nereden geldiğinden gerçekten emin değilseniz, işletim sistemini bilinen iyi bir görüntüden yeniden yüklemeyi ve gelecekte hangi denemeler ve önyükleme yaptığınız konusunda daha dikkatli olmayı düşünürüm kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.