14M的精简Freebsd7 livecd制作方法

之前根据Freebsd livecd的制作过程, Freebsd学习记录Freebsd7系统的精简包,记录制作了14M的精简freebsd7 livecd,现在来详细说说怎样制作,其实Freebsd livecd手工制作还是有两种方法的,一种是Freebsd livecd的制作过程, Freebsd学习记录,这个不是运行在内存中,需要一直插着CD运行,另一种方法就是以下说的了:
精简下压缩包下载: https://www.lpfrx.com/lpfrx.com_livecd7.tar.gz

下载lpfrx.com_livecd7.tar.gz精简压缩包和解压:
cd /
wget https://www.lpfrx.com/lpfrx.com_livecd7.tar.gz
tar xzvf lpfrx.com_livecd7.tar.gz
以上做好,可以从第5步开始.

1. 在根目录新建个livecd的目录
# cd /
# mkdir /livecd
建个拷贝系统文件目录livecd7a
# mkdir /livecd/livecd7a
建个制作生成光碟所需文件的目录makecd
# mkdir /livecd/makecd
————————————————
2.
一. 拷贝启动一个freebsdbsd系统需要的文件到livecd7a目录里, 至于拷贝什么文件,这个请参考从我这里下载的精简包吧, 一一对应文件和文件夹就ok了,当然可以直接使用从这里下载的精简包了。

添加新的命令文件的话,例如wget
可以
# ldd /usr/local/bin/wget
上述命令执行完毕后可以看见
/usr/local/bin/wget:
libintl.so.8 => /usr/local/lib/libintl.so.8 (0x280ac000)
libssl.so.5 => /usr/local/lib/libssl.so.5 (0x280b5000)
libcrypto.so.5 => /usr/local/lib/libcrypto.so.5 (0x280f5000)
libc.so.7 => /lib/libc.so.7 (0x28235000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28331000)
libthr.so.3 => /lib/libthr.so.3 (0x28428000)

除了要拷贝/usr/local/bin/wget到 /livecd/livecd7a/usr/local/bin后
还要拷贝上述的动态库到对应的目录去.

二. 拷贝/livecd/livecd7a/boot 到 /livecd/makecd里
# cp -R -p /livecd/livecd7a/boot /livecd/makecd

# cd /livecd/makecd/boot/kernel
这个是压缩kernel核心,当然,这个核心你可以自己定制,令体积更少,其实这只是启动时用,也可以不压缩也行
# gzip -9 kernel
# 删除/livecd/livecd7a/boot/kernel目录
# rm -r /livecd/livecd7a/boot/kernel
————————————————
3. 修改/livecd/makecd/boot/loader.rc文件,改变启动方式, 这步很重要
# ee /livecd/makecd/boot/loader.rc
在最后一行的beastie-start前面加上 \ , 即
\ beastie-start
然后加上继续加上
load -t md_image /FB70cd
set vfs.root.mountfrom=ufs:/dev/md0a
boot

按键盘的ESC键,然后选择save保存退出.
————————————————
4. 编辑/livcd/livecd7a/etc/rc.conf, 改变一些参数.
# ee /livcd/livecd7a/etc/rc.conf
先清空里边所有的文字,然后输入以下的文字

hostname=”lpfrx.com”
usbd_enable=”NO”
sshd_enable=”YES”
sendmail_enable=”NONE”
syslogd_enable=”NO”
inetd_enable=”YES”
cron_enable=”NO”
update_motd=”NO”
按键盘的ESC键,然后选择save保存退出.
————————————————
5. 制作mount目录ram
# mkdir /mnt/ram
————————————————
6. 用dd制作映象文件,大概30M , 如果你的/livecd/livecd7a/目录超过30M, 就要改改这里了。
# cd /livecd/
# dd if=/dev/zero of=FB70cd bs=1k count=30k

# 用mdconfig挂载刚才生成的映像文件
# mdconfig -a -t vnode -f FB70cd -u 0

# 对新生成的映像文件格式化
# disklabel -Bw /dev/md0
# newfs /dev/md0a

# mount挂在到/mnt/ram目录
# mount /dev/md0a /mnt/ram

#拷贝/livecd/livecd7a文件到/mnt/ram
# cp -R -p /livecd/livecd7a/* /mnt/ram

# 卸载mount的目录
# umount /mnt/ram
# 卸载内存盘
# mdconfig -d -u md0

# 压缩映像文件,生成FB70cd.gz文件
# gzip -9 FB70cd

# 移动文件到FB70cd.gz文件到/livecd/makecd
# cd /livecd
# mv FB70cd.gz makecd
————————————————
7. 制作可以启动的CD光碟
一. 安装mkisofs
# cd /usr/ports/sysutils/cdrtools/
# make install clean
安装后会有mkisofs命令了, 然后reboot机器,再继续操作.

二. 制作CD
#cd /livecd/makecd
#mkisofs -l -R -no-emul-boot -b boot/cdboot -o /livecd/livecd7.iso /livecd/makecd
————————————————
8. 制作完成,

如果从我这里下载的freebsd7 livecd7精简压缩包,那只需从第5步做起就可以了.

我的/livecd/livecd7a/etc/rc.local加了开机自动mount已知的硬盘格式到/mnt目录里,如果你编辑rc.local可以去掉这个功能.
在 /livecd/livecd7a/etc/rc.conf里,我也加上了

background_dhclient=”YES”
NIC=”de em ixgb txp vx bfe bge dc fxp lge nge pcn re rl sf sis sk ste ti tl tx vge vr wb xl cs ed ex ep fe ie lnc sn xe an awi wi at

for i in $NIC; do eval ifconfig_${i}0=”DHCP”;eval ifconfig_${i}1=”DHCP”;done
dhcp_program=”/sbin/dhclient”
dccp_flags=””

这个是为了在开机时,如果局域网里有dhcp, 就可以自动获取ip地址的分配

使用我精简包制作的freebsd7 livecd的话,开机用户和密码是
user: root
password : 123456789

精简包里包含了ftp server和ssh server等服务,ftp无密码登陆的话是/mnt目录,有问题可以上来我这个无聊空间https://www.lpfrx.com这里留言,

这个制作可以在CD运行完毕后拨掉CD仍然可以运行,运行在内存种的.
有什么错误请路过的留言指出,我想到错误再修改吧!
转载请注明原文连接: https://www.lpfrx.com/archives/579/

完成版下载lpfrx.com_14m_FB70livecd.iso

关于无聊人

一个无聊人而已
此条目发表在Freebsd分类目录,贴了, 标签。将固定链接加入收藏夹。

14M的精简Freebsd7 livecd制作方法》有3条回应

  1. 万岁说:

    刚才在虚拟机上试了。不知精简后的系统对安装程序有影响吗?本人读过几年初中,用起来是相当的困难,如果博主装上中文桌面,必定吸引极多的人使用;这对linux的发展也是非常有益。请您仔细考虑

  2. KEJIT说:

    很高兴看到你的文章,我是做流控的代理商,我半路出家,对FreeBSD热爱,不知能否指点一下。方便的话可以加我qq:381722452 验证时填无聊空间或者FreeBSD。

  3. moritenw说:

    对我这种FreeBSD新手但又想搞个自己的东西真是不错的文章。一直想做将运行中的基于FreeBSD的NAS(额外增加了不少port:MySQL, BT等)改为U盘启动,运行于内存,相关配置文件则放到硬盘里,不知道这一想法能否实现,如方便可否指导一下。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注