从备份恢复服务器,现在我错过了很多模块

我不得不从备份恢复一个垃圾文件系统,现在它不会加载很多模块

之前的lsmod:

Module Size Used by ses 6715 0 enclosure 8649 1 ses xt_multiport 2794 1 iptable_filter 2791 1 ip_tables 18390 1 iptable_filter x_tables 22461 2 xt_multiport,ip_tables nls_iso8859_1 4633 0 nls_cp437 6351 0 vfat 10866 0 fat 55350 1 vfat usb_storage 50633 1 act_police 4620 1 sch_ingress 2098 1 cls_u32 6698 5 sch_sfq 5863 3 sch_cbq 17140 1 snd_hda_codec_realtek 279072 1 snd_hda_intel 25805 0 ppdev 6375 0 snd_hda_codec 85759 2 snd_hda_codec_realtek,snd_hda_intel fbcon 39270 71 tileblit 2487 1 fbcon font 8053 1 fbcon bitblit 5811 1 fbcon softcursor 1565 1 bitblit parport_pc 29958 1 snd_hwdep 6924 1 snd_hda_codec serio_raw 4918 0 snd_pcm 87946 2 snd_hda_intel,snd_hda_codec snd_timer 23681 1 snd_pcm vga16fb 12757 1 lp 9336 0 vgastate 9857 1 vga16fb parport 37160 3 ppdev,parport_pc,lp snd 71283 6 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer soundcore 8052 1 snd snd_page_alloc 8500 2 snd_hda_intel,snd_pcm raid10 21450 0 raid456 54752 0 async_pq 3891 1 raid456 async_xor 3111 2 raid456,async_pq xor 4685 1 async_xor async_memcpy 1537 1 raid456 async_raid6_recov 1816 1 raid456 raid6_pq 80147 2 async_pq,async_raid6_recov async_tx 2545 5 raid456,async_pq,async_xor,async_memcpy,async_raid6_recov raid1 22610 1 raid0 6778 0 multipath 7181 0 linear 4126 0 r8169 39714 0 mii 5237 1 r8169 ahci 38350 4 

lsmod之后:

 Module Size Used by raid456 54720 0 async_pq 3891 1 raid456 async_xor 3111 2 raid456,async_pq xor 4685 1 async_xor async_memcpy 1537 1 raid456 async_raid6_recov 1816 1 raid456 8139too 22245 0 raid10 21450 1 usbhid 41116 0 hid 83888 1 usbhid 8139cp 19541 0 e1000 109015 0 raid6_pq 80147 2 async_pq,async_raid6_recov async_tx 2545 5 raid456,async_pq,async_xor,async_memcpy,async_raid6_recov r8169 39714 0 mii 5237 3 8139too,8139cp,r8169 raid1 22610 1 raid0 6778 0 multipath 7181 0 linear 4126 0 

这是一个不同的服务器,我正在做一个备份,并有不同的RAID设置,所以我不得不做更新initramfs和grub更新,所以这可能与它有关

我从中进行备份的服务器仍在运行

我如何恢复这些模块? 最好不要重启。

我想这些模块中的很多会按需加载,因此,一旦您在恢复的服务器上启动服务,您应该会看到更多使用的模块。 但是有一些模块需要安装相关的软件包。

一个快速同步安装的软件包的方法是从旧机器中导出所有软件包的导出列表,

 $ dpkg --get-selections | cut -f1 > /tmp/package-list 

然后使用本教程中介绍的步骤在其他服务器上安装这些软件包

关于模块列表中的差异; 例如我看到模块soundcore在一个列表中,但没有看到另一个,所以尝试查询恢复的服务器上的模块信息,以检查是否可用时,如此;

 # modinfo soundcore filename: /lib/modules/3.3.1-5.fc16.x86_64/kernel/sound/soundcore.ko alias: char-major-14-* license: GPL author: Alan Cox description: Core sound module depends: intree: Y vermagic: 3.3.1-5.fc16.x86_64 SMP mod_unload parm: preclaim_oss:int 

一旦你有一个模块的文件名,从上面的细节,你可以看到哪个包需要安装,以提供它,例如模块fbcon ;

 $ modinfo fbcon filename: /lib/modules/2.6.32-38-generic/kernel/drivers/video/console/fbcon.ko license: GPL srcversion: 65B645FD36D989F537E4715 depends: bitblit,font,tileblit vermagic: 2.6.32-38-generic SMP mod_unload modversions 

linux-image包提供;

 $ dpkg -S /lib/modules/2.6.32-37-generic/kernel/drivers/video/console/fbcon.ko linux-image-2.6.32-37-generic: /lib/modules/2.6.32-37-generic/kernel/drivers/video/console/fbcon.ko