refs #1498 add ogIdToType

pull/1/head
Natalia Serrano 2025-02-13 11:32:49 +01:00
parent 4142459c88
commit 1fdbdd637c
2 changed files with 87 additions and 95 deletions

View File

@ -999,104 +999,74 @@ def ogHidePartition(*args):
#@return str_parttype mnemónico de tipo de partición. #@return str_parttype mnemónico de tipo de partición.
#@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_FORMAT Formato incorrecto.
#*/ ## #*/ ##
def ogIdToType(ID): def ogIdToType (ID):
# Obtener valor hexadecimal de 4 caracteres rellenado con 0 por delante. # Obtener valor hexadecimal de 4 caracteres rellenado con 0 por delante.
ID = ID.zfill(4) ID = ID.zfill(4)
TYPE = None
# Asignar el tipo de partición según el ID. id2type = {
if ID == "0000": '0000': 'EMPTY',
TYPE = "EMPTY" '0001': 'FAT12',
elif ID == "0001": '0005': 'EXTENDED',
TYPE = "FAT12" '000f': 'EXTENDED',
elif ID in ["0005", "000f"]: '0006': 'FAT16',
TYPE = "EXTENDED" '000e': 'FAT16',
elif ID in ["0006", "000e"]: '0007': 'NTFS',
TYPE = "FAT16" '000b': 'FAT32',
elif ID == "0007": '000c': 'FAT32',
TYPE = "NTFS" '0011': 'HFAT12',
elif ID in ["000b", "000c"]: '0012': 'COMPAQDIAG',
TYPE = "FAT32" '0016': 'HFAT16',
elif ID == "0011": '001e': 'HFAT16',
TYPE = "HFAT12" '0017': 'HNTFS',
elif ID == "0012": '001b': 'HFAT32',
TYPE = "COMPAQDIAG" '001c': 'HFAT32',
elif ID in ["0016", "001e"]: '0042': 'WIN-DYNAMIC',
TYPE = "HFAT16" '0082': 'LINUX-SWAP',
elif ID == "0017": '8200': 'LINUX-SWAP',
TYPE = "HNTFS" '0083': 'LINUX',
elif ID in ["001b", "001c"]: '8300': 'LINUX',
TYPE = "HFAT32" '008e': 'LINUX-LVM',
elif ID == "0042": '8E00': 'LINUX-LVM',
TYPE = "WIN-DYNAMIC" '00a5': 'FREEBSD',
elif ID in ["0082", "8200"]: 'a503': 'FREEBSD',
TYPE = "LINUX-SWAP" '00a6': 'OPENBSD',
elif ID in ["0083", "8300"]: '00a7': 'CACHE', # (compatibilidad con Brutalix)
TYPE = "LINUX" '00af': 'HFS',
elif ID in ["008e", "8E00"]: 'af00': 'HFS',
TYPE = "LINUX-LVM" '00be': 'SOLARIS-BOOT',
elif ID in ["00a5", "a503"]: 'be00': 'SOLARIS-BOOT',
TYPE = "FREEBSD" '00bf': 'SOLARIS',
elif ID == "00a6": 'bf00145': 'SOLARIS',
TYPE = "OPENBSD" '00ca': 'CACHE',
elif ID == "00a7": 'ca00': 'CACHE',
TYPE = "CACHE" # (compatibilidad con Brutalix) '00da': 'DATA',
elif ID in ["00af", "af00"]: '00ee': 'GPT',
TYPE = "HFS" '00ef': 'EFI',
elif ID in ["00be", "be00"]: 'ef00': 'EFI',
TYPE = "SOLARIS-BOOT" '00fb': 'VMFS',
elif ID in ["00bf", "bf00145"]: '00fd': 'LINUX-RAID',
TYPE = "SOLARIS" 'fd00': 'LINUX-RAID',
elif ID in ["00ca", "ca00"]: '0700': 'WINDOWS',
TYPE = "CACHE" '0c01': 'WIN-RESERV',
elif ID == "00da": '7f00': 'CHROMEOS-KRN',
TYPE = "DATA" '7f01': 'CHROMEOS',
elif ID == "00ee": '7f02': 'CHROMEOS-RESERV',
TYPE = "GPT" '8301': 'LINUX-RESERV',
elif ID in ["00ef", "ef00"]: 'a500': 'FREEBSD-DISK',
TYPE = "EFI" 'a501': 'FREEBSD-BOOT',
elif ID == "00fb": 'a502': 'FREEBSD-SWAP',
TYPE = "VMFS" 'ab00': 'HFS-BOOT',
elif ID in ["00fd", "fd00"]: 'af01': 'HFS-RAID',
TYPE = "LINUX-RAID" 'bf02': 'SOLARIS-SWAP',
elif ID == "0700": 'bf03': 'SOLARIS-DISK',
TYPE = "WINDOWS" 'ef01': 'MBR',
elif ID == "0c01": 'ef02': 'BIOS-BOOT',
TYPE = "WIN-RESERV" '10000': 'LVM-LV',
elif ID == "7f00": '10010': 'ZFS-VOL',
TYPE = "CHROMEOS-KRN" }
elif ID == "7f01": if ID in id2type:
TYPE = "CHROMEOS" return id2type[ID]
elif ID == "7f02": return 'UNKNOWN'
TYPE = "CHROMEOS-RESERV"
elif ID == "8301":
TYPE = "LINUX-RESERV"
elif ID == "a500":
TYPE = "FREEBSD-DISK"
elif ID == "a501":
TYPE = "FREEBSD-BOOT"
elif ID == "a502":
TYPE = "FREEBSD-SWAP"
elif ID == "ab00":
TYPE = "HFS-BOOT"
elif ID == "af01":
TYPE = "HFS-RAID"
elif ID == "bf02":
TYPE = "SOLARIS-SWAP"
elif ID == "bf03":
TYPE = "SOLARIS-DISK"
elif ID == "ef01":
TYPE = "MBR"
elif ID == "ef02":
TYPE = "BIOS-BOOT"
elif ID == "10000":
TYPE = "LVM-LV"
elif ID == "10010":
TYPE = "ZFS-VOL"
else:
TYPE = "UNKNOWN"
return TYPE
# ogIsDiskLocked int_ndisk # ogIsDiskLocked int_ndisk

View File

@ -0,0 +1,22 @@
#!/usr/bin/python3
import sys
import argparse
from SystemLib import ogHelp
from DiskLib import ogIdToType
parser = argparse.ArgumentParser (add_help=False)
parser.add_argument ('id')
if 2 == len (sys.argv) and 'help' == sys.argv[1]:
#parser.print_help() sale en inglés aunque la locale indique otra cosa
ogHelp ('ogIdToType', 'ogIdToType int_idpart', ['ogIdToType 83'])
sys.exit (0)
args = parser.parse_args()
ret = ogIdToType (args.id)
if ret is not None:
if ret == True: sys.exit (0)
elif ret == False: sys.exit (1)
else: print (ret)