RHEL DVD光盘制作方法

本文介绍了一个用于将RHEL的4张CD镜像整合到一张DVD镜像的脚本。该脚本由Red Hat工程师编写,可以方便地将多个CD镜像整合到一个DVD镜像中,简化了系统的安装过程。

    Fedora Core系列早已提供DVD(ISO)下载,而使用最广泛的RHEL系列,却依然是4张CD,

安装时要不停的更换光盘。安装结束后,如果再安装某个RPM包,就更加让人头疼,经常是4张光盘

都找个遍才能找到。

    以前看到过Redhat的一个工程师写的CD转DVD的script, 使用起来非常方便。RHEL每发布一个Update,

我都制作一个同样的DVD. 为了避免这个脚本丢失,特纪录如下.

■1. 使用方法

     convert2dvd.sh dir dvdfilename

     ①dir: 存放RHEL 4个ISO文件的目录

     ②dvdfilename , 比如 RHEL4U4_DVD.iso

■2.script ( convert2dvd.sh)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

#/bin/bash

# by Chris Kloiber <ckloiber@redhat.com>

# A quick hack that will create a bootable DVD iso of a Red Hat Linux
# Distribution. Feed it either a directory containing the downloaded
# iso files of a distribution, or point it at a directory containing
# the "RedHat", "isolinux", and "images" directories.

# This version only works with "isolinux" based Red Hat Linux versions.

# Lots of disk space required to work, 3X the distribution size at least.

# GPL version 2 applies. No warranties, yadda, yadda. Have fun.


