频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

制作U盘启动的FREEBSD完全版

来源: 作者: 出处:巧巧读书 2006-08-05 进入讨论组
关 键 词:freebsd  os  ssh  防火墙  服务器  

  一:制作可以启动的映象文件

  1:dd if=/dev/zero of=/mnt/image bs=1k count=50k
  用dd命令生成一个文件,名为image,大小为5M。


  2:mdconfig -a -t vnode -f image -u 0
  建立一个用image为映象的ramdisk,设备为/dev/md0
  -a 增加一个ramdisk
  -t 代表ramdisk的类型
  -f 代表用来作ramdisk的映象文件
  -u 为ramdisk的设备号


  3:disklabel -Bw /dev/md0
  B 安装启动程序到ramdisk的启动标签。
  w 用已有的启动程序写标签。(bsd分区)


  4:newfs /dev/md0a
  为a分区建立UFS文件系统


  5:mount /dev/md0a /mnt/ram
  将md0a设备装载到/mnt/ram目录


  6:拷贝启动一个bsd系统需要的文件到/mnt/ram:
  包括/boot /etc /bin /sbin /dev /lib /libexec /root 等等。
  为了方便检查可
  ln -s bin sbin
  ln -s bin usr/bin
  ln -s bin usr/sbin
  ln -s lib usr/lib
  ln -s libexec usr/libexec
  等等。
  为了节约磁盘空间。/usr/lib可根据需要的程序拷贝。例如:sshd
  ldd /usr/sbin/sshd命令可以列出sshd需要的lib文件,只拷贝需要的文件。
  内核最好从新编译,只保留需要的设备。
  然后用kgzip /boot/kernel/kernel压缩。
  mv /boot/kernel/kernel.kgz /boot/kernel/kernel
  修改/etc/fstab
  删除不需要的部分(基本上都不需要)
  加入
  /dev/md0a / ufs rw 0 0
  注意后面一定用0 0.否则rc过不了。因为fsck -p不能用到ramdsk上面。


  7:cd /mnt
  umount ram
  卸载ramdisk
  压缩image
  gzip -9 image


  二:制作可以启动的u盘


  8:插入u盘(大多u盘都可以启动,大多p4主板都支持usbhdd方式启动)
  disklabel -wB /dev/da0
  newfs /dev/da0a
  (前面讲过的分区,格式化)


  9:只拷贝/boot到u盘。删除不要的ko文件
  如果内核编译时选择了所有需要的模块可以全部删除ko文件。


  10:编辑u盘里的/boot/default/loader.conf文件,在最后面加入:
  exec="unset acpi_load"(如果你需要acpi可以不要这行,当然BIOS也必须打开,如果加入这行,bios中acpi必须打开)
  exec=".(空格loading kernel空格) cr"(系统执行到这里将显示括号里的内容)
  exec="load kernel"
  exec=".(空格loading mdimage ) cr"
  exec="load -t md_image /image"
  去掉vfs.root.mountfrom=""前面的“#”号在“”号中填入:ufs:/dev/md0a
  系统将/dev/md0a装载为根目录。


  11:将image.gz 拷贝到u盘。


  12:启动测试。
  备注:


  1:在测试image文件是否可用时最好直接试用:
  方法:启动系统时出现菜单选6
  输入:
  unload
  load kernel
  load -t md_image /mnt/image
  set vfs.root.mountfrom=ufs:/dev/md0a
  boot
  然后系统将不从硬盘启动,而从预先装载的image启动,反复检查出错信息,添加需要的文件。


  2:多用ldd命令检查程序执行需要的lib文件。


  3:由于系统启动过后可能有需要保存的内容,可以利用cron来解决。
  比如我的ppp.secret
  我写了个简单的sh 在系统启动时拷贝u盘根目录的ppp.secret 到/etc/ppp/和/tmp
  然后写了个比较/etc/ppp/ppp.secret /tmp/ppp.secret的sh如果不同就备份/etc/ppp/ppp.secret到u盘根目录。
  相信其他的需要保存的内容也可以参考我的方法。


  4:这个东西可以运用到很多地方。防火墙服务器、甚至工作站(ramdisk非常快)


  5:本人系正中bsd菜鸟一个,有不对的地方多多提点。   

更多文章 更多内容请看Freebsd频道  FreeBSD使用教程  FreeBSD系统安全管理专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
·FreeBSD系统安全管理 (7587篇文章)
·FreeBSD使用教程 (5375篇文章)
·Freebsd频道 (625篇文章)
热点标签: freebsd  os  ssh  防火墙  服务器  
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
 
Web 本站
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章