|
BabyLinux制作过程详解(二)(3) RAM disk support initial RAM disk (initrd) support Per partition statics in /proc/partitions
以上几项选择Y,其余全部选择N.
这里的选项比较重要,我想重点说明一下.对于软盘的支持,那是不必说的,那是必备的. loopback device 即回环设备,我们平时用命令
#mount -o loop somecd.ISO /mnt/cdrom
挂装光盘映象文件,或者其他文件系统映象文件时就用到了内核中的loopback 模块,如果没有编译进这个模块,你将不能用上面的命令挂装光盘映象和文件系统映象. 个人认为这个功能是非常重要的,所以编译了进去.
RAM disk support 即内存磁盘(比较贴切的说法是虚拟磁盘,即拨出一部分内存当做磁盘用).这是制作babylinux项目中的核心内容,由于一张软盘的空间有限,babylinux的根文件系统是用gzip压缩法高度压缩的,在运行时,将解压缩后的文件拷贝到一个RAM disk运行,所以在运行时,你在根文件系统上的所有操作实际上是在内存上进行的.但是在形式上和在真正的磁盘上运行一样.只不过放在RAM disk上的所有内容会在系统关机后全部消失.
不仅在运行babylinux时用到ramdisk,我们在制作压缩的根文件系统时也要用到ramdisk,学习ramdisk的使用是做一个babylinux的重要目的之一. 在linux中,还支持另外一种虚拟磁盘,叫做shm, (shared memory),这种虚拟磁盘机制比ramdisk更加先进,ramdisk的大小是固定的,由编译内核时候的default ram disk size 决定.默认为4096K(4M),也可以在内核装载前加上ramdisk_size=参数来决定他的大小,但是系统一旦启动,ramdisk的大小是不能改变的,而shm的大小却动态的改变.默认情况下为物理内存的一半,当系统需要更多内存的时,他就自动缩小.系统内存富余时,他自动增大,这样可以充分灵活的利用内存空间,shm通常用来作为系统的磁盘高速缓存,存放系统运行中的临时文件等.redaht 的linux在默认情况下都有shm的支持,可以用mount和df察看他的挂装点和大小,如下命令:
[root@gucuiwen linux]# mount /dev/hda1 on / type ext3 (rw) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda6 on /home type ext3 (rw) /dev/hda5 on /oracle type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/hda7 on /var type ext3 (rw)
[root@gucuiwen linux]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/hda1 2.9G 2.7G 26M 100% / /dev/hda6 3.8G 1.8G 1.8G 50% /home /dev/hda5 5.7G 677M 4.8G 13% /oracle none 125M 0 125M 0% /dev/shm /dev/hda7 711M 91M 584M 14% /var
虽然shm有这么多的优点,我还是选择了ramdisk,因为ramdisk可以很方便地在系统启动的时候加载,而shm却没那么容易,下面就来讲一下关于内核启动时加载ramdisk映象的相关内容.
initial RAM disk (initrd) support 即初始化ramdisk支持,这个选项让内核有能力在内核加载阶段就能装入RAMDISK,并运行其中的内容,否则只能在系统运行阶段用ramdisk ,我们平时在编译了一个新内核后,如果你的根文件系统用的是ext3,而你没有把ext3编译进内核,而只作为一个模块编译了,那么就需要用mkinitrd命令做一个initrd (initializtion ramdisk),这个ramdisk里放了ext3的模块,这样内核在加载根文件系统前就能正确识别ext3文件系统.否则,内核加载的最后一步就会出现kernel panic cant not find init .... 的错误.
在babylinux项目中,这个选项是必需的,这里的作用是把解压的根文件系统映象装入ramdisk.
Per partition statics in /proc/partitions
|