linux启动过程及内核裁剪,裁剪测试Linux启动流程
Linux系統裁剪
在虛擬機上完成的
1,新增虛擬磁盤,對磁盤分區格式化,并掛載
fdisk /dev/sdd
mkfs.ext4 /dev/sdd1
mkfs.ext4 /dev/sdd2
mkdir /mnt/{boot,sysroot}
mount /dev/sdd1 /mnt/boot
mount /dev/sdd2 /mnt/sysroot
2,創建根文件系統,移植需要的命令,函數庫,內核模塊
cd /mnt/sysroot
mkdir -pv etc boot usr/{bin,lib,lib64} lib/modules lib64 proc sys bin sbin var dev
移植命令腳本,移植命令就要移植相應的函數庫
#!/bin/bash
while true;do
read -p "Enter a command: " comm
[ $comm == quit ]&&exit
commd=`which --skip-alias $comm`
dircommd=`dirname $commd`
if ! [ -e /mnt/sysroot$dircommd ];then
mkdir -p /mnt/sysroot$dircommd
cp $commd /mnt/sysroot$dircommd
else
cp $commd /mnt/sysroot$dircommd
fi
for i in `ldd $commd|egrep -o "/[^[:space:]]+"`;do
if ! [ -e /mnt/sysroot`dirname $i` ];then
mkdir -p /mnt/sysroot`dirname $i`
cp $i /mnt/sysroot`dirname $i`
else
cp $i /mnt/sysroot`dirname $i`
fi
done
done
~
移植需要的內核模塊
cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/modules/
3,安裝grub
grub-install --root-directory=/mnt/ /dev/sdd
4,準備內核和initrd文件
cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/boot/vmlinuz
cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/boot/initramfs.img
5,創建grub配置文件
vim /mnt/boot/grub/grub.conf
6,創建sbin/init
vim /mnt/sysroot/sbin/init
chmod a+x /mnt/sysroot/sbin/init;sync;sync
然后把磁盤(/dev/sdd)放到一個新的虛擬機上
然后就可以跑起來了
總結
以上是生活随笔為你收集整理的linux启动过程及内核裁剪,裁剪测试Linux启动流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php编程实现单入口,apache配置p
- 下一篇: linux 内核驱动的poll,嵌入式L