Önyükleme sırasında çekirdek modülünü atla


Yanıtlar:


1

Bir önceki yanıtta belirtildiği gibi modülün kara listeye alınması, bir çekirdek modülünden tamamen kaçınmanın en iyi yoludur. Kara listenin yanı sıra, bir modülü devre dışı bırakmanın genel bir yolu yoktur.

Bazı Linux dağıtımları, bunun gibi şeyler yapmak için çekirdek önyükleme parametreleri sağlar.

  • Arch Linux'ta , load_modules=offudev'i otomatik yüklemeyi atlamaya zorlar. Bu, modülleri yüklemeden önyükleme yapmanıza, soruna neden olan bir modülü kara listeye almanıza ve sorunlu modül yüklemesi olmadan normal olarak yeniden başlatmanıza olanak tanır.
  • Knoppix uzun bir ekstra önyükleme parametreleri listesine sahiptir (diğer bir deyişle "cheatcodes") ; bunlar normal çekirdek önyükleme parametrelerinin ve Knoppix'e özgü ekstraların bir karışımıdır.

Daha fazla bilgi için Çekirdek Parametreleri belgelerine bakın . Belirli alt sistemleri devre dışı bırakmak için parametreler vardır. Örneğin:

  • nousb çekirdek USB desteğini devre dışı bırakır
  • cgroup_disable=[name]belirli bir denetleyiciyi devre dışı bırakır; ancak, "bellek" özel olarak desteklenen tek örnektir
  • libata.noacpilibata'da (SATA denetleyicileri) ACPI kullanımını devre dışı bırakır; bu bir modül parametresini çekirdek üzerinden geçirmeye bir örnektir

7

Belirli modülleri devre dışı bırakılması olduğunu sistem yükleyici mümkün, ama görünüyor dağıtıma bağımlı gibi gerçekten.

Bir yandan, Linux Çekirdek Parametreleri belgelerinde Ağustos 2016 itibariyle:

module_blacklist= [KNL] Virgülle ayrılmış bir modül listesi yüklemeyin. Sorun modüllerinde hata ayıklamak için kullanışlıdır.

Öte yandan, openSUSE 42.1 (Linux 4.1.31) ile benim için çalışan seçenek  Arch Kernel modülleri wiki'sinde açıklanmıştır:

Modülleri önyükleyiciden de kara listeye alabilirsiniz. Basitçe ekleyin

modprobe.blacklist=modname1,modname2,modname3

Çekirdek parametrelerinde açıklandığı gibi önyükleyicinizin çekirdek satırına ekleyin. Birden fazla modülü kara listeye alırken, modüllerin yalnızca virgülle ayrıldığını unutmayın. Boşluklar veya başka herhangi bir şey sözdizimini bozabilir.

( Bunu işaret ettiği için unix.SE'deki @ gertvdijk'e teşekkürler  .)

Ayrıca bahsetmeye değer şu yöntem :

Grub komut satırını kullanarak belirli modüllerin çekirdek tarafından yüklenmesini önlemek için, bunları aşağıdaki sözdizimini kullanarak çekirdek satırına parametre olarak geçirmeniz gerekir.

$module_name.blacklist=yes

Bunu nereden aldıkları hakkında hiçbir fikrim yok, ama her şey başarısız olursa kesinlikle başka bir yöntemi denemek zarar vermez.


Neden "$ module_name.blacklist = yes" çalışır aynı soru var ve çekirdek kodunun bu kısmı ile ilgili olduğunu düşünüyorum: git.kernel.org/pub/scm/linux/kernel/git/stable/linux- stable.git /…
Johnlcf

1

/Etc/modprobe.d/blacklist'e veya 'modulename' kara listesine ekleyebilmeniz gerekir


bu çalışır ancak başka bir çekirdeğe (varsa) veya LiveCD sistemine önyükleme yapılmasını gerektirir.
quack quixote
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.