1、简述linux操作系统启动流程
当电脑开机时内存是空的,开机时BIOS会将RAM中的程序映射到内存中来(BIOS中是存储在RAM中的一段程序代码,这段代码可以实现电脑自身状况的检查,BIOS中设置了如何检查健康状况),自检完成没有问题后会根据BIOS中的启动顺序去挨个找启动设备的MBR,如果设备的MBR坏了,系统会报错,无法启动,只有在第一个设备没有MBR时才会找第二个设备,第二个如果是硬盘的话,就会读取硬盘的MBR,因为硬盘的MBR开始是bootloader,所以BIOS这段程序就会把bootloader装载到内存,这段bootloader会再读取硬盘MBR中的分区表,分区表大小64bytes。之后会根据我们的配置加载分区上的操作系统,因此这段bootloader一定要能读取分区表,如果没有分区表就找不到操作系统了。bootloader加载进内存后,BIOS就退出了,退出前会把执行的指令告诉CPU。bootloader根据我们先的操作系统运行,会找到操作系统那个分区上操作系统的内核,找到后就会将内核加载进内存,内核读进内存后会先解压缩,之后bootloader将管理权交给内核,于是内核开始启动自身,之后根据电脑能找到文件系统在什么地方,以及要启动的程序,最终启动完成。
2、简述grub启动引导程序配置及命令行接口详解
grub工作阶段
1st: mbr, bootloader加载到mbr
1.5st: 驱动,mbr之后的扇区,提供stage2在的分区的文件系统驱动;
2st: boot目录所在分区
grub功用:
(1) 提供菜单、并提供交互式接口
e: 编辑模式,用于编辑菜单;
c: 命令模式,交互式接口;
(2) 加载用户选择的内核或操作系统
允许传递参数给内核
可隐藏此菜单
(3) 为菜单提供了保护机制
为编辑菜单进行认证
为启用内核或操作系统进行认证
配置文件:/boot/grub/grub.conf
配置项:
default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
timeout=#:指定菜单项等待选项选择的时长;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
hiddenmenu:隐藏菜单;
password [–md5] STRING: 菜单编辑认证;
title TITLE:定义菜单项“标题”, 可出现多次;
root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
password [–md5] STRING: 启动选定的内核或操作系统时进行认证;
进入单用户模式:
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
(2) 在选定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,键入“b”命令;
grub的命令行接口
help: 获取帮助列表
help KEYWORD: 详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;
boot: 引导启动选定的内核;
手动在grub命令行接口启动系统:
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
安装grub:
(1) grub-install
grub-install –root-directory=ROOT /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
3、实现kickstart文件制作与光盘镜像制作
通过anaconda自动生成的ks配置文件可以实现自动安装操作系统,在配置文件中可以定义安装时的其本信息,如语言,管理员密码,时区,网络,磁盘分区,防火墙,需要安装的软件,系统的安装源,安装前脚本,安装后脚本等。定义好之后要生成ks.cfg配置文件,之后可将配置文件放于网络上,通过系统镜像引导启动,并指定ip地址,掩码,ks文件所在网络路径,让主机可以通过网络加载配置文件实现自动安装。或者可以通过将ks配置文件与isolinux目录打包成一个启动镜像(isolinux目录是系统镜像中的一个目录,是一个小的系统,可以实现引导启动),通过此启动镜像来启动加载ks配置文件,并按照ks配置文件中的系统安装源(这个安装源是自定义的,可以是本地网络中的源,也可以是互联网上的源)实现自动安装
测试安装使用CentOS6.6系统,测试6.5时总在进入安装界面后提示不支持CPU。但6.6版本也会提示不支持磁盘。取消使用之前所用的安装后自动生成的ks.cfg文件后,自建ks.cfg文件可以安装。
1.准备centos6.6,将镜像挂载到/var/www/html/media目录下,为的是可以在安装httpd后访问此目录
2.安装system-config-kickstart,X窗口系统,桌面,桌面开发这四个软件,因为安装后三个软件才能打开kickstart的图形界面。
3.在打开kickstart图形界面后要注意第二项安装方法要写明光盘挂载的目录,这里用了HTTP方法,软件地址192.168.1.6,目录/media/,(不知道不能安装与media后的斜线是否有关系,需再测试);还要注意划分分区,(需再测试不划分是否可以安装),另外要选择不要初始化磁盘标签,不要清除引导记录
选择好之后要保存ks.cfg文件,保存在/root目录下。另外在/root目录下创建myboot目录。将/var/www/html/media/目录下的isolinux目录和ks.cfg复制到myboot目录下。下面有两种安装方法
1.将ks.cfg文件复制到/var/www/html目录下,安装时用系统盘引导,之后按ESC,输入boot: linux text ip=192.168.1.64 netmask=255.255.255.0 ks=http://192.168.1.6/ks.cfg。之后就可以自动安装了。
2.这种方法不将ks文件放在网络上,而是同isolinux一起做成启动光盘。创建光盘前可以修改isolinux目录中的isolinux.cfg文件,在第一段label linux中加入append initrd=initrd.img ip=192.168.1.10 netmask=255.255.255.0 ks=cdrom:/ks.cfg。之后用命令mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V “CentOS 6 x86_64 boot” -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/制作光盘。之后将光盘复制到主机桌面,用虚拟机加载此光盘启动自动安装。或可以修改ks.cfg文件,在其中加入network –onboot yes –device eth0 –bootproto dhcp –noipv6,但这要求有dhcp服务器,如果没有就不能自动获得地址了。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91186