diff --git a/CHANGELOG.md b/CHANGELOG.md index 627dccd..5796462 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,14 @@ -# Changelog +# Changelog -## [0.1.1] - 2025-02-28 +## [0.1.1] - 2025-03-19 -### Changed - 2025-03-19 +### Added + +- Missing functions in BootLib +- Some interfaceAdm python scripts ## [0.1.0] - 2025-02-28 -### Addded +### Added - Merge pull request 'Include all client files, build debian package' (#2) from deb-package into main - diff --git a/ogclient/interfaceAdm/getConfiguration.py b/ogclient/interfaceAdm/getConfiguration.py index 786fc84..b51d2e9 100755 --- a/ogclient/interfaceAdm/getConfiguration.py +++ b/ogclient/interfaceAdm/getConfiguration.py @@ -94,7 +94,6 @@ awk_script = r'''{ n=split($0,sep,";"); } } ''' -print (f'nati awk_script ({awk_script})') subprocess.run (['awk', awk_script, cfgfile]) # Borramos marcas de arranque de Windows diff --git a/ogclient/interfaceAdm/getIpAddress.py b/ogclient/interfaceAdm/getIpAddress.py index cc18939..18d5150 100755 --- a/ogclient/interfaceAdm/getIpAddress.py +++ b/ogclient/interfaceAdm/getIpAddress.py @@ -2,4 +2,4 @@ from NetLib import ogGetIpAddress -ogGetIpAddress() +print (ogGetIpAddress()) diff --git a/ogclient/scripts/bootOs.py b/ogclient/scripts/bootOs.py new file mode 100755 index 0000000..28357ed --- /dev/null +++ b/ogclient/scripts/bootOs.py @@ -0,0 +1,58 @@ +#!/usr/bin/python3 +# Script de ejemplo para arancar un sistema operativo instalado. +# Nota: se usa como base para el programa de arranque de OpenGnsys Admin. + +import sys +import re +import subprocess +import shutil + +import ogGlobals +from SystemLib import ogRaiseError, ogEcho +from DiskLib import ogDiskToDev +from FileSystemLib import ogMount, ogUnmount, ogCheckFs, ogUnmountAll +from CacheLib import ogUnmountCache +from BootLib import ogBoot + +prog = sys.argv[0] +if len (sys.argv) < 3 or len (sys.argv) > 4: + ogRaiseError ([], ogGlobals.OG_ERR_FORMAT, f'Formato: {prog} ndisco nfilesys [str_kernel str_initrd str_kernelparams]') + sys.exit (1) +disk, par, *other = sys.argv[1:] +params = other[0] if len (other) > 0 else '' + +# Comprobar errores. +part = ogDiskToDev (disk, par) +if not part: sys.exit (1) +mntdir = ogMount (disk, par) +if not mntdir: sys.exit (1) + +print ('[0] Inicio del proceso de arranque.') + +# Si el equipo está hibernado chequeamos el f.s. y borramos el hiberfile (error cod.6) +mount_out = subprocess.run (['mount'], capture_output=True, text=True).stdout +if not mount_out or not re.search (rf'{mntdir}.*\(rw', mount_out): + ogEcho (['log', 'session'], None, f'{ogGlobals.lang.MSG_WARNING}: {ogGlobals.lang.MSG_MOUNTREADONLY}') + ogUnmount (disk, par) + ogCheckFs (disk, par) + + part = ogDiskToDev (disk, par) + os.makedirs (mntdir, exist_ok=True) + subprocess.run (['ntfs-3g', '-o', 'remove_hiberfile', part, mntdir]) + ogEcho (['log', 'session'], None, 'Particion desbloqueada') + + ogUnmount (disk, par) + ogMount (disk, par) + +if shutil.which ('bootOsCustom.py'): + print ('[10] Configuración personalizada del inicio.') + subprocess.run ([f'{ogGlobals.OGSCRIPTS}/bootOsCustom.py']) + +print ('[70] Desmontar todos los sistemas de archivos.') +subprocess.run (['sync']) +for i in range (1, 1+len(ogDiskToDev())): + ogUnmountAll (i) +print ('[80] Desmontar cache local.') +ogUnmountCache() +print (f'[90] Arrancar sistema operativo.') +ogBoot (disk, par, params=params)