Mandriva CD -e kopeerimine DVD -ks
Allikas: Pingviini viki
Kui sa oled alla laadinud Mandriva CD ISOd ja soovid neid kokku panna üheks DVD ISOks siis selleks võid sa kasutada mdvcd2dvd skripti, mille sa võid alla laadida siit.
Skripti kasutamiseks pead sa ta kas lahtipakkima, kui sa laadisid selle alla ülalolevast lingist
gunzip mdvcd2dvd.sh.gz
ja andma talle käivitamis õigused, või kui sa kopeerisid selle allolevast tekstist ja salvestasid faili:
chmod +x mdvcd2dvd.sh
Skript peab olema ühes ja samas kataloogis koos CD ISO -ga.
Praegune skript näeb välja nii:
#!/bin/sh # mdvcd2dvd.sh # Converts set of Mandriva CD iso images to a single DVD iso image. # Copyright (C) 2005, R.James <upsnag@charter.net> # 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 <upsnag@charter.net> # 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