修改映像檔 initrd.img

  1. initrd.img 其實是一個壓縮
    [root@dyH initrdtmp]# mv initrd.dyw.img initrd.dyw.gz
    [root@dyH initrdtmp]# gunzip initrd.dyw.gz 
    [root@dyH initrdtmp]# ll
    total 34904
    -rw-r--r--. 1 root root 35739648 Jul 31 14:17 initrd.dyw
    

  2. 使用 cpio 抽取檔案
    [root@dyH initrdtmp]# mkdir tmp2
    [root@dyH initrdtmp]# cd tmp2/
    [root@dyH tmp2]# cpio -id < ../initrd.dyw 
    69804 blocks
    

  3. 看到 initrd.dyw.img 內容,可進行修改
    [root@dyH tmp2]# ls
    bin      emergency  initqueue           lib    pre-pivot    proc  sysroot  var
    cmdline  etc        initqueue-finished  lib64  pre-trigger  sbin  tmp
    dev      init       initqueue-settled   mount  pre-udev     sys   usr
    
  4. 修改系統版本宣告
    [root@dyH tmp2]# vim etc/system-release 
    De-Yu Wang Linux 6.0 release (Taiwan)
    
  5. dracut 預設只將開機需要的核心模組加入,可經由修改 /etc/dracut.conf 增加驅動程式、核心模組,也可以於下命令時加入。使用 USB 硬碟於筆電開機,經常無法正常開機的原因,往往是 initramfs 沒有適用的驅動程式,在不確定是那些驅動程式或模組必須載入的情況下,想要讓隨身硬碟開機,可以將所有的核心模組加到 initramfs 中,雖然會讓 initramfs 檔案變大且開機速度變慢,但至少可以正常開機。
    [root@dywnb tmp2]# cp -a /lib/modules/4.6.2-1.el6.elrepo.x86_64 lib/modules/
    
  6. 最後找到將如下 modules.* 檔,kernel/drivers 下 usb 目錄,加到 initramfs 中不但可在 hp probook 430 開機且不影響開機速度。
    [root@dywnb ~]# cd /usr/src/tmp1/
    [root@dywnb tmp1]# rsync -av /lib/modules/4.8.1-1.el6.elrepo.x86_64/modules.* \
    lib/modules/4.8.1-1.el6.elrepo.x86_64/
    [root@dywnb tmp1]# rsync -av /lib/modules/4.8.1-1.el6.elrepo.x86_64/kernel/drivers/usb \
    lib/modules/4.8.1-1.el6.elrepo.x86_64/kernel/drivers/
    
    [root@dywnb tmp1]# find . | cpio --create --format='newc' > ../initramfs-4.8.1.m
    [root@dywnb tmp1]# gzip --force ../initramfs-4.8.1.m
    [root@dywnb tmp1]# /bin/cp ../initramfs-4.8.1.m.gz /media/crt-boot/initramfs-4.8.1-1.el6.elrepo.x86_64.img ; sync