Linux的系统启动分为几个阶段,由于运行中的系统分为用户空间层面和内核空间层面,所以一个完整的系统启动也是先启动内核文件,然后在启动用户层面的各种应用程序。Linux系统的设计属于单内核设计,但是各功能模块却支持动态的装载和卸载,极大的压缩了内核的体积,让内核的启动也更加快捷和迅速。
过程简述:
1.POST(加电自检) :主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。
2.boot sequence(选择启动设备) :按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备;
上述两个功能都由BIOS来完成,BIOS(Basic Input / Output System),又称基本输入输出系统,是一个固化在ROM中的软件,是 *** 作系统输入输出管理系统的一部分。
3.bootloader(引导加载器):
Linux下的引导加载器有grub leancy和grub2两种,Cenos6中使用的是前者。
MBR(主引导记录):
MBR的共由512字节组成,前446字节存放的即是bootloader。所以在选定启动设备后,收件是读取MBR中的bootloader,打开grub菜单。
grub:
功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本; 把用户选定的内核装载到RAM中的特定空间中,解压、展开,而后把系统控制权移交给内核;
gurb的实现共有3个阶段:
1st stage:位于MBR的BootLoader中,用来加载2nd stage到内存中。
1.5 stage:1和2的桥梁,用来驱动文件系统来使1阶段过渡到2阶段。
2nd stage:grub核心,/boot/grub,存放在磁盘分上,用于加载内核文件。
4.加载内核
分四个步骤:
探测可识别到的所有硬件设备;
加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)
以只读方式挂载根文件系统;即rootfs
运行用户空间的第一个应用程序:/sbin/init。
内核文件:/boot//vmlinuz-VERSION-release,ramdisk文件/boot/initramfs-VERSION-release.img。
在上述的内核启动后,后续的 *** 作都交给init程序来完成。/sbin/init程序是用户空间的第一个程序,主要完成系统初始化,步骤如下:
设置默认运行级别:
运行级别的配置文件为/etc/inittab,共0-6七个运行级别,可以在该文件中自主定义,下次启动默认进入指定的运行级别。
运行系统初始化脚本:
/etc/rc.d/rc.sysinit即为系统的初始化脚本,系统通过自动执行该脚本,从而完成对系统的设置和信息的初始化。
关闭对应级别下需要停止的服务,启动对应级别下需要开启的服务:
这里主要是指通过chkconfig所配置的开机自动启动或者关闭的各类服务。
设置登录终端:
启动图形终端:级别5需要启动
GRand Unified Bootloader,系统启动后会首先打开一个grub菜单,上图所示,可以自主选择内核、定制内核参数。grub由三个阶段组成,1st stage,1_5stage以及stage2,stage2和内核文件等通常放置于一个基本磁盘分区。
grub有自己的命令行接口:
配置文件说明:/boot/grub/grub.conf
kickstart是什么
许多系统管理员愿意使用自动化的安装方法来安装linux系统。为了满足这种需要,红帽公司建立了kickstart安装方法。使用kickstart自动化安装,系统管理员可以创建一个ks文件,该文件包含了在典型的安装过程中所遇到的问题的答案。
Kickstart文件可以存放在一个固定的位置上,在安装过程中被独立的机器所读取。这个安装方法可以支持使用单一kickstart文件在多台机器上安装Linux系统,这对于网络和系统管理员来说是个理想的选择。
如何执行kickstart安装
kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS、FTP、HTTP 来执行。
要使用 kickstart,必须:
1.创建一个正确的kickstart文件。
2.创建有kickstart文件的引导介质或者让主机可以通过网络访问该文件。
3.筹备安装过程。
4.开始kickstart安装。
创建kickstart配置文件的方式:
1. 文本编辑器编辑生成:vim
2. 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包)
步骤:
创建光盘根目录
复制光盘下的isolinux目录到根目录下
赋予isolinux里的所有文件和目录写权限(这样就可以自定义isolinux.cfg文件)
复制修改好的ks文件到myboot目录下(这里myboot目录相当于光盘的根目录)
建立镜像
第一步:\x0d\x0a当然是下载Ubuntu了,我是在Ubuntu官网下载的原生版本,我下载的是Ubuntu最新版本15.04。没有选择国人修改过的kylin版本。kylin好不好我完全不懂,只是习惯性的觉得国人做系统不放心,就连修改下我都不放心。\x0d\x0a\x0d\x0a第二步:\x0d\x0a制作u盘启动盘。我用的是UltraISO这个软件制作的启动盘, *** 作很简单,为了增加文章篇幅,我就简单贴两张图吧。(这地方写入方式的选择,默认是USB-HDD+,我也是这么选择的,但是有人说应该选择USB-ZIP+。具体我不懂,不过我按照我选择的能够安装成功。)\x0d\x0a\x0d\x0a *** 作很简单,就是选择好你的iso文件,然后启动-制作硬盘启动,不清楚的话就百度一下咯。\x0d\x0a\x0d\x0a第三步:\x0d\x0awindows系统下为Ubuntu准备一个空闲分区。 *** 作也很简单,找一个不用的盘,空间别太小,然后用windows自带的磁盘管理工具来压缩分区。我自己是为Ubuntu准备了100G大小的空间,这个自己根据需求设定。\x0d\x0a\x0d\x0a第四步:\x0d\x0a重启电脑安装Ubuntu系统。lenovo重启时按F12选择启动位置,这个各个品牌按照自己品牌的按键来,跟U盘安装win7、win8一个道理。重点需要说明的地方就是Ubuntu分区。在安装过程中需要选择位置,我们就选择之前专门为Ubuntu压缩的那个分区,可以看到那个分区说明写着“空闲”,所以还是比较好区分的。然后就是分区了,参考了网上一些人的说法,然后根据自己的笔记本我做了如下设置(手机渣像素,估计看不清,我再陈述一下吧)。首先是“/”挂载区,我分了30G;然后是SWAP,我分了8G,这个跟内存有关,我看完网上很多人设置的是2G,我自己笔记本物理内存12G,2G会不会太少了,于是自己设置了8G;然后是“/boot”,我分了300M,网上都说这部分200M足够了;最后剩下的空就留给“/home”了。这部分内容我也不懂,完全是参考网上的说明设置的,毕竟对linux具体原理一窍不通。\x0d\x0a\x0d\x0a然后分区结束后,需要选择安装启动引导其的设备,这部分貌似很关键,但是我也不懂原理,就听网上说的,什么是从ubuntu启动器,什么是从windows启动器。我按照其中的一种说法设置的,讲设备选择为刚才设置的“/boot”那个设备。\x0d\x0a然后就是安装了,安装过程比较慢,可能是我这儿网速比较慢。其中“正在下载语言包”“正在下载软件包”这两处很慢,每个至少得20mins,可能是因为我这热网速太慢了。还有就是最后一步卡在“执行安装后执行的触发器 update-notifier-common”这一步有20min后,我怀疑有问题,看网上很多人出现这个问题,有人说断网可以解决,我断网后一段时间好像解决了,但是我不知道这个是不是因为断网而解决的。\x0d\x0a\x0d\x0a简单两张图表示我的确安装了。成功后设置用户名,密码之类的就可以了。然后需要重启。\x0d\x0a\x0d\x0a第五步:\x0d\x0a重启后有画面可以选择进入什么系统,具体记不清了,基本就是:1、Ubuntu 2、windows 3、windows 4、设置(就是进入BIOS)。我选择了进入Ubuntu,一切顺利,虽然我会用,但是欣喜的看到安装成功了。然后,问题没这么简单,我想重启后进原来的win10用easyBCD软件设置一下启动顺序啥的时,发现重启页面选择2或3都进不去windows,基本意思就是找不到文件啥的。这个双系统的引导是用Ubuntu引导的,我本来是想让他用win10引导的。后来简单百度了下,可以先通过BIOS设置优先级进入win10,我按照这个方法设置后进入了windows(然而时间不对了,以因为我的本是美版的,刚买的时候时间就差几个小时,虽然选了时区也不对,最后还是手动设置的时间,这次也是手动设置的。),但是开机后没有选择进入那个系统,就是说我想要的还没有。\x0d\x0a我用easyBSD试着设置了一下,看效果如何。\x0d\x0a\x0d\x0a有效果,在开机界面出现了选项。可以顺利进入win10.不过安装双系统就跟开机10s内完成说byebye了。然而开机界面选择了ubuntu但是进不去,提示找不到 \EFI\ubuntu\shimx64.efi。意思就是现在主板用efi启动,而在efi分区没找到相应的ubuntu分区。如果找到这个文件并把他放到应该在的efi分区中,应该就能正常启动了。于是我装了DiskGenius,瞅了一眼没找到ubuntu的efi,找到了windows的efi。我再windows自带的磁盘管理中看到两个efi分区,大小都是260M,有点纳闷,怎么会有两个????于是也没多想,就把之前装的ubuntu分区给删除了,准备重装,并且装的时候记得把分区下面那个引导位置设置为我windows的efi分区,这样应该就能正常启动双系统了。当我刚刚删除分区后突然意识到我之前因为新加了ssd,所以克隆了系统,所哟应该就有两个efi分区,原来的hdd上一个,后来的ssd上一个。于是按照这个思路,我再hdd的efi分区中找到了ubuntu的那个shimx64.efi文件。然并卵,我已经删除了分区,不得不重装了。\x0d\x0a在重装之前,听人说需要关闭windows的快速启动(windows+x,里面电源选项中有,选择电源按钮的功能,更改当前不可用的设置,把“启用快速启动前面的对号去掉”),同时还需要在BIOS菜单中,在security下找到secure boot项,把UEFI那项设置为DISABLE。\x0d\x0a然后重装,这次比上次快不少。进入ubuntu照样正常,不过从ubuntu界面进windows不正常,好像进入了一个修复windows的界面。而且没法后退,只好强制关机了。又从BIOS进了windows系统,开始设置双系统启动,用easyBCD。\x0d\x0a\x0d\x0a设置完之后,还是跟之前一样的问题,找不到efi文件。我用DiskGenius看了看,那个ubuntu的efi文件还是在hdd的efi分区中,没在ssd的efi分区中。而且没办法复制过去,每次打开ssd的efi分区想要 *** 作(比如新建文件夹,粘贴之类的),就提示说这个分区没有正确加载,可以尝试重启,然而重启也没什么用。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)