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