Created
July 18, 2025 09:08
-
-
Save dewomser/17f82a9a486b77d1ede2da0732cf5b1b to your computer and use it in GitHub Desktop.
Mount ISO 4 KDE ist nicht von mir getestet . Nur hier weil Herkunfts-URL nicht erreichbar ist.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Mount-ISO v1.4 | |
if which kdesu >/dev/null; then | |
KSU=kdesu | |
else | |
KSU=kdesudo | |
fi | |
BSNAME="`basename "$1"`" | |
if ( `echo "$BSNAME" | grep "Mount-ISO" > /dev/null` ) then | |
MOUNTDIR="$1" | |
else | |
MOUNTDIR="$HOME/media/Mount-ISO ($BSNAME)" | |
fi | |
function dialog { | |
kdialog --title "Mount-ISO" --msgbox "$1" | |
} | |
function dialog1 { | |
kdialog --title "Mount-ISO" --dontagain $BSNAME:nofilemsg --msgbox "$1" | |
} | |
function dialog2 { | |
kdialog --title "Mount-ISO" --getsavefilename "$HOME" "*.iso |ISO Files" | |
} | |
function err { | |
case "$1" in | |
1) | |
ERROR_MESSAGE="\"$2\" is not readable, check file permissions!" | |
;; | |
2) | |
ERROR_MESSAGE="\"$2\" is already mounted!" | |
;; | |
3) | |
ERROR_MESSAGE="\"$2\" could not be created!" | |
;; | |
4) | |
ERROR_MESSAGE="\"$2\" is not mounted!" | |
;; | |
5) | |
ERROR_MESSAGE="Folder \"$2\" exists but \"$3\" is not mounted!" | |
;; | |
6) | |
ERROR_MESSAGE="Could not mount \"$2\"! Check your system settings." | |
;; | |
7) | |
ERROR_MESSAGE="\"$2\" has data error! File might be of wrong type or corrupted." | |
;; | |
8) | |
ERROR_MESSAGE="\"$2\" is not a directory!" | |
;; | |
9) | |
ERROR_MESSAGE="Error creating ISO image from directory \"$2\"!" | |
;; | |
10) | |
ERROR_MESSAGE="\"$2\" is a directory - MD5 sum can not be calculated!" | |
;; | |
11) | |
ERROR_MESSAGE="\"$2\" file does not exist!" | |
;; | |
12) | |
ERROR_MESSAGE="ISO creation failed! Check if you have CD in your CDROM and if you have required permissions." | |
;; | |
13) | |
ERROR_MESSAGE="Unmounting \"$2\" failed! Check if some programs are using it, close them and try again." | |
;; | |
14) | |
ERROR_MESSAGE="Directory \"$2\" is not writable! Check your permissions." | |
;; | |
*) | |
return 0 | |
;; | |
esac | |
dialog "ERROR: $ERROR_MESSAGE" | |
exit 0 | |
} | |
function msg { | |
case "$1" in | |
1) | |
INFO_MESSAGE="ISO image \"$2\" successfully created in \"$3\"!" | |
;; | |
2) | |
INFO_MESSAGE="MD5 checksum of \"$2\" is: \"$3\"" | |
;; | |
3) | |
INFO_MESSAGE="Tracks were saved as \"$2XX.iso\" in \"$3\"" | |
;; | |
4) | |
INFO_MESSAGE="UDF image \"$2\" successfully created in \"$3\"!" | |
;; | |
5) | |
INFO_MESSAGE="CloneCD image was converted into \"$2\" and saved in \"$3\"" | |
;; | |
6) | |
INFO_MESSAGE="Image file \"$2\" is of type \"$3\"" | |
;; | |
7) | |
INFO_MESSAGE="Nero image was converted into \"$2\" and saved in \"$3\"" | |
;; | |
8) | |
INFO_MESSAGE="XBOX image was converted into \"$2\" and saved in \"$3\"" | |
;; | |
9) | |
INFO_MESSAGE="Alcohol image was converted into \"$2\" and saved in \"$3\"" | |
;; | |
*) | |
return 0 | |
;; | |
esac | |
dialog "$INFO_MESSAGE" | |
exit 0 | |
} | |
function note { | |
case "$1" in | |
1) | |
NOTICE="Image mounted successfuly!" | |
;; | |
2) | |
NOTICE="Image unmounted successfuly!" | |
;; | |
3) | |
NOTICE="Image creation canceled!" | |
;; | |
*) | |
return 0 | |
;; | |
esac | |
dialog1 "$NOTICE" | |
exit 0 | |
} | |
function check_mount { | |
DEV="`mount | grep "$1" | cut -f 1 -d " "`" | |
if ( test ! -z "$DEV" ) then | |
return 0 | |
else | |
return 1 | |
fi | |
} | |
function check_cdemu { | |
if ( ` -s | grep "$1" > /dev/null` ) then | |
return 0 | |
else | |
return 1 | |
fi | |
} | |
function check_iso { | |
TYPE=`head "$1" | od -Ax -S 8 | head -n 1 | cut -f 1 -d " " ` | |
case "$TYPE" in | |
008008) | |
# ISO image | |
CHECK="Standard ISO9660 image" | |
;; | |
008028) | |
# ISO image (by WinISO) | |
CHECK="Standard ISO9660 image (by WinISO)" | |
;; | |
053008) | |
# NRG image | |
CHECK="NRG image (by Nero)" | |
;; | |
007a69) | |
# XDVDFS image | |
CHECK="XBOX DVD image" | |
;; | |
*) | |
# Anything else | |
CHECK="Unknown format" | |
;; | |
esac | |
} | |
case "$2" in | |
mount) | |
if (test -d "$MOUNTDIR") then | |
check_mount "$MOUNTDIR" && | |
err 2 "$1" | |
else | |
test -r "$1" || | |
err 1 "$1" | |
mkdir -p "$MOUNTDIR" | |
fi | |
if ( test -d "$MOUNTDIR" ) | |
then | |
TYPE=`head "$1" | od -Ax -S 8 | head -n 1 | cut -f 1 -d " " ` | |
case "$TYPE" in | |
008008) | |
# ISO image | |
MODE=",defaults" | |
;; | |
008028) | |
# ISO image (by WinISO) | |
MODE=",defaults" | |
;; | |
010049) | |
# ISO image | |
MODE=",defaults" | |
;; | |
053008) | |
# NRG image | |
MODE=",offset=307200" | |
;; | |
007a69) | |
# XDVDFS image | |
rmdir "$MOUNTDIR" | |
err 7 "$1" | |
;; | |
*) | |
# Anything else | |
rmdir "$MOUNTDIR" | |
err 7 "$1" | |
;; | |
esac | |
$KSU -c "mount -t udf,iso9660 -o loop,ro,nodev,noexec,nosuid${MODE} \"${1}\" \"$MOUNTDIR\"" | |
fi | |
if ( check_mount "$MOUNTDIR" ) then | |
kfmclient openURL "$MOUNTDIR" && note 1 | |
else | |
rmdir "$MOUNTDIR" | |
err 6 "$MOUNTDIR" | |
fi | |
;; | |
unmount) | |
if (test ! -d "$MOUNTDIR") then | |
err 4 "$1" | |
elif (check_mount "$MOUNTDIR") then | |
$KSU -c "umount \"$MOUNTDIR\"" && | |
rmdir "$MOUNTDIR" && note 2 || | |
err 13 "$1" | |
if ( test "${DEV##/dev/cdemu/}" -ge 0 2>/dev/null ) then | |
-u ${DEV##/dev/cdemu/} | |
fi | |
else | |
err 5 "$MOUNTDIR" "$1" | |
fi | |
;; | |
createiso) | |
SAVEFILE=`dialog2` | |
ISOFILE=`basename "$SAVEFILE"` | |
SAVEDIR=`dirname "$SAVEFILE"` | |
if ( test "$SAVEFILE" = "" ) then | |
note 3 | |
elif ( test ! -w "$SAVEDIR" ) then | |
err 14 "$SAVEDIR" | |
elif ( test ! -d "$1" ) then | |
err 8 "$1" | |
fi | |
mkisofs -joliet -rock -quiet -no-bak -o "$SAVEFILE" "$1" && | |
msg 1 "$ISOFILE" "$SAVEDIR" || | |
rm -f "$SAVEFILE" && err 9 "$1" | |
;; | |
createudf) | |
SAVEFILE=`dialog2` | |
ISOFILE=`basename "$SAVEFILE"` | |
SAVEDIR=`dirname "$SAVEFILE"` | |
if ( test "$SAVEFILE" = "" ) then | |
note 3 | |
elif ( test ! -w "$SAVEDIR" ) then | |
err 14 "$SAVEDIR" | |
elif ( test ! -d "$1" ) then | |
err 8 "$1" | |
fi | |
mkisofs -dvd -quiet -no-bak -o "$SAVEFILE" "$1" && | |
msg 4 "$ISOFILE" "$SAVEDIR" || | |
rm -f "$SAVEFILE" && err 9 "$1" | |
;; | |
calc) | |
if ( test -d "$1" ) then | |
err 10 "$1" | |
elif ( test -f "$1" ) then | |
SUM=`md5sum "$1" | cut -f 1 -d " "` | |
msg 2 "$BSNAME" "$SUM" | |
fi | |
;; | |
bin2iso) | |
SAVEDIR="`dirname "$1"`" | |
BASE="${BSNAME%.*}" | |
BINFILE="$SAVEDIR/"`head -n 1 "$1" | cut -f 2 -d " " | sed -e "s/^\"//" -e "s/\"$//"` | |
if ( test ! -w "$SAVEDIR" ) then | |
SAVEDIR="$HOME//opt/kde3" | |
fi | |
if ( test ! -f "$BINFILE" ) then | |
err 11 "`basename "$BINFILE"`" | |
else | |
/usr/bin/bchunk "$BINFILE" "$1" "$BASE" > /dev/null | |
ls -1b "${BASE}"*.iso | while read file; do mv "$file" $SAVEDIR; done | |
msg 3 "$BASE" "$SAVEDIR" | |
fi | |
;; | |
ccd2iso) | |
SAVEDIR="`dirname "$1"`" | |
BASE="${BSNAME%.*}" | |
IMGFILE="$SAVEDIR/$BASE.img" | |
if ( test ! -w "$SAVEDIR" ) then | |
SAVEDIR="$HOME//opt/kde3" | |
fi | |
if ( test ! -f "$IMGFILE" ) then | |
err 11 "$BASE.img" | |
else | |
/usr/bin/ccd2iso "$IMGFILE" "$SAVEDIR/$BASE.iso" > /dev/null | |
msg 5 "$BASE.iso" "$SAVEDIR" | |
fi | |
;; | |
mdf2iso) | |
SAVEDIR="`dirname "$1"`" | |
BASE="${BSNAME%.*}" | |
IMGFILE="$SAVEDIR/$BASE.img" | |
if ( test ! -w "$SAVEDIR" ) then | |
SAVEDIR="$HOME//opt/kde3" | |
fi | |
if ( test ! -f "$IMGFILE" ) then | |
err 11 "$BASE.img" | |
else | |
/usr/bin/mdf2iso "$IMGFILE" "$SAVEDIR/$BASE.iso" > /dev/null | |
msg 9 "$BASE.iso" "$SAVEDIR" | |
fi | |
;; | |
grabiso) | |
if ( test ! -w "$1" ) then | |
IMGFILE="`kdialog --inputbox "This directory is read-only, saving to Desktop! Choose name for ISO-image:" "$HOME//opt/kde3mount.iso"`" || exit 0 | |
else | |
IMGFILE="`kdialog --inputbox "Choose name for ISO-image:" "$1/mount.iso"`" || exit 0 | |
fi | |
SAVEDIR="`dirname "$IMGFILE"`" | |
while ( ( test ! -w "$SAVEDIR" ) || ( test -f "$IMGFILE" ) ) | |
do | |
if ( test -f "$IMGFILE" ) then | |
IMGFILE="`kdialog --inputbox "File with this name already exists! Choose another name:" "$IMGFILE"`" || | |
exit 0 | |
elif ( test ! -w "$SAVEDIR" ) then | |
IMGFILE="`kdialog --inputbox "Permission to write here is denied! Choose another name:" "$IMGFILE"`" || | |
exit 0 | |
fi | |
SAVEDIR="`dirname "$IMGFILE"`" | |
done | |
if ( test "$SAVEDIR" != "$IMGFILE" ) then | |
dd if="/dev/cdrom" of="$IMGFILE" && | |
msg 1 "`basename "$IMGFILE"`" "$SAVEDIR" || | |
err | |
fi | |
;; | |
nrg2iso) | |
SAVEDIR="`dirname "$1"`" | |
BASE="${BSNAME%.*}" | |
IMGFILE="$SAVEDIR/$BASE.iso" | |
if ( test ! -w "$SAVEDIR" ) then | |
SAVEDIR="$HOME//opt/kde3" | |
fi | |
TYPE=`head "$1" | od -Ax -S 8 | head -n 1 | cut -f 1 -d " " ` | |
case "$TYPE" in | |
053008) | |
dd if="$1" of="$IMGFILE" bs=512 skip=600 > /dev/null && | |
msg 7 "$BASE.iso" "$SAVEDIR" || | |
err 3 "$IMGFILE" | |
;; | |
*) | |
err 7 "$1" | |
;; | |
esac | |
;; | |
mountcb) | |
BASE="${BSNAME%.*}" | |
BINFILE="$SAVEDIR/"`head -n 1 "$1" | cut -f 2 -d " " | sed -e "s/^\"//" -e "s/\"$//"` | |
NODE=$((` -s | cut -f 8 -d " " | grep 0 -n -m 1 | cut -c 1`-2)) | |
if (test -d "$MOUNTDIR") then | |
check_mount "$MOUNTDIR" && | |
err 2 "$1" | |
else | |
mkdir -p "$MOUNTDIR" | |
fi | |
if ( test -d "$MOUNTDIR" ) | |
then | |
$NODE "$1" && | |
mount /dev/cdemu/$DEV "$MOUNTDIR" || | |
-u $NODE | |
fi | |
if ( check_mount "$MOUNTDIR" ) then | |
kfmclient openURL "$MOUNTDIR" | |
else | |
rmdir "$MOUNTDIR" | |
err 6 "$MOUNTDIR" | |
fi | |
;; | |
xbx2iso) | |
SAVEDIR="`dirname "$1"`" | |
BASE="${BSNAME%.*}" | |
IMGFILE="$SAVEDIR/$BASE.img" | |
if ( test ! -w "$SAVEDIR" ) then | |
SAVEDIR="$HOME//opt/kde3" | |
fi | |
if ( test ! -f "$IMGFILE" ) then | |
err 11 "$BASE.img" | |
else | |
/usr/bin/ccd2iso "$IMGFILE" "$SAVEDIR/$BASE.iso" > /dev/null | |
msg 8 "$BASE.iso" "$SAVEDIR" | |
fi | |
;; | |
createxbx) | |
SAVEFILE=`dialog2` | |
ISOFILE=`basename "$SAVEFILE"` | |
SAVEDIR=`dirname "$SAVEFILE"` | |
if ( test "$SAVEFILE" = "" ) then | |
note 3 | |
elif ( test ! -w "$SAVEDIR" ) then | |
err 14 "$SAVEDIR" | |
elif ( test ! -d "$1" ) then | |
err 8 "$1" | |
fi | |
-c "$1" "$SAVEFILE" && | |
msg 4 "$ISOFILE" "$SAVEDIR" || | |
err 9 "$1" | |
;; | |
checkiso) | |
check_iso "$1" | |
msg 6 "$BSNAME" "$CHECK" | |
;; | |
esac | |
echo "Mount-ISO script v1.4" | |
echo "For updates, details on have to use and help please go to:" | |
echo "http://www.kde-apps.org/content/show.php?content=108042" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment