【Linux】开关机与模块管理 |
您所在的位置:网站首页 › vmlinuz › 【Linux】开关机与模块管理 |
1.1 开关机与模块管理1.1.1 开机流程 ①BIOS:开机后运行的第一个程序,加载CMOS信息,完成硬件自检、初始化及跳转到MBR加载boot loader; ②MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序; ③开机管理程序(boot loader):即grub、LILO等程序,读取核心档案来执行的软件,可安装在MBR和每个分区的启动扇区(boot sector),支持的功能: Ø 提供选单:用户可选择不同的开机项目; Ø 载入核心档案:指向可开机的程序段来开始操作系统; Ø 转交其它loader:将开机管理功能转交给其它loader负责。 ④kernel核心:根据boot loader加载kernel,检测硬件并加载驱动。 ⑤init程序:kernel调用init程序,取得runlevel,执行/etc/rc.d/rc.sysinit来准备软件执行环境(如网络、时区等)。 ⑥启动设定服务:init执行runlevel的各个服务(/etc/rc.d/rc[0-6].d/*)。 ⑦加载自定义设置:init执行/etc/rc.d/rc.local。 ⑧login:init执行终端机仿真程序来启动 login 程序,最后等待用户登录。 init详解init程序路径/sbin/initinit主要功能准备软件执行的环境,包括系统的主机名、网络讴定、诧系处理、文件系统格式及其它服务的启动等runlevelLinux根据runlevel的设定来启动不同服务,runlevel之7个等级: 0:halt(系统直接关机) 1:single user mode(单人维护模式,用在系统出问题时的维护) 2:Multi-user,without NFS(与runlevel 3类似,但无NFS服务) 3:Full multi-user mode(完整含有网络功能的纯文本模式) 4:unused(系统保留) 5:X1(与runlevel 3类似,但加载使用X Window) 6:reboot(重启)init配置: /etc/inittabinittab格式:[设定项目]:[runlevel]:[init动作]:[指令] 设定项目:最多4个字符,描述init的主要工作项目 runlevel:明确该项目在哪些runlevel下执行 init动作:initdefault-表示预设的runlevel设定值;sysinit-表示系统初始化的动作项目;ctrlaltdel-表示[ctrl]+[alt]+[del]三个按键是否可以重新启动的设定;wait-表示后面字段设定的指令必须要执行完毕才能继续底下其它的动作;respawn-表示后面字段的指令可以无限制的再生(重启) 指令:可执行的指令或脚本①grub之硬盘代号:(hd,partitionId) grub之硬盘代号硬盘MBR分区1分区2分区3逻辑分区第一块(hd0)(hd0,0)(hd0,1)(hd0,2)(hd0,4)第二块(hd1)(hd1,0)(hd1,1)(hd1,2)(hd1,4)②/boot/grub/menu.lst的两种写法 示例default=0 timeout=5 #splashimage=(hd0,1)/boot/grub/splash.xpm.gz hiddenmenu title XXX0 #方式1及/boot和/共分区(/boot非独立分区) root (hd0,1) kernel /boot/vmlinuz-xxx0 ro root=LABEL=/ initrd /boot/initrd-xxx1.img title XXX1 #方式2及/boot和/共分区(/boot非独立分区) kernel (hd0,1)/boot/vmlinuz-xxx1 ro root=/dev/hda1 initrd (hd0,1)/boot/initrd-xxx1.img title XXX2 rootnoverify (hd0,0) chainloader +1default=0默认开机选项,0表示使用第1个开机选项(title)timeout=5若5秒内未动键盘,则使用默认选项开机splashimagegrub的背景画面,可选项;可加#号注释掉,也可删除hiddenmenu隐藏grub的启动菜单,可选项,可加#号注释掉title之前的为整体设定, 通常启动选项需title/root/kernel/initrd 行title XXX0第1个开机选项内容(采用写法1),XXX0描述可自定义root(hd0,1)root指明kernel文件放置在哪个分区,即通过root(hd[0-n],y)来指定/boot所在的分区kernel行kernel /boot/vmlinuz-xxx #指定kernel文件 ro root=LABEL=/ #指定根所在的分区,ro=只读,也可root=/dev/hda1表示 kernel /boot/vmlinuz-xxx ro root=/dev/hda1initrd行指定initrd文件,该文件提供开机时所需的核心模块写法1:单独以root行指定/boot所在分区 。 ①/boot非独立分区(/boot和/共分区): kernel /boot/vmlinuz-xxx ro root=LABEL=/ initrd /boot/initrd-xxx.img ②/boot独立分区:(在root行已指定/boot所在分区)kernel /vmlinuz-xxx ro root=LABEL=/ initrd /initrd-xxx.img ==> 即(hd0,1)/initrd-xxx.img title XXX1第2个开机选项内容(采用写法2)kernel行kernel (boot所在分区)/boot/kernel文件全称 ro root=Linux根所在分区或标签 kernel (hd0,1)/boot/vmlinuz-xxx1 ro root=/dev/hda1initrd行initrd (boot所在分区)/boot/initrd文件名全称 initrd (hd0,1)/boot/initrd-xxx1.img写法2:把/boot所在分区直接写入kernel行和initrd行。 ①/boot非独立分区(/boot和/共分区): kernel (hd0,1)/boot/vmlinuz-xxx1 ro root=/dev/hda1 initrd (hd0,1)/boot/initrd-xxx1.img ②/boot独立分区:(在root行已指定/boot所在分区)kernel (hd0,1)/vmlinuz-xxx1 ro root=/dev/hda1 initrd (hd0,1)/initrd-xxx1.img title XXX2第3个开机选项内容rootnoverify (hd0,0)不校验该分区(hd0,0)chainloader +1chainloader将控制权交给下一个boot loader 1.1.4 Linux系统关机方法 命令示例描述syncsync数据同步写入磁盘,关机时建议用sync同步下shutdownshutdown [-trkhncfF]时间 -t:-t后面加秒数,表示过几秒后关机 -r:在系统服务停掉后重启 -h:在系统服务停掉后,立即关机 -f:关机并开机后,略过fsck磁盘检查 -F:系统重启后,进行fsck磁盘检查 -c:取消已经在进行的shutdown指令 -n:不经init程序,直接关进程后关机 -k:不真的关机,只是发送送警告信息系统关机shutdown -t 10 #10秒后关机 shutdown -h 8:00 #8点关机 shutdown -h +5 #5分后关机 shutdown -h now #立即关机 shutdown -r now #立即重启 shutdown -r +5 #5分后重启 rebootreboot [-nwdfi] -n:重启前不将存储资料写回硬盘 -w:不真的重启,仅把记录写入/var/log/wtmp里 -d:不把记录写入/var/log/wtmp里(-n参数包含了-d) -f:强制重启,不调用shutdown指令 -i:重启之前先把所有网络相关的装置停止重启reboot #重启 halthalt [-nwdip] -n:关机前不将存储资料写回硬盘 -w:不真的关机,仅把记录写入/var/log/wtmp里 -d:不把记录写入/var/log/wtmp里(-n参数包含了-d) -f:强迫关机,不调用 shutdown指令 -i:关机前先把所有网络相关的装置停止 -p:关机时同时关闭电源(poweroff)立即关机halt #关闭系统 halt -p #关闭系统并关闭电源 halt -d #关闭系统但不留记录 poweroffpoweroff [-nwdip] -n:关机前不将存储资料写回硬盘 -w:不真的关机,仅把记录写入var/log/wtmp里 -d:不把记录写入/var/log/wtmp里 -i:关机前先把所有网络相关的装置停止 -p:关机前将系统中所有硬件设为备用模式关闭系统并关闭电源 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |