本篇文档告诉您如何把 5 张 CD 合并为一张 DVD 构成一个 SUSE Linux 发行版,这里的步骤也适用于目前的 SLED 10。
一位SUSE用户写了一个程序 makeSUSEdvd 可以简单合成DVD。先下载所有CD,可以是Novell SUSE CD 或是openSUSE CD。(或者SLED 10 预览版 CD).无需刻录,只要把 5CD 镜像放到一个空目录中。你需要知道 root 密码。 如果你不知道就只能多费些力气。
如果你开始运行了 makeSUSEdvd 就忽略这些内容。
如果没有,那么首先开一个终端。确保磁盘上有大概 4G 的未使用空间放置 DVD ISO。
CD ISO 可以放在任何地方,但是你必须对那个目录有写权限。目录里不能有其它东西。如果必要新建一个目录:
# mkdir SUSECD
如果空间不足以放下 DVD ,改变脚本中 DVD_DIR="/tmp/DVD_DIR" 指向有足够空间的地方。
在主目录下,你该有一个 ~/bin 目录放置你自己的二进制文件,此目录在你的主目录下。这是默认的 SUSE 配置。如果不是你就创建一个。cd 到你的主目录,mkdir ~/bin。现在,下载 makeSUSEdvd 然后解压:
# gunzip makeSUSEdvd.gz
然后从下载到的地方复制出来
# mv makeSUSEdvd ~/bin/
程序现在可以运行了,如果'bin不在你的当前$PATH,你也可以给出全部路径运行:
# /home/yourlogin/bin/makeSUSEdvd
或者在你下载的地方运行。重启终端将回到你的$PATH。
到你放置 CD ISO 的目录然后键入
# makeSUSEdvd
再次注意目录中除了 ISO 不能有其它东西。根据屏幕提示,你的 dvd.iso 将被复制到 /tmp/DVD_DIR/ ,然后你可以刻录出来。可以改变脚本,把 DVD ISO 放到其它地方。看看程序其它功能,可以输入:
# makeSUSEdvd -h
脚本默认应该运行在存有 ISO 的目录,并把 DVD ISO 输出到 /tmp/DVD_DIR。脚本还有其它功能。
makeSUSEdvd -h 使用说明。
makeSUSEdvd -v 显示版本。
makeSUSEdvd -d /dir/to/iso ISO 所在目录,默认是脚本所在的目录。
makeSUSEdvd -o /dir/to/output 输出 DVD ISO 的目录。
makeSUSEdvd -s /dir/to/source 源目录放置源或临时文件。最理想是你使用 -i 选项并希望为网络安装而安装到硬盘比如 /srv/ftp/suse
makeSUSEdvd -c 这样可以使用 CD 而不是 ISO 文件。你会被提示输入 CD 挂载路径,默认是 /media/cdrom。
makeSUSEdvd -i - 不会输出 ISO 。它会给你一个 grub 或 LILO 实例,便于你无 CD 安装。最后它会给出一个分录,可以用在 GRUB 或 LILO ,你可以用来进行无 CD 安装。
makeSUSEdvd -a 当你有个装 RPM 文件的目录,你可以把这个目录合并到 ISO 中。目录及其子目录会添加到ISO上suse/目录下。这也包含非 ISO 文件。这些 RPM识别出来可以在安装过程中直接安装。比如,如果你把 makeSUSEdvd RPM 放在 /usr/local/bin/RPMS/noarch/ ,只要添加 /usr/local/bin/RPMS 为源你就可以在安装 SUSE 的时候安装makeSUSEdvd了。
-h 和 -v 不能组合使用,-c 和 -s 也不行。举例实现在脚本 ISO 不在一个目录下安装到 FTP 目录上:
# makeSUSEdvd -d download/cd -s /srv/ftp/suse -i
举例实现/tmp 又不够大的情况下从 CD 得到 ISO 文件 :
# makeSUSEdvd -c -o /data1/DOS
程序会检查是否安装了一些其它程序,它们是 create_package_descr、mkisofs 和 rpm。如果任何一个没有安装,有两种情况:
程序会询问是否用 yast 安装这些程序。如果你不想这样,按除了大写 Y 之外的任意键。然后程序会终止,你必选装上那些程序如果你还想重新运行这个程序。
如果你按了大写 Y,会继续问你 root 密码以启动文本模式的 yast 。然后你就在简陋的图形界面下安装上缺少的包就行了。
如果那些程序都安装上了,它会在挂载第一个 ISO 的时候询问 root 密码,然后继续程序。
如果你用的是一个 Linux 发行版,你需要安装下列程序:
缺少任何一个组件运行脚本将失败,一旦装全程序就会正常。
--Macmewes 11:17, 19 Aug 2005 (MDT)
# mkdir -p /mnt/SL10B2CD01 && mount -o loop /path/to/iso/SUSE-10.0-CD-OSS-i386-Beta2-CD1.iso /mnt/SL10B2CD01 # mkdir -p /mnt/SL10B2CD02 && mount -o loop /path/to/iso/SUSE-10.0-CD-OSS-i386-Beta2-CD2.iso /mnt/SL10B2CD02 # mkdir -p /mnt/SL10B2CD03 && mount -o loop /path/to/iso/SUSE-10.0-CD-OSS-i386-Beta2-CD3.iso /mnt/SL10B2CD03 # mkdir -p /mnt/SL10B2CD04 && mount -o loop /path/to/iso/SUSE-10.0-CD-OSS-i386-Beta2-CD4.iso /mnt/SL10B2CD04 # mkdir -p /mnt/SL10B2CD05 && mount -o loop /path/to/iso/SUSE-10.0-CD-OSS-i386-Beta2-CD5.iso /mnt/SL10B2CD05
# mkdir -p /tmp/sl10b2dvd # cp -rfvp /mnt/SL10B2CD01/* /tmp/sl10b2dvd # cp -rfvp /mnt/SL10B2CD02/* /tmp/sl10b2dvd # cp -rfvp /mnt/SL10B2CD03/* /tmp/sl10b2dvd # cp -rfvp /mnt/SL10B2CD04/* /tmp/sl10b2dvd # cp -rfvp /mnt/SL10B2CD05/* /tmp/sl10b2dvd
# umount /mnt/SL10B2CD01 # umount /mnt/SL10B2CD02 # umount /mnt/SL10B2CD03 # umount /mnt/SL10B2CD04 # umount /mnt/SL10B2CD05
# cd /tmp/sl10b2dvd # rm -rf media.2 media.3 media.4 media.5
# cd /tmp/sl10b2dvd/media.1 # joe media # rm -f media~
# chmod 777 -Rv /tmp/sl10b2dvd/boot # cd /tmp/sl10b2dvd/suse # create_package_descr -x setup/descr/EXTRA_PROV -l english -l spanish -l french -l german -l czech -l hungarian -l italian
# mkisofs -v -V SU100OSS.001 -r -J -l -L -P "SuSE Linux AG" \ -b "boot/i386/loader/isolinux.bin" \ -c "boot/i386/loader/boot.cat" \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -graft-points -o /tmp/openSuSE-10.0-beta2-DVD.iso \ /tmp/sl10b2dvd