summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2020-11-26 14:25:12 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2020-11-27 12:51:24 +0100
commit5d05b06d0591c6df06b7a459e589011895b78114 (patch)
tree52411f513403ac8526e6f2688f6eceff8f23322d
parent4c4ea59598d9a432068dd8034005759fbfa54386 (diff)
#1008 Add support to work with GPT tables
WebConsole needs to rely on /shell/run to work with GPT tables. Because "Partition and Format"/"Particionar y Formatear" form always supposes that the partition table is MBR/MSDOS. "Setup"/"Configurar" script from "Cloning Engine" also supposes that the partition table is MBR/MSDOS. But it uses "Boot.lib" library, that can create MBR and GTP partitions. This commit: * Adds WebConsole support to work with GPT tables. - Adds input field where the user can select between MSDOS and GPT table types. * Adds "Setup" support to work with GPT tables. - Adds script parameter that expects a string with "MSDOS" or "GPT".
-rwxr-xr-xadmin/Interface/Configurar7
-rw-r--r--admin/WebConsole/comandos/Configurar.php20
-rw-r--r--admin/WebConsole/comandos/jscripts/Configurar.js3
-rw-r--r--admin/WebConsole/includes/restfunctions.php18
4 files changed, 36 insertions, 12 deletions
diff --git a/admin/Interface/Configurar b/admin/Interface/Configurar
index 3247d568..4ac760bc 100755
--- a/admin/Interface/Configurar
+++ b/admin/Interface/Configurar
@@ -32,10 +32,11 @@ PROG=$(basename $0)
# @= caracter de separación
#____________________________________________________________________
+tabletype=$1
+
# Captura de parámetros (se ignora el 1er parámetro y se eliminan espacios y tabuladores).
#param='dis=1*che=0*tch=70000000!par=1*cpt=NTFS*sfi=NTFS*tam=11000000*ope=0%'
-shift
-param="$(echo $* | sed 's/[ ]//g')"
+param="$(echo $2 | sed 's/[ ]//g')"
# Activa navegador para ver progreso
coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
@@ -103,7 +104,7 @@ ogDeletePartitionTable $dis
ogExecAndLog COMMAND ogUpdatePartitionTable $dis
# Crea tabla de particiones MSDOS (NOTA: adaptar para tablas GPT).
-ogCreatePartitionTable $dis MSDOS
+ogCreatePartitionTable "$dis" "$tabletype"
# Inicia la cache.
if echo "$sparam" |grep "CACHE" >/dev/null; then
diff --git a/admin/WebConsole/comandos/Configurar.php b/admin/WebConsole/comandos/Configurar.php
index 2ab5380c..cefc7990 100644
--- a/admin/WebConsole/comandos/Configurar.php
+++ b/admin/WebConsole/comandos/Configurar.php
@@ -124,6 +124,26 @@ if (isset($_POST["numdisk"])) $numdisk=$_POST["numdisk"];
</FORM>
<?php
}
+ $rs = new Recordset;
+ $cmd->texto = "SELECT codpar FROM ordenadores_particiones WHERE idordenador='"
+ .$idambito."' AND numdisk='".$numdisk."'";
+ $rs->Comando = &$cmd;
+ if ($rs->Abrir()) { // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $current_table_type = $rs->campos["codpar"];
+ }
+ $rs->Cerrar();
+ }
+?>
+ <div>
+ Tabla de particiones:
+ <select name="table_type" id="table_type">
+ <option value="MSDOS">MSDOS</option>
+ <option value="GPT" <?php echo $current_table_type == 2 ? "selected" : ""; ?>>GPT</option>
+ </select>
+ </div>
+<?php
$sws=$fk_sysFi | $fk_tamano | $fk_nombreSO;
$configs = pintaConfiguraciones($cmd, $idambito, $ambito, 7, $sws, false, "pintaParticionesConfigurar", "idordenador", $numdisk);
diff --git a/admin/WebConsole/comandos/jscripts/Configurar.js b/admin/WebConsole/comandos/jscripts/Configurar.js
index 85e94264..bda09401 100644
--- a/admin/WebConsole/comandos/jscripts/Configurar.js
+++ b/admin/WebConsole/comandos/jscripts/Configurar.js
@@ -240,8 +240,9 @@ function comprobarDatos(cc)
var RC="!";
var disco = document.disk.current_numdisk.value;
+ var table_type = document.getElementById("table_type").value;
- atributos="dsk="+disco+"@"+"cfg="; // Inicializa variable global de parámetros del comando
+ atributos="ttp="+table_type+"@"+"dsk="+disco+"@"+"cfg="; // Inicializa variable global de parámetros del comando
if(swc){
diff --git a/admin/WebConsole/includes/restfunctions.php b/admin/WebConsole/includes/restfunctions.php
index 13f6e3a7..8d8bf931 100644
--- a/admin/WebConsole/includes/restfunctions.php
+++ b/admin/WebConsole/includes/restfunctions.php
@@ -542,24 +542,26 @@ function setup($string_ips, $params) {
$params, $matches);
$ips = explode(';',$string_ips);
- $disk = $matches[0][0];
- $cache = $matches[0][2];
- $cache_size = $matches[0][3];
+ $table_type= $matches[0][0];
+ $disk = $matches[0][1];
+ $cache = $matches[0][3];
+ $cache_size = $matches[0][4];
$partition_number = array();
$partition_code = array();
$file_system = array();
$part_size = array();
$format = array();
for ($x = 0; $x < 4; $x++) {
- $partition_number[$x] = $matches[0][4 + 5 * $x];
- $partition_code[$x] = $matches[0][5 + 5 * $x];
- $file_system[$x] = $matches[0][6 + 5 * $x];
- $part_size[$x] = $matches[0][7 + 5 * $x];
- $format[$x] = $matches[0][8 + 5 * $x];
+ $partition_number[$x] = $matches[0][5 + 5 * $x];
+ $partition_code[$x] = $matches[0][6 + 5 * $x];
+ $file_system[$x] = $matches[0][7 + 5 * $x];
+ $part_size[$x] = $matches[0][8 + 5 * $x];
+ $format[$x] = $matches[0][9 + 5 * $x];
}
$data = array(
OG_REST_PARAM_CLIENTS => $ips,
+ OG_REST_PARAM_TYPE => $table_type,
OG_REST_PARAM_DISK => $disk,
OG_REST_PARAM_CACHE => $cache,
OG_REST_PARAM_CACHE_SIZE => $cache_size,