GRUB的功能
1. 提供选择要启动的内核或者系统 2. 提供交互式接口。进入GRUB后按e键进入GRUB的交互接口,可已经行Linux系统运行基本的选择。 3. 基于密码的保护:启用内核映像,传递参数12341234
GRUB的接口格式
title:操作系统的内核或者系统的标题 root:设定内核文件所在分区的grub跟 kernel:定义要使用的内核文件,后边附加传递给内核的参数 initrd:指定为内核提供的额外驱动等功能12341234
GRUB配置文件格式
default=0 //指定默认启动的内核或者启动 timeout=5 //等待用户选择内核时长,默认单位为秒 splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz //启动时使用的图片 hiddenmenu //隐藏菜单 title CentOS (2.6.32-696.6.3.el6.x86_64) //系统内核名 root (hd0,0) //内核所在的分区 kernel /vmlinuz-2.6.32-696.6.3.el6.x86_64 ro root=UUID=9b571efa-58dc-46c5-add3-871cf8abf3c0 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet //内核文件并给内核传递参数 initrd /initramfs-2.6.32-696.6.3.el6.x86_64.img1234567812345678
制作一个简单的内核
在一个已经有内核的系统上创建另一个内核
1. 在/mnt下创建boot和sysroot目录 [root@Clone2 mnt]# mkdir boot sysroot 2. 在磁盘上分出两个区并格式化分别挂载在/mnt/boot和/mnt/sysroot下 [root@Clone2 mnt]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):n First cylinder (4361-7833, default 4361): Using default value 4361 Last cylinder, +cylinders or +size{K,M,G}(4361-7833, default 7833): +500M Command (m for help): n First cylinder (4426-7833, default 4426): Using default value 4426 Last cylinder, +cylinders or +size{K,M,G} (4426-7833, default 7833): +500M Command (m for help):w [root@Clone2 mnt]#kpartx -af /dev/sda [root@Clone2 mnt]#partx -a /dev/sda [root@Clone2 mnt]#mke2fs -T eth4 /dev/sda7 [root@Clone2 mnt]#mke2fs -T eth4 /dev/sda8 [root@Clone2 mnt]#mount /dev/sda7 /mnt/boot [root@Clone2 mnt]#mount /dev/sda8 /mnt/sysroot 3. 制作GRUB [root@Clone2 mnt]#grub-install --root-directory=/mnt /dev/sda7 //注意这里的磁盘文件是挂载在/mnt/boot下的磁盘 4. 复制内核文件 [root@Clone2 boot]# cp /boot/vmlinuz-2.6.32-696.6.3.el6.x86_64 /boot/initramfs-2.6.32-696.6.3.el6.x86_64.img /mnt/boot/ 5. 创建目标机的根文件系统 [root@Clone2 ]# mkdir -pv /mnt/sysroot/{dev,boot,root,home,etc/rc.d,urs,lib,bin,sbin,lib64,mnt,proc,var,medis,sys} 6. 复制bash和根文件系统 [root@Clone2 ]#cp /bin/bash /mnt/sysroot/bin 7. 配置grub配置文件 vim /mnt/boot/grub/grub.conf default=0 timeout=5 title root(hd0,0) kernel /vmlinuz ro root=/dev/sda1 selinux=0 init=/bin/bash initramfs /initramfs
转载于:https://blog.51cto.com/lnsane784/1948699