lsstarboy 发表于 2014-12-03 11:41

makefs制作个性Live光盘

本帖最后由 fender0107401 于 2014-12-03 19:11 编辑

有自己制作发行版光盘的想法吗?如果有,那就跟我一起做吧!
这次,我们做一个比较基本的Live系统,除了基本系统基本什么都没有的系统,因为写教程吧,我要尽量简洁,以便突出主要的步骤,但在必要的地方,我会给提示可以做哪些后续的工作,以此来打造属于你自己的发行光盘。

首先,你要找到FreeBSD的光盘或启动U盘,实在找不到,起码要到网上去下载两个文件:base.txz,kernel.txz,amd64版本最好再带上lib32.txz,这三个文件已经包含在FreeBSD发行光盘或U盘中了——当然,名称里含有bootonly的那几个文件除外。至于FreeBSD的版本,可以是i386,也可以是amd64,其他的系统没做测试,但原理应该都一样,区别应该在启动代码的部分,本文以下的步骤以amd64版的iso disk1为例。

有了这三个文件,就可以开始干活了,大致的工作流程为:
解压txz文件->在/mnt中构建一个完整的系统->必要的文件调整->makefs压制光盘映像

1.挂载FreeBSD的发行光盘到/media,注意光盘名,用的是cd0,有的系统是acd0:

        mount -tcd9660 /dev/cd0 /media

2.进入/media,找到那三个文件,解压到/mnt中去,在/mnt中就有了一个完整的系统目录文件:
        cd /media/usr/freebsd-dist                                // 进入发行版光盘,找到压缩文件
        tar -xzvpf base.txz -C /mnt
//解压 base,注意加了p参数,保证权限,同时用了-C参数,把文件都解压到/mnt下
    tar -xzvpf kernel.txz
//解压默认的内核
        tar -xzvpf lib32.txz
//解压lib32兼容库


3.建一个基础的fstab,否则无法正确启动。对于sata的光驱,这儿应该写acd0:
   vi /mnt/etc/fstab:
        /dev/cd0      /            ufs   ro      1       1

4.做其他的工作,比如:安装pkg包,做系统精减,甚至压缩文件系统,还有做一些系统的优化工作……当然都是以/mnt为根目录来做的。

5.打包映像:

makefs -t cd9660 -o rockridge,bootimage=i386\;/boot/cdboot,no-emul-boot,label=MyBSD/root/my.iso/mnt

上面的命令细节可以参照makefs的手册,提醒注意的是bootimage后面有个反斜杠,它的作用是转义后面的分号,因为分号是cd9660的一个参数,不转义的话就成了shell的含义了。

6.挂载到虚拟机里面测试,这个工作就不再详细说了,发现问题再回来找原因吧。


怎么样,做光盘还是比较容易的吧,其实在boot/loader.conf可以配上启动的图片,感觉会更炫一些。做U盘映像要稍微麻烦一些,但步骤基本相似。




http://bbs.landingbj.com/t-0-248142-1.html

fender0107401 发表于 2014-12-03 19:12

本帖最后由 fender0107401 于 2014-12-03 19:12 编辑

注意格式,全角、半角什么的。

格式清楚,别人看着会方便一点。

action08 发表于 2014-12-04 09:16

本帖最后由 action08 于 2014-12-04 09:16 编辑

恩,最好用code格式

方便菜鸟直接复制粘贴:mrgreen: :wink:
页: [1]
查看完整版本: makefs制作个性Live光盘