Şimdi kendi soruma cevap veriyorum çünkü sonunda bu sorun için bir çözüm buldum.
Sürücüleri yükleyip ardından doğru sırayla yükleyerek aygıtları yeniden sıralamanın mümkün olduğunu öğrendim.
İlk yöntem (bruteforce):
Bu yüzden geldi ilk yöntem init.d komut dosyası ile sürücü yeniden yüklemek bruteforce basitti.
Aşağıdaki init betiği Debian 6.0 için hazırlanmıştır, ancak aynı ilke uygun init.d betikleri kullanılarak hemen hemen her dağıtım üzerinde çalışmalıdır.
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: reorder-nics
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Reloads the nics in correct order
### END INIT INFO
#
# This script should reload the nic drivers in corrected order.
# Basically it just unloads and then loads the drivers in different order.
#
echo "Reloading NICs!"
# unload the drivers
modprobe -r driver_0 # eth0 nic interface
modprobe -r driver_1 # eth1 nic interface
# load the drivers in corrected order
modprobe driver_1
modprobe driver_0
#EOF
Daha sonra komut dosyasının uygun çalışma düzeyi dizinine eklenmesi gerekir. Bu, Debian'da " update-rc.d " komutu ile kolayca yapılabilir . Örneğin:update-rc.d reorder-nics start S
İkinci yöntem (Daha iyi olduğunu düşünüyorum):
Ayrıca biraz daha zarif bir yol buldum (en azından Debian ve Ubuntu sistemleri için).
İlk olarak çekirdeğin NIC sürücülerini otomatik olarak yüklemediğinden emin olun. Bu, içinde bir kara liste dosyası oluşturularak yapılabilir /etc/modprobe.d/
. " disable-nics.conf
" Adlı bir dosya oluşturdum . İçindeki dosyaların soneki /etc/modprobe.d/
olması gerektiğini unutmayın .conf
. Ayrıca modüllerin adlandırılması /etc/modprobe.d/blacklist.conf
, modüllerin çekirdek tarafından otomatik yüklenmesini etkilemez, bu nedenle kendi dosyanızı oluşturmanız gerekir.
# Disable automatic loading of kernel driver modules
# Disable NIC drivers
blacklist driver_0 # eth0 by default
blacklist driver_1 # eth1 by default
Sonra root olarak ' depmod -ae ' komutunu çalıştırın
' Update-initramfs -u ' ile initrd'inizi yeniden yaratın
Ve son olarak / etc / modules dosyasına sürücü adlarını düzeltilmiş sırayla ekleyin .
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
# drivers in wanted order
driver_1 # this one should be loaded as eth0
driver_0 # this one should be loaded as eth1
Değişiklikler bir sonraki önyüklemeden sonra yürürlüğe girmelidir.
Yine de yeniden başlatma gerekli değildir; şu komutla cihazları değiştirmek kolaydır (tabii ki root olarak):
modprobe -r driver_0; modprobe -r driver_1; modprobe driver_1; modprobe driver_0
Çözümü ararken bulduğum bazı yararlı bağlantılar: