FHS 标准的文件系统的目录结构

整体流程

加电--》BIOS--》Bootloder--》kernel--》initrd(initramfs,嵌入式就结束了就是最后的文件系统这里有驱动声卡,显卡之类的等和工具包busybox)--》rootfs最后的真是文件系统

总序:

通过引导程序isolinux.bin和引导程序的配置文件boot.cat或isolinux.cfg来引导kernel和临时文件系统initrd。引导临时文件系统tmpfs(initrd一般是initramfs为roofs最后的系统做环境准备)目的是为安装最后的系统做环境准备。最后最好rootfs在安装grup引导程序,就over了;详细如下:

1、isohdpfx.bin 

isolinux.bin是引导程序类似grup作用类似,这个引导程序的配置文件是isolinux.cfg,通过配置文件里面的内容进行执行,可以直接写kernel,initrd的位置进行加载启动,也可以去读取别的配置文件在加载

2、isolinux.cfg的内容

<pre name="code" class="html">DEFAULT loadconfig

LABEL loadconfig
  CONFIG /redflag/boot/syslinux/syslinux.cfg
  APPEND /redflag/boot/syslinux/


 3、根据isolinux.cfg的配置发现 
 /redflag/boot/syslinux/syslinux.cfg。在这个路径下有menu.c32  splash.png  syslinux.cfg  vesamenu.c32文件,其中syslinux.cfg 内容如下: 
 

UI vesamenu.c32
DEFAULT qomo
PROMPT 0
MENU TITLE Red Flag inWise  LiveCD
MENU BACKGROUND splash.png
TIMEOUT 30

MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

MENU COLOR border       30;44   #40ffffff #a0000000 std
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel        37;44   #50ffffff #a0000000 std
MENU COLOR help         37;40   #c0ffffff #a0000000 std
MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07        37;40   #90ffffff #a0000000 std
MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

LABEL QOMO
MENU LABEL QOMO inWise
LINUX /redflag/boot/x86_64/vmlinuz quiet splash
INITRD /redflag/boot/x86_64/redflagiso.initrd
APPEND redflagisolabel=QOMO rflive
ONTIMEOUT QOMO

LABEL QOMO-safe
MENU LABEL QOMO inWise Safe Mode
LINUX /redflag/boot/x86_64/vmlinuz quiet splash
INITRD /redflag/boot/x86_64/redflagiso.initrd i915.modeset=0 nouveau.modeset=0 radeon.modeset=0
APPEND redflagisolabel=QOMO rflive

至此kernel和initrd通过引导程序isolinux.bin引导起来了,之后把initrd加载到内存解开,解开之后就是busybox提供的一个工具集,要是嵌入式到此就结束了,桌面或是服务器还要到最后的文件系统。在initrd中只要是的是通过busybox提供的工具集在init或是linuxrc的shell的脚本中为最外层的filesystem做准备。在initrd中有几个重要的目录bin、sbin、linuxrc。而linuxrc就是给用户留出的接口,可以在linuxrc里面做一些事情。如怎么去安装外层的文件系统。


第一:编译内核见Kernel编译,这个是最核心的。


第二:制作initrf见:initrd的多种制作方法,这个要是嵌入式就是最终的filesystem。如果是桌面或是服务器initrd只是temfs临时文件系统


第三:制作最终的文件系统,文件系统的目录结构应该符合FHS标准。LFS方式:LFS方式制作跟文件系统;debootstrap方式:febootstrap方式:busybox方式:

           deb系统(ubuntu)提供一个制作标准的文件系统工具debootstrap,用来构建一套基本的根文件系统。既包含了/boot、/etc、/bin、/usr等,它的体积比发行版小很多功能也不强大,所以只能说是基本的系统。rpm(centos,fedora)系类的也提供了类似的工具febootstrap。制作根文件系统最全面的还是LFS,而嵌入式是用busybox工具制作根文件系统。

你可能感兴趣的:(FHS 标准的文件系统的目录结构)