制作livecd了解的几个工具程序

2009-05-13 11:23:27来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

定制livecd学到的几个工具程序
杜比环绕声
定制FreeBSD的livecd,不可避免的要与一些工具程序打交道,当然也要补充一些平时不太用到的知识,比如虚拟磁盘什么的,这些知识有的需要更仔细的看handbook,而有些只能是通过man手册,进行针对性的了解。为了强化记忆,也为了更好的提高对相关知识的深入认识,我杂七杂八的整理一些,希望对自己有用。
1、关于内存文件系统,简称mfs
归纳起来说,就是利用一个映像文件建立一个内存设备,然后挂载使用,这种叙述很可能是很不正确的,但我目前的理解就是这样,利用内存文件系统可以解决livecd运行时,某些分区可写的问题,在freesbie中的extra目录下,提供了如下几个脚本:
rootmfs.sh  :   作用是在livecd启动时,创建一个root 内存文件系统
cp ${LOCALDIR}/extra/rootmfs/rootmfs.rc ${BASEDIR}/etc/rc.d/rootmfs
chmod 555 ${BASEDIR}/etc/rc.d/rootmfs
echo "Saving mtree structure for /root"
mtree -Pcp ${BASEDIR}/root > ${TMPFILE}
mv ${TMPFILE} ${BASEDIR}/etc/mtree/root.dist
在这些代码中值得注意的是 mtree 这个命令,在最后一行代码中,保存 /root 目录下的文件属性到 root.dist 文件中,以便在livecd 运行 rootmfs 时,在内存文件系统中恢复 /root 目录下文件的各种属性。
从上面的代码也能看出,livecd 创建 /root 这个内存文件系统是通过运行拷贝到 /etc/rc.d/ 目录下的rootmfs来得到的,具体的执行过程是:
/etc/rc.d/rootmfs 的代码:
# 按照mdconfig的参数,建立一个内存文件系统设备名
device=$(mdconfig -a -t malloc -o compress -s ${rootsize})      
# 打上磁盘标记
bsdlabel -w ${device} auto
# 建立一个内存文件系统
newfs -n -m 2 /dev/${device} > /dev/null 2>&1
# 把生成的设备与具体的 tempdir 指定的目录进行挂载
mount -o noatime /dev/${device} ${tempdir}
back=$PWD
cd /root
# 拷贝光盘 /root 目录下的文件到 tempdir 目录下
find . -print -depth | cpio -dump --quiet ${tempdir}
cd $back
# 恢复拷贝到 tempdir 下的文件的属性
mtree -PUer -q -p ${tempdir}  /dev/null 2>&1
# 释放内存文件系统与tempdir的联系
umount ${tempdir}
# 把刚才生成的内存文件系统设备挂到 /root 这个目录下,
mount -o noatime /dev/${device} /root
# 至此,/root目录下的文件与光盘上的/root目录已经没有关系了,而且系统当前的 /root 目录是可读写的。
上述代码是一个典型的建立内存文件系统的过程,其中用到了以下几个工具程序:
    a、mdconfig -a -t malloc -o compress -s ${rootsize) 参数t指定的内存磁盘类型,参数o指定一些选项,这里指定压缩,参数s,指定的内存磁盘的大小,单位字节。这个命令行运行后,就可以在内存中利用malloc方式生成指定参数的内存磁盘了。
    b、bsdlabel -w ${device} auto ,bsdlabel这个命令行自动写卷标到内存磁盘。
    c、newfs
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12258/showart_469431.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:pf 限速2

下一篇:KDE3桌面环境中的服务