summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xclient/engine/Disk.lib4
-rwxr-xr-xclient/engine/FileSystem.lib38
2 files changed, 36 insertions, 6 deletions
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index 38765bcf..076e3bda 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -632,7 +632,9 @@ MAJOR=$(awk -v D="$DEV" '{if ($4==D) print $1;}' /proc/partitions)
TYPE=$(awk -v D=$MAJOR '/Block/ {bl=1} {if ($1==D&&bl) print toupper($2)}' /proc/devices)
# Devolver mnemónico del driver de dispositivo.
case "$TYPE" in
- SD) TYPE="DISK" ;;
+ SD) TYPE="DISK"
+ udevadm info -q property $1 2>/dev/null | grep -q "^ID_BUS=usb" && TYPE="USB"
+ ;;
SR|IDE*) TYPE="CDROM" ;; # FIXME Comprobar discos IDE.
MD|CCISS*) TYPE="RAID" ;;
DEVICE-MAPPER) TYPE="MAPPER" ;; # FIXME Comprobar LVM y RAID.
diff --git a/client/engine/FileSystem.lib b/client/engine/FileSystem.lib
index 8dd1a87a..868642fd 100755
--- a/client/engine/FileSystem.lib
+++ b/client/engine/FileSystem.lib
@@ -56,7 +56,7 @@ PART="$(ogDiskToDev $1 $2)" || return $?
TYPE=$(ogGetFsType $1 $2)
case "$TYPE" in
EXT[234]) PROG="e2fsck"; PARAMS="-y"; CODES=(1 2) ;;
- BTRFS) PROG="btrfsck"; CODES=1 ;;
+ BTRFS) PROG="btrfsck"; CODES=(1) ;;
REISERFS) PROG="fsck.reiserfs"; PARAMS="<<<\"Yes\""; CODES=(1 2) ;;
REISER4) PROG="fsck.reiser4"; PARAMS="-ay" ;;
JFS) PROG="fsck.jfs"; CODES=(1 2) ;;
@@ -64,9 +64,9 @@ case "$TYPE" in
F2FS) PROG="fsck.f2fs" ;;
NTFS) PROG="ntfsfix" ;;
EXFAT) PROG="fsck.exfat" ;;
- FAT32) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;;
- FAT16) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;;
- FAT12) PROG="dosfsck"; PARAMS="-a"; CODES=1 ;;
+ FAT32) PROG="dosfsck"; PARAMS="-a"; CODES=(1) ;;
+ FAT16) PROG="dosfsck"; PARAMS="-a"; CODES=(1) ;;
+ FAT12) PROG="dosfsck"; PARAMS="-a"; CODES=(1) ;;
HFS) PROG="fsck.hfs"; PARAMS="-f" ;;
HFSPLUS) PROG="fsck.hfs"; PARAMS="-f" ;;
UFS) PROG="fsck.ufs" ;;
@@ -399,7 +399,7 @@ echo ${SIZE%.0*}
function ogGetFsType ()
{
# Variables locales.
-local PART ID TYPE
+local PART TYPE
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_nfilesys" \
@@ -713,6 +713,34 @@ esac
#/**
+# ogMountFirstFs int_ndisk
+#@brief Monta el primer sistema de archivos disponible en el disco.
+#@param int_ndisk nº de orden del disco
+#@return Punto de montaje del primer sistema de archivos detectado
+#*/ ##
+function ogMountFirstFs ()
+{
+# Variables locales
+local PART NPARTS MNTDIR
+
+# Error si no se recibe 1 parámetro.
+[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
+
+# Obtener nº de particiones del disco.
+NPARTS=$(ogGetPartitionsNumber "$1") || return $?
+for (( PART = 1; PART <= NPARTS; PART++ )); do
+ MNTDIR=$(ogMount $1 $PART 2>/dev/null)
+ if [ -n "$MNTDIR" ]; then
+ echo "$MNTDIR"
+ return 0
+ fi
+done
+ogRaiseError $OG_ERR_NOTFOUND "$1"
+return $OG_ERR_NOTFOUND
+}
+
+
+#/**
# ogMountFs int_ndisk int_nfilesys
#@brief Monta un sistema de archivos.
#@param int_ndisk nº de orden del disco