使用 CD 创建 DVD

Jump to: navigation, search


简述

本篇文档告诉您如何把 5 张 CD 合并为一张 DVD 构成一个 SUSE Linux 发行版,这里的步骤也适用于目前的 SLED 10。

一位SUSE用户写了一个程序 makeSUSEdvd 可以简单合成DVD。 先下载所有CD,可以是Novell SUSE CD 或是openSUSE CD。(或者SLED 10 预览版 CD). 无需刻录,只要把 5CD 镜像放到一个空目录中。 你需要知道 root 密码。 如果你不知道就只能多费些力气。

Icon-info.png
当新版 SUSE Linux 发布请使用最新版本的 makeSUSEdvd

对于 SUSE 10.1 (以及 SLED 10) 现在版本是 0.33

准备工作

如果你开始运行了 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 显示版本。

Iso 目录

makeSUSEdvd -d /dir/to/iso ISO 所在目录,默认是脚本所在的目录。

DVD iso 目录

makeSUSEdvd -o /dir/to/output 输出 DVD ISO 的目录。

源目录

makeSUSEdvd -s /dir/to/source 源目录放置源或临时文件。最理想是你使用 -i 选项并希望为网络安装而安装到硬盘比如 /srv/ftp/suse

使用 CD 而不是 ISO 文件

makeSUSEdvd -c 这样可以使用 CD 而不是 ISO 文件。你会被提示输入 CD 挂载路径,默认是 /media/cdrom

不需 DVD ISO

makeSUSEdvd -i - 不会输出 ISO 。它会给你一个 grub 或 LILO 实例,便于你无 CD 安装。 最后它会给出一个分录,可以用在 GRUBLILO ,你可以用来进行无 CD 安装。

加入 RPM 目录

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_descrmkisofsrpm。如果任何一个没有安装,有两种情况:

运行着 SUSE

程序会询问是否用 yast 安装这些程序。如果你不想这样,按除了大写 Y 之外的任意键。然后程序会终止,你必选装上那些程序如果你还想重新运行这个程序。
如果你按了大写 Y,会继续问你 root 密码以启动文本模式的 yast 。然后你就在简陋的图形界面下安装上缺少的包就行了。
如果那些程序都安装上了,它会在挂载第一个 ISO 的时候询问 root 密码,然后继续程序。

  • 程序仅询问一次 root 密码
  • 如果以上提到的任何一个步骤失败了,重新手动安装程序

没运行 SUSE

如果你用的是一个 Linux 发行版,你需要安装下列程序:

  1. create_package_descr。这是个perl 脚本,专为 SUSE 的这个功能而写,从任何 SUSE 镜像站下载安装 autoyast2-utils 的 RPM ,或者下载create_package_descr ,解压并把 create_package_descr 放在你$PATH任何地方。检查有没有可执行权限(chmod 755)。
  2. rpm。一些发行版已经有这个了。一些其它的可能需要安装。没有这个组件,程序不会运行。
  3. mkisofs。用来制作 iso 文件,如果你有 DVD 刻录机一般已经安装上了。

缺少任何一个组件运行脚本将失败,一旦装全程序就会正常。

手动从 CD 得到一个 DVD

This HOWTO has been posted to the opensuse-Mailinglist and I think it should be made public here as well. This HOWTO has been worked out on SUSE Linux 9.3 pro together with BETA1 and BETA2. These instructions apply to BETA2 but can be adjusted to BETA1 accordingly. You need the Packages "autoyast" and "autoyast-utils" in order to get this to work.

--Macmewes 11:17, 19 Aug 2005 (MDT)


  • 先从一个镜像站点下载所有 CD 镜像
    [1]
  • 挂载全部镜像
    # 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 全部挂载
    # umount /mnt/SL10B2CD01
    # umount /mnt/SL10B2CD02
    # umount /mnt/SL10B2CD03
    # umount /mnt/SL10B2CD04
    # umount /mnt/SL10B2CD05
    
  • 进入你拷贝了 CD 内容的目录。你可以删除除了 "media.1" 其它的 media 目录
    # cd /tmp/sl10b2dvd
    # rm -rf media.2 media.3 media.4 media.5
    
  • 进入"media.1" 目录,使用编辑器改变 "media" 文件。原文件中的 5 改为 1 ,因为原来需要 5 CD 安装,现在只需要一张 DVD。
    # cd /tmp/sl10b2dvd/media.1
    # joe media
    # rm -f media~
    
  • 现在我们要重建包描述文件,确定对 "boot" 目录有写权限。可能看到警告,忽略它们。
    # 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
    
  • 现在创建 ISO。请在一行内写下下列内容。
    # 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
    
  • 你可以用这个 ISO-镜像做虚拟机用的 DVD 也可以刻录出来。

其它信息和链接