ubuntu切換linux内核版本?Ubuntu和CentOS定制内核驅動模塊背景,下面我們就來聊聊關于ubuntu切換linux内核版本?接下來我們就一起去了解一下吧!
Ubuntu和CentOS定制内核驅動模塊
背景
一些特殊設備的驅動程序或者内核模塊,并沒有被開機默認加載,比如reiserfs的内核模塊reiserfs.ko。
内核模塊方式的驅動一般在init ramdisk中,在grub中用initrd參數指定:
menuentry 'Debian GNU/linux' { ... echo 'Loading Linux 4.19.28 ...' linux /boot/vmlinuz-4.19.28 root=UUID=... echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-4.19.28 }
而Ubuntu/Debian采用initramfs-tools生成initrd, 而CentOS采用drucat。
Ubuntu & Debian
制作一個新的initrd.img
# mkinitramfs -o initrd.img
生成的initrd是一個cpio格式文件,但是不能用cpio解開
# file initrd.img initrd.img: ASCII cpio archive (SVR4 with no CRC)
使用unmkinitramfs解開到initrd目錄下
# unmkinitramfs initrd.img initrd
如果新增一個驅動到initramfs, 編輯/etc/initramfs-tools/modules,加入需要的module名。
# List of modules that you want to include in your initramfs. # They will be loaded at boot time in the order below. # # Syntax: module_name [args ...] # # You must run update-initramfs(8) to effect this change. # # Examples: # # raid1 # sd_mod reiserfs
然後執行update-initramfs -u或者mkinitramfs重新生成;
默認生成的initramfs會比較大,這是因為/etc/initramfs-tools/initramfs.conf配置中MODULES=most導緻,可以改為MODULES=dep;
CentOS
CentOS在initrd中添加驅動:
dracut --add-drivers virtio_blk -f /boot/initramfs-3.10.5-1.el6.elrepo.x86_64.img 3.10.5-1.el6.elrepo.x86_64
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!