认识initrd进程的作用,及创建小Linux

 init进程的任务:/etc/inittab

action:
  respawn:一旦process终止了,就会立即再启动一次
  wait:进入某个特定级别后process才会启动一次,并且直到结束为止
  initdefault:设定默认运行级别;
  sysinit:系统初始化 系统启动过程中process会被执行;
  ctrlaltdel:当用户同时按下Ctrl+Alt+Del键时执行进程
  
  
inittab:
  1、定义默认运行级别
  2、系统初始化脚本指定
  3、特定级别目录下的脚本执行(stop所有K开头的服务,start所有S开头的服务)
  4、设定Ctrlaltdel组合键的功能
  5、定义UPS电源故障或电源重新恢复时执行的进程
  6、启动虚拟终端  (mingetty是启动虚拟终端的命令)
  7、初始化图形终端
 
/etc/rc.d/rc.sysinit
  1、激活udev和selinux
  2、根据/etc/sysctl.conf文件设定内核参数
  3、设定系统时钟
  4、识别键映射
  5、启用swap分区
  6、设定主机名
  7、根文件系统检测及重新以读写方式挂载
  8、激活RAIDH和LVM设备
  9、启用磁盘配额
  10、检测及挂载其他文件系统(/etc/fstab)
  11、清除过期的锁和PID文件
  
  创建小LINUX的步骤
  
  1、加硬盘,分区:
   1:100M
   2:512M
   3:128M
 
把1和2创建为ext3的文件系统并挂载
  mkdfs -t ext3  /dev/sdb1 
  mkdfs -t ext3  /dev/sdb2
   mount /dev/sdb1   /mnt/boot  
    mount /dev/sdb2   /mnt/sysboot
 
2、安装grub
# mkdir /mnt/boot/grub
# cp /usr/share/grub/i386-redhat/* /mnt/boot/grub
# grub
grub> root (hd1,0)
grub> setup (hd1)
  编辑 grub的配置文件
   vim /boot/grub/grub.conf
   default=0
   timeout=9
   title  This is a micro Linux
          root (hd0,0)
          kernel /vmlinuz ro root=/dev/sda2 rhgb quiet 
          initrd /initrd.gz
          保存
  
3、复制内核并提供initrd:
# cp /boot/vmlinuz-$(uname -r) /mnt/boot/vmlinuz
# mkdir /tmp/linux
# cd /tmp/linux
# zcat /boot/initrd-$(uname -r).img | cpio -id
# vim init 
找到/dev/vo10/root 换成 /dev/sda2
 
# find . | cpio -o -H newc --quiet | gzip -9 > /mnt/boot/initrd.gz
 
  
4、提供根文件系统
# cd /mnt/sysroot
# mkdir -pv ./{/etc/rc.d, sbin, bin, usr, proc, sys, tmp, lib, mnt, var, lib, media, dev, misc, opt }  
# cp /sbin/init sbin/
# cp /bin/bash bin/
 
复制上述两个可执行文件依赖的库文件:
# ldd /sbin/init
  ldd /bin/bash
# cp 到 lib/
 
 
5、提供配置文件
# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
 
# vim /etc/rc.d/rc.sysinit
#!/bin/bash
#
echo -e "\tWelcome to LLinux"
/bin/bash
 
 
# chmod +x etc/rc.d/rc.sysinit
 
rc.local:
   服务执行的最后一个脚本,它不定义任何服务

你可能感兴趣的:(linux,职场,process,start,休闲)