if [ $# -lt 2 ]; then
 echo "Usage: `basename $0` source /destination/DVD.iso"
 echo ""
 echo "        The 'source' can be either a directory containing a single"
 echo "        set of isos, or an exploded tree like an ftp site."
 exit 1
fi

cleanup() {
[ ${LOOP:=/tmp/loop} = "/" ] && echo "LOOP mount point = //, dying!" && exit
[ -d $LOOP ] && rm -rf $LOOP
[ ${DVD:=~/mkrhdvd} = "/" ] && echo "DVD data location is //, dying!" && exit
[ -d $DVD ] && rm -rf $DVD
}

cleanup
mkdir -p $LOOP
mkdir -p $DVD

if [ !`ls $1/*.iso 2>&1>/dev/null ; echo $?` ]; then
 echo "Found ISO CD images..."
 CDS=`expr 0`
 DISKS="1"

 for f in `ls $1/*.iso`; do
  mount -o loop $f $LOOP
  cp -av $LOOP/* $DVD
  if [ -f $LOOP/.discinfo ]; then
   cp -av $LOOP/.discinfo $DVD
   CDS=`expr $CDS + 1`
   if [ $CDS != 1 ] ; then
                         DISKS=`echo ${DISKS},${CDS}`
                 fi
  fi
  umount $LOOP
 done
 if [ -e $DVD/.discinfo ]; then
  awk '{ if ( NR == 4 ) { print disks } else { print ; } }' disks="$DISKS" $DVD/.discinfo > $DVD/.discinfo.new
  mv $DVD/.discinfo.new $DVD/.discinfo
 fi
else
 echo "Found FTP-like tree..."
 rsync -avP --exclude SRPMS $1/* $DVD
# cp -av $1/* $DVD
 [ -e $1/.discinfo ] && cp -av $1/.discinfo $DVD
fi

rm -rf $DVD/isolinux/boot.cat
find $DVD -name TRANS.TBL | xargs rm -f

# My thanks to Mubashir Cheema for suggesting this fix.
# cd $DVD
mkisofs -J -R -v -T -o $2 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 8 -boot-info-table $DVD

/usr/lib/anaconda-runtime/implantisomd5 --force $2
# Don't like forced mediacheck? Try this instead.
# /usr/lib/anaconda-runtime/implantisomd5 --supported-iso --force $2

cleanup
echo ""
echo "Process Complete!"
echo ""

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

<think>好的,我需要帮助用户了解如何在RHEL 8.6上制作自安装光盘。首先,我需要回忆一下相关的步骤和命令。自安装光盘通常指的是包含自定义内容或自动安装脚本的ISO镜像,这样在安装时可以自动完成某些配置,比如预装软件包或设置用户账户。 首先,用户可能需要安装必要的工具,比如genisoimage或者mkisofs,不过我记得在RHEL中,genisoimage已经被合并到xorriso的软件包中,可能需要安装相关的软件包。另外,创建ISO镜像需要用到mkisofs或者xorriso命令,但具体的包名可能有所不同。 然后,用户需要准备一个工作目录,把需要添加到ISO中的文件放进去。可能包括kickstart文件,用于自动化安装,以及自定义的软件包。此外,可能需要复制原始的ISO内容到工作目录,以便修改。 接下来,修改ISO的内容,比如在isolinux或grub配置中添加自动安装的参数,指向kickstart文件。需要确保引导菜单中的启动选项包含ks=cdrom:/path/to/ks.cfg这样的参数。 之后,使用mkisofs或xorriso生成新的ISO镜像,同时指定必要的参数,比如卷标、引导信息等。特别是要确保生成可引导的ISO,需要指定引导镜像文件,通常是原始ISO中的isolinux.bin或efiboot.img等文件。 最后,验证生成的ISO是否能够正常启动并执行自动安装。可能需要通过虚拟机进行测试,比如使用VirtualBox或KVM。 不过,我需要确认在RHEL 8.6中,具体的包名和路径是否有变化。例如,是否仍然使用genisoimage,或者是否有其他工具推荐。另外,是否必须挂载原始ISO,或者可以直接复制文件。可能需要参考Red Hat的官方文档,但用户可能无法访问,所以需要根据一般经验来回答。 另外,需要注意权限问题,用户是否有权限挂载ISO,以及是否安装了必要的依赖包。例如,可能需要安装xorriso,以及syslinux中的isolinux相关文件。 总结步骤大致如下: 1. 安装必要工具(如xorriso,syslinux)。 2. 挂载原始RHEL 8.6 ISO并复制内容到工作目录。 3. 修改内容,添加kickstart文件,修改引导配置。 4. 生成新的ISO镜像。 5. 测试新ISO。 需要详细说明每个步骤的具体命令,比如挂载ISO使用mount -o loop,复制文件使用cp -r,生成ISO使用xorriso或mkisofs命令,指定参数如-J -R -V等选项,以及引导信息。 另外,需要提醒用户确保使用的kickstart文件正确,否则安装可能会失败。还有,可能需要更新软件仓库信息,如果添加了自定义的rpm包。 现在,按照这些思路组织步骤,确保命令正确,符合RHEL 8.6的环境,同时使用中文清晰说明。</think>以下是RHEL 8.6制作自安装光盘的详细步骤: --- ### 一、准备工作 1. **挂载原始ISO镜像** 将RHEL 8.6安装ISO挂载到临时目录: ```bash mkdir /mnt/iso mount -o loop rhel-8.6-x86_64-dvd.iso /mnt/iso ``` 2. **创建工作目录并复制内容** 创建新目录并复制原始ISO内容: ```bash mkdir ~/custom_iso cp -r /mnt/iso/* ~/custom_iso/ chmod -R u+w ~/custom_iso # 确保有写入权限 ``` 3. **卸载原始ISO** ```bash umount /mnt/iso ``` --- ### 二、添加自定义内容 1. **编写Kickstart文件** 在`~/custom_iso`中创建`ks.cfg`文件,定义自动化安装配置(分区、用户、软件包等): ```bash vim ~/custom_iso/ks.cfg ``` 2. **修改引导配置** 编辑ISO的GRUB引导菜单,添加Kickstart参数: ```bash vim ~/custom_iso/EFI/BOOT/grub.cfg ``` 在`linuxefi`行末尾添加: ```text inst.ks=cdrom:/ks.cfg quiet ``` --- ### 三、生成新ISO镜像 1. **安装依赖工具** ```bash dnf install -y xorriso syslinux ``` 2. **使用`xorriso`生成ISO** 执行以下命令生成可引导镜像: ```bash xorriso -as mkisofs \ -V "RHEL-8.6-Custom" \ -J -R \ -o ~/rhel-8.6-custom.iso \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -eltorito-alt-boot \ -e images/efiboot.img \ -no-emul-boot \ -graft-points \ ~/custom_iso ``` **参数说明**: - `-V`: 设置卷标 - `-J -R`: 使用Joliet和Rock Ridge文件系统 - `-b`: 指定引导镜像路径 - `-e`: 指定UEFI引导镜像 --- ### 四、验证ISO 1. **检查ISO可引导性** 使用`isoinfo`验证: ```bash isoinfo -d -i ~/rhel-8.6-custom.iso | grep "Volume id" ``` 2. **虚拟机测试** 通过VirtualBox或KVM启动ISO,观察是否自动执行安装。 --- ### 五、注意事项 1. **兼容性** 确保所有路径和文件名与原始ISO一致(尤其是`isolinux/`和`EFI/BOOT/`)。 2. **Kickstart验证** 使用`ksvalidator`检查语法: ```bash dnf install -y pykickstart ksvalidator ~/custom_iso/ks.cfg ``` 3. **自定义软件包** 如需添加额外RPM包,需同步更新仓库元数据: ```bash createrepo_c ~/custom_iso/BaseOS/Packages/ ``` --- 通过以上步骤,您将获得一个包含自动化配置的自定义RHEL 8.6安装镜像。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值