Docs/SysAdmin/Combine CD to DVD
From Mandriva Community Wiki
Rick James has posted a graphical utility on the us/en Club forum.
WARNING: it seems it doesnt work yet with the 6 powerpacks CDs, use only the 4 first CDs.
WARNING: Try your iso with a DVD RW first!
Here is what he says:
UPDATE: I've written a new script with a GUI and need a few brave testers.
Its an rpm package so it should be installable by either right-clicking the appropriate link and choosing _Open With > Software installer_ or by saving the file to your hard drive and installing later via: urpmi mdvcdtodvd-version
Mandriva 2006 users try this link.
Mandriva 2007 users try this link.
After installing, you will find it in the menu under Star -> System -> Archiving -> Other -> MdvCDtoDVD.
This is a very early prototype and has some known issues:
- There's no help system yet. If you can't figure out how to use it, post your questions here.
- It is very I/O intensive and requires lots of hard disk space. If you have CD's totaling 4GB, you'll need at least 8GB additional space to build the DVD. (Just a heads-up...nothing I can really do about that.)
- At this time, its just a CD concatenating script. It doesn't try to re-author as a single media. You may get prompted to install CD2, CD3, ... during installation. In the near future, I plan to figure out how mkcd works and fix that problem.
- The fonts are ugly because its written in Tcl/Tk. Mandriva still uses version Tcl/Tk 8.4 which doesn't support anti-aliased fonts (version 8.5 does).
In the not-so-near future I will re-write this in Perl/Gtk. First, I must learn Perl/Gtk. Shocked
When 3 and 4 happen, I'll be one (baby) step closer to WarLy. Smile
Now some good points:
- There is a box which shows what the Total size of the DVD will be. The color of the Total number varies based on these criteria:
- Total < DVD-4.7 shows Green
- DVD-4.7 < Total < DVD-8.5 shows Magenta
- DVD-8.5 < Total shows Red
- In the last two cases, a dialog will verify before proceeding.
- If the Total exceeds your DVD capacity, you may de-select some of the last isos to make it fit. In the next run, you can add those separately. For any run which includes CD1 you'll get a bootable DVD iso.
- You can choose the directory where the build process takes place. For example if your /home partition contains the CD isos and is almost full but you've got plenty of room in /tmp, you can easily point it to build there.
- The output of the build process is sent to a log viewer which can optionally be saved to a file.
Give it a spin and post comments here. As bugs are found, I'll update the links in this post.
HERE IS THE OLD PAGE To be removed if the test is OK
If you downloaded the CD ISOs of a Mandriva release and wish to combine them into a single DVD ISO, you can use the mdvcd2dvd script, which you can download from Here.
The current script code is:
#!/bin/sh # mdvcd2dvd.sh # Converts set of Mandriva CD iso images to a single DVD iso image. # Copyright (C) 2005, R.James <firstname.lastname@example.org> # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 or later. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # Usage: # Put this script in the directory containing the iso's or in your PATH. # Must be root to run. Add execute permissions if necessary. # The directory containing the CD iso files must be current. # Burning: # /usr/bin/growisofs -Z /dev/<yourDVDwriter>=/destination/dvd.iso # Lots of disk space required to work, 3X the distribution size at least. # Changelog: 2005-10-16 R.James <email@example.com> # Remove Bugs/ToDo because described problem disappeared after LE2005. # Make GPL agreement more verbose. Fix syntax error in md5sum check section. # Make some default responses (when just pressing enter) more reasonable. # Must be run as root. if [ $UID -ne 0 ]; then echo "" echo "You must run this as root." echo "" exit 1 fi # Make sure we have some CD iso's in current dir. isolist=`ls -1 *CD*.iso` 2> /dev/null if [ "$isolist" = "" ]; then echo "" echo "Error: No *.iso files found in current directory." echo "" exit 1 fi # Verify that these are the correct iso files. clear echo "" ls -1 *CD*.iso echo "" echo -n "Are these the Mandriva iso files I should combine into DVD? [Y/n]: " read response if [ -z $response ]; then response=y fi echo "" case $response in [Nn]*) echo "Please cd to directory with Mandriva iso files and try again." echo "" exit 0 ;; esac # Look for md5 file and offer check the md5sums. md5file=`ls -1 | grep -m1 md5` if [ "$md5file" != "" ]; then echo -n "Shall I check the md5sums first? [Y/n]: " read response if [ -z $response ]; then response=y fi case $response in [Yy]*) echo "Checking md5sums. Please be patient..." md5sum --check $md5file if [ $? -ne 0 ]; then echo "" echo "There is a problem with the md5sums." echo "" exit 1 fi ;; esac fi # Determine a good default image name then let user decide. defname=`ls -1 *.iso | grep CD1 | sed 's/CD1/DVD/'` if [ "$defname" = "" ]; then defname=Mandriva_DVD.iso fi echo "" echo -n "Name of DVD iso file to create? [$defname]: " read response if [ -z $response ]; then isoname=$defname else isoname=$response fi # The iso image name determines the temporary build dir name. isodir=`echo $isoname | sed 's/.iso//'` # Offer to delete any existing file or dir with the same name. for chkfile in $isoname $isodir; do if [ -d $chkfile ] || [ -f $chkfile ]; then echo "" echo "$chkfile already exists." echo -n "Shall I delete it and proceed? [y/N]: " read response if [ -z $response ]; then response=n fi case $response in [Yy]*) echo "Deleting old $chkfile..." rm -Rf $chkfile ;; *) echo "Script terminated by user." echo "" exit 0 ;; esac fi done # Mount each CD iso and copy required files to build dir. mkdir $isodir mkdir /mnt/cdtmp 2> /dev/null # This umount is just in case the prior run died unexpectedly. umount /mnt/cdtmp 2> /dev/null i=0 echo "" for iso in $isolist; do let i=i+1 mount -o loop,ro,noatime $iso /mnt/cdtmp case $i in 1) echo "Copying CD1..." ls -1 /mnt/cdtmp/media cp -a /mnt/cdtmp/* $isodir echo "Updating package index..." pkgidx=`ls -1 $isodir | grep -m1 .idx` chmod 644 $isodir/$pkgidx sed --in-place 's/Disc[1-9]/DVD/g' $isodir/$pkgidx volname=`grep -m1 DVD $isodir/$pkgidx | sed 's/\ .*//'` ;; *) echo "Copying CD$i..." ls -1 /mnt/cdtmp/media cp -a /mnt/cdtmp/media/* $isodir/media ;; esac echo "" umount /mnt/cdtmp 2> /dev/null done # Generate the image file. mkisofs -J -R -T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 8 -boot-info-table -V $volname -o $isoname $isodir # Offer to clean up. echo "" echo -n "Shall I delete the temporary build directory? [Y/n]: " read response if [ -z $response ]; then response=y fi case $response in [Yy]*) echo "Deleting directory: $isodir..." rm -Rf $isodir ;; *) echo "Preserved directory: $isodir" ;; esac rmdir /mnt/cdtmp echo "" echo "$isoname complete!" echo "" exit 0
This page is based on a tip written by Adam Williamson as a reply to a question in the Cooker ML.