一.Linux系统启动流程
1.首先电脑加电自检,进入到BIOS中,通过MBR装载bootloader,再由bootloader装载内核在内存中完成解压,再将控制权交由内核,内核完成硬件的探测再访问initrd,再执行init进程
2.Linux系统是属于单内核的它有内核模块和其他外围模块组成,外围模块在/lib/modules/内核版本号命名目录/下
3.在已有的系统上建立一个独立的小系统
a.在root家目录下建立一个测试根目录
mkdir -pv /root/test/vimroot/ /root/test/vimroot/{lib,bin}
b.复制/bin/bash文件到/root/test/vimroot/bin/目录下
cp /bin/bash /root/test/vimroot/bin/
可以用which命令查看二进制文件在哪
which bash
c.用ldd命令查看bash文件依赖哪些库文件
ldd /bin/bash
d.复制依赖的库文件到相应的目录下
cp /lib/libc.so.6 /root/test/vimroot/lib/
e.再用chroot命令切换根文件系统
chroot /root/test/vimroot/
4.Linux下的运行级别--runlevel
运行级别:0-6
0:halt(关机)
1: single user mode, 直接以管理员身份登录(单用户模式), s,S,single,1
2:multi user mode, no NFS(多用户模式,带有网络功能)
3: multi user mode, text mode(多用户模式,字符界面)
4:reserved(保留级别)
5: multi user mode, graphic mode(多用户模式,图形界面)
6: reboot(重启)
5./etc/inittab文件设置默认运行级别
id:3:initdefault:
6.bootloader(MBR 主引导记录)
LILO: Linux Loader: 不支持大硬盘,但在嵌入式系统中使用
GRUB: Grand Unified Bootloader
Stage1: 在MBR中
Stage1_5: 用来识别不同的文件系统
Stage2: 在/boot/grub/中
/etc/grub.conf文件
default=0 # 设定默认启动的title的编号,从0开始编号
timeout=5 # 等待用户选择的超时时长,单位是秒
splashimage=(hd0,0)/grub/splash.xpm.gz # grub的背景图片
hiddenmenu # 隐藏菜单
password --md5 $1$HKXJ51$B9Z8A.X//XA.AtzU1.KuG. # 设置grub的密码,必须在title前面
title Red Hat Enterprise Linux Server (2.6.18-308.el5) # 内核标题,或操作系统名称,字符串,可自由修改
root (hd0,0) # 内核文件所在的设备。对grub而言,所有类型硬盘一律hd,格式为(hd#,N);hd#, #表示第几个磁盘;最后的N表示对应磁盘的分区
kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/vol0/root rhgb quiet # 内核文件路径,及传递给内核的参数。 在/proc/cmdline文件中
initrd /initrd-2.6.18-308.el5.img # ramdisk文件路径,镜像设备文件
7.使用grub-md5-crypt命令设置grub密码
runlevel命令--查看运行级别
who -r --查看当前运行级别
uname -r--查看内核版本号
8.安装grub(grub损坏,修复grub)
a.手动破坏bootloader
dd if=/dev/zero of=/dev/sda bs=400 count=1
b.进入grub命令行,安装grub stage1
grub
c.指定内核所在分区
grub> root (hd0,0)
d.安装grub 并且指定安装到那个磁盘上
grub> set (hd0)
e.然后在重新启动
shutdown -r now
安装grub第二种方式:
# grub-install --root-directory=/path/to/boot‘s_parent_dir /PATH/TO/DEVICE