当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > FreeBSD系统下创建DVD.iso安装光盘

Unix/Linux
磁带驱动器的使用
Linux 指令篇:起始管理--shutdown
Linux Shadow-Password-HOWTO - 6. upgrade或patc
Linux Shadow-Password-HOWTO - 2. 为何shadow你的pa
Linux Shadow-Password-HOWTO - 4. 编译程式
Ethernet HOWTO Linux以太网-HOWTO (6)技术信息
Ethernet HOWTO Linux以太网-HOWTO (7)笔记本电脑联网
Ethernet HOWTO Linux以太网-HOWTO (4)型号的信息
Ethernet HOWTO Linux以太网-HOWTO (5)电缆、同轴电缆、双绞线
Jaz-drive HOWTO -- 4. Jaz 磁片的用法
Jaz-drive HOWTO -- 5. Linux 上的 Jaz 工具软件
Jaz-drive HOWTO -- 6. 从 Jaz 磁片启动系统
LILO, Linux Crash Rescue HOWTO LILO 毁损,无法开机
Printing Usage HOWTO 如何使用打印机-1. 导言
Printing Usage HOWTO 如何使用打印机-2. 打印文档
Printing Usage HOWTO 如何使用打印机-3.文档类别
Printing Usage HOWTO 如何使用打印机-4. 杂项
Printing Usage HOWTO 如何使用打印机-5. 常见问题
Printing Usage HOWTO 如何使用打印机-6. 参考材料
Linux Shadow-Password-HOWTO - 1. 简介

Unix/Linux 中的 FreeBSD系统下创建DVD.iso安装光盘


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 135 ::
收藏到网摘: n/a

准备刻一张FreeBSD-7.0-RELEASE的DVD,网上很多介绍都是在Windows下使用什么iso提取工具的,貌似很麻烦。参考了一些FreeBSD高手的实现,我写了一个简单的脚本,主要功能是从3张disc*.iso创建出一个dvd.iso

1,准备工作:
工作目录 work/ 和 3张disc*.iso, 比如
work/7.0-RELEASE-i386-disc1.iso
work/7.0-RELEASE-i386-disc2.iso
work/7.0-RELEASE-i386-disc3.iso

2,用以下代码创建脚本文件,比如 mkdvd.sh,放在work目录下。用root用户执行,将在work目录下产生一个7.0-RELEASE-i386-dvd.iso的文件。

                                      
            

#!/bin/sh
            
            disc1=`ls | grep "disc1.iso"`
            disc2=`ls | grep "disc2.iso"`
            disc3=`ls | grep "disc3.iso"`
            
            dvd=`echo $disc1 | sed "s/disc1/dvd/"`
            
            ## Prepare temporary dir to store dvd files
            if                                                                                 test                                                                                 -e tmp &&                                                                                 test                                                                                 -d tmp
            then
                rm -fr tmp
            fi
            mkdir tmp
            
            ## Extract contents of each disc*.iso to temporary dir
            for disc in $disc3 $disc2 $disc1
            do
                mdconfig -a -f $disc -u 66
                if                                                                                 test                                                                                 -e /dev/md66
                then
                echo Extract $disc ...
                mount -t cd9660 /dev/md66 /mnt
                tar -cf -                                                                                 -C /mnt .                                                                                 | tar -xf -                                                                                 -C tmp/
                umount /mnt
                mdconfig -d -u 66
                else
                echo Can not create memory disk.
                exit                                                                                 -1
                fi
            done
            
            ##                                                                                 Merge index to point to the first disc
            echo Merge index ...
            cd tmp
            cat INDEX | sed "s/||2/||1/g"                                                                                 > index
            cat index | sed "s/||3/||1/g"                                                                                 > INDEX
            cat INDEX | sed "s/|3/|1/g"                                                                                 > index
            mv index INDEX
            cd ..
            
            ## Make dvd iso file
            echo Make $dvd ...
            mkisofs -R -no-emul-boot -b boot/cdboot -o $dvd tmp
            rm -fr tmp
            
            exit 0