1 /* ----------------------------------------------------------------------- *
3 * Copyright 2009 Pierre-Alexandre Meyer
5 * This file is part of Syslinux, and is made available under
6 * the terms of the GNU General Public License version 2.
8 * ----------------------------------------------------------------------- */
13 void get_label(int label
, char **buffer_label
)
15 int buffer_size
= (80 * sizeof(char));
16 char *buffer
= malloc(buffer_size
);
17 *buffer_label
= buffer
;
21 strlcpy(buffer
, "DOS 12-bit fat", buffer_size
);
24 strlcpy(buffer
, "XENIX root", buffer_size
);
27 strlcpy(buffer
, "XENIX /usr", buffer_size
);
30 strlcpy(buffer
, "DOS 3.0+ 16-bit FAT (up to 32M)", buffer_size
);
33 strlcpy(buffer
, "DOS 3.3+ Extended Partition", buffer_size
);
36 strlcpy(buffer
, "DOS 3.31+ 16-bit FAT (over 32M)", buffer_size
);
39 strlcpy(buffer
, "NTFS/exFAT/HPFS", buffer_size
);
40 //case 0x07: strlcpy(buffer, "Advanced Unix", buffer_size); break;
41 //case 0x07: strlcpy(buffer, "Windows NT NTFS", buffer_size); break;
42 //case 0x07: strlcpy(buffer, "QNX2.x (pre-1988)", buffer_size); break;
45 strlcpy(buffer
, "AIX", buffer_size
);
46 //case 0x08: strlcpy(buffer, "AIX boot partition", buffer_size); break;
47 //case 0x08: strlcpy(buffer, "SplitDrive", buffer_size); break;
48 //case 0x08: strlcpy(buffer, "DELL partition spanning multiple drives", buffer_size); break;
49 //case 0x08: strlcpy(buffer, "Commodore DOS", buffer_size); break;
50 //case 0x08: strlcpy(buffer, "QNX 1.x and 2.x ("qny")", buffer_size); break;
53 strlcpy(buffer
, "AIX bootable partition", buffer_size
);
54 //case 0x09: strlcpy(buffer, "Coherent filesystem", buffer_size); break;
55 //case 0x09: strlcpy(buffer, "QNX 1.x and 2.x ("qnz")", buffer_size); break;
58 strlcpy(buffer
, "OS/2 Boot Manager", buffer_size
);
59 //case 0x0a: strlcpy(buffer, "Coherent swap partition", buffer_size); break;
60 //case 0x0a: strlcpy(buffer, "OPUS", buffer_size); break;
63 strlcpy(buffer
, "WIN95 OSR2 32-bit FAT", buffer_size
);
66 strlcpy(buffer
, "WIN95 OSR2 32-bit FAT, LBA-mapped", buffer_size
);
69 strlcpy(buffer
, "WIN95: DOS 16-bit FAT, LBA-mapped", buffer_size
);
72 strlcpy(buffer
, "WIN95: Extended partition, LBA-mapped", buffer_size
);
75 strlcpy(buffer
, "OPUS", buffer_size
);
78 strlcpy(buffer
, "Hidden DOS 12-bit FAT", buffer_size
);
81 strlcpy(buffer
, "Compaq diagnostic partition", buffer_size
);
84 strlcpy(buffer
, "Hidden DOS 16-bit FAT <32M", buffer_size
);
87 strlcpy(buffer
, "Hidden DOS 16-bit FAT >=32M", buffer_size
);
90 strlcpy(buffer
, "Hidden HPFS/exFAT/NTFS", buffer_size
);
93 strlcpy(buffer
, "AST SmartSleep Partition", buffer_size
);
96 strlcpy(buffer
, "Unused (Claimed for Willowtech Photon COS)",
100 strlcpy(buffer
, "Hidden WIN95 OSR2 32-bit FAT", buffer_size
);
103 strlcpy(buffer
, "Hidden WIN95 OSR2 32-bit FAT, LBA-mapped",
107 strlcpy(buffer
, "Hidden WIN95 16-bit FAT, LBA-mapped", buffer_size
);
110 strlcpy(buffer
, "Unused", buffer_size
);
113 strlcpy(buffer
, "Reserved", buffer_size
);
114 //case 0x21: strlcpy(buffer, "Unused", buffer_size); break;
117 strlcpy(buffer
, "Unused", buffer_size
);
120 strlcpy(buffer
, "Reserved", buffer_size
);
123 strlcpy(buffer
, "NEC DOS 3.x", buffer_size
);
126 strlcpy(buffer
, "Reserved", buffer_size
);
129 strlcpy(buffer
, "PQService (Acer laptop hidden rescue partition)", buffer_size
);
130 //Windows RE hidden partition
131 //MirOS BSD partition
132 //RouterBOOT kernel partition
135 strlcpy(buffer
, "AtheOS File System (AFS)", buffer_size
);
138 strlcpy(buffer
, "SyllableSecure (SylStor)", buffer_size
);
141 strlcpy(buffer
, "Reserved", buffer_size
);
144 strlcpy(buffer
, "NOS", buffer_size
);
147 strlcpy(buffer
, "Reserved", buffer_size
);
150 strlcpy(buffer
, "Reserved", buffer_size
);
153 strlcpy(buffer
, "JFS on OS/2 or eCS", buffer_size
);
156 strlcpy(buffer
, "Reserved", buffer_size
);
159 strlcpy(buffer
, "THEOS ver 3.2 2gb partition", buffer_size
);
162 strlcpy(buffer
, "Plan 9 partition", buffer_size
);
163 //case 0x39: strlcpy(buffer, "THEOS ver 4 spanned partition", buffer_size); break;
166 strlcpy(buffer
, "THEOS ver 4 4gb partition", buffer_size
);
169 strlcpy(buffer
, "THEOS ver 4 extended partition", buffer_size
);
172 strlcpy(buffer
, "PartitionMagic recovery partition", buffer_size
);
175 strlcpy(buffer
, "Hidden NetWare", buffer_size
);
178 strlcpy(buffer
, "Venix 80286", buffer_size
);
181 strlcpy(buffer
, "PPC PReP Boot", buffer_size
); break;
182 //case 0x41: strlcpy(buffer, "Personal RISC Boot", buffer_size); break;
183 // strlcpy(buffer, "Linux/MINIX (sharing disk with DRDOS)", buffer_size);
186 strlcpy(buffer
, "SFS (Secure Filesystem)", buffer_size
); break;
187 // strlcpy(buffer, "Linux swap (sharing disk with DRDOS)", buffer_size);
188 //case 0x42: strlcpy(buffer, "Windows 2000 marker", buffer_size); break;
191 strlcpy(buffer
, "Linux native (sharing disk with DRDOS)", buffer_size
);
194 strlcpy(buffer
, "GoBack partition", buffer_size
);
197 strlcpy(buffer
, "Boot-US boot manager", buffer_size
);
198 //case 0x45: strlcpy(buffer, "Priam", buffer_size); break;
199 //case 0x45: strlcpy(buffer, "EUMEL/Elan", buffer_size); break;
202 strlcpy(buffer
, "EUMEL/Elan", buffer_size
);
205 strlcpy(buffer
, "EUMEL/Elan", buffer_size
);
208 strlcpy(buffer
, "EUMEL/Elan", buffer_size
);
211 strlcpy(buffer
, "AdaOS Aquila (Default)", buffer_size
);
212 //case 0x4a: strlcpy(buffer, "ALFS/THIN lightweight filesystem for DOS", buffer_size); break;
215 strlcpy(buffer
, "Oberon partition", buffer_size
);
218 strlcpy(buffer
, "QNX4.x", buffer_size
);
221 strlcpy(buffer
, "QNX4.x 2nd part", buffer_size
);
224 strlcpy(buffer
, "QNX4.x 3rd part", buffer_size
);
225 //case 0x4f: strlcpy(buffer, "Oberon partition", buffer_size); break;
228 strlcpy(buffer
, "OnTrack Disk Manager (older versions) RO",
230 //case 0x50: strlcpy(buffer, "Lynx RTOS", buffer_size); break;
231 //case 0x50: strlcpy(buffer, "Native Oberon (alt)", buffer_size); break;
234 strlcpy(buffer
, "OnTrack Disk Manager RW (DM6 Aux1)", buffer_size
);
235 //case 0x51: strlcpy(buffer, "Novell", buffer_size); break;
238 strlcpy(buffer
, "CP/M", buffer_size
);
239 //case 0x52: strlcpy(buffer, "Microport SysV/AT", buffer_size); break;
242 strlcpy(buffer
, "Disk Manager 6.0 Aux3", buffer_size
);
245 strlcpy(buffer
, "Disk Manager 6.0 Dynamic Drive Overlay", buffer_size
);
248 strlcpy(buffer
, "EZ-Drive", buffer_size
);
251 strlcpy(buffer
, "Golden Bow VFeature Partitioned Volume.", buffer_size
);
252 //case 0x56: strlcpy(buffer, "DM converted to EZ-BIOS", buffer_size); break;
255 strlcpy(buffer
, "DrivePro", buffer_size
);
256 //case 0x57: strlcpy(buffer, "VNDI Partition", buffer_size); break;
259 strlcpy(buffer
, "Priam EDisk", buffer_size
);
262 strlcpy(buffer
, "SpeedStor", buffer_size
);
266 "Unix System V (SCO, ISC Unix, UnixWare, ...), Mach, GNU Hurd",
270 strlcpy(buffer
, "Novell Netware 286, 2.xx", buffer_size
); break;
271 //strlcpy(buffer, "PC-ARMOUR protected partition", buffer_size);
274 strlcpy(buffer
, "Novell Netware 386, 3.xx or 4.xx", buffer_size
);
277 strlcpy(buffer
, "Novell Netware SMS Partition", buffer_size
);
280 strlcpy(buffer
, "Novell", buffer_size
);
283 strlcpy(buffer
, "Novell", buffer_size
);
286 strlcpy(buffer
, "Novell Netware 5+, Novell Netware NSS Partition",
290 strlcpy(buffer
, "DiskSecure Multi-Boot", buffer_size
);
293 strlcpy(buffer
, "Reserved", buffer_size
);
296 strlcpy(buffer
, "V7/x86", buffer_size
);
299 strlcpy(buffer
, "Reserved", buffer_size
);
302 //strlcpy(buffer, "Reserved", buffer_size);
303 strlcpy(buffer
, "Scramdisk partition", buffer_size
); break;
305 strlcpy(buffer
, "IBM PC/IX", buffer_size
);
308 strlcpy(buffer
, "Reserved", buffer_size
);
311 strlcpy(buffer
, "M2FS/M2CS partition", buffer_size
);
313 //case 0x77: strlcpy(buffer, "VNDI Partition", buffer_size); break;
315 strlcpy(buffer
, "XOSL FS", buffer_size
);
318 strlcpy(buffer
, "Unused", buffer_size
);
321 strlcpy(buffer
, "MINIX until 1.4a", buffer_size
);
324 strlcpy(buffer
, "MINIX since 1.4b, early Linux", buffer_size
);
325 //case 0x81: strlcpy(buffer, "Mitac disk manager", buffer_size); break;
328 strlcpy(buffer
, "Linux swap", buffer_size
);
329 //case 0x82: strlcpy(buffer, "Prime", buffer_size); break;
330 //case 0x82: strlcpy(buffer, "Solaris x86", buffer_size); break;
333 strlcpy(buffer
, "Linux native (usually ext2fs)", buffer_size
);
336 strlcpy(buffer
, "OS/2 hidden C: drive", buffer_size
);
337 //case 0x84: strlcpy(buffer, "Hibernation partition", buffer_size); break;
340 strlcpy(buffer
, "Linux extended partition", buffer_size
);
343 strlcpy(buffer
, "NTFS volume set", buffer_size
);
344 //case 0x86: strlcpy(buffer, "Old Linux RAID partition superblock", buffer_size); break;
347 strlcpy(buffer
, "NTFS volume set", buffer_size
);
350 strlcpy(buffer
, "Linux Plaintext", buffer_size
);
353 strlcpy(buffer
, "Linux Kernel Partition (used by AiR-BOOT)",
357 strlcpy(buffer
, "Legacy Fault Tolerant FAT32 volume", buffer_size
);
361 "Legacy Fault Tolerant FAT32 volume using BIOS extd INT 13h",
365 strlcpy(buffer
, "Free FDISK hidden Primary DOS FAT12 partitition",
369 strlcpy(buffer
, "Linux LVM partition", buffer_size
);
372 strlcpy(buffer
, "Free FDISK hidden Primary DOS FAT16 partitition",
376 strlcpy(buffer
, "Free FDISK hidden DOS extended partitition",
380 strlcpy(buffer
, "Free FDISK hidden Primary DOS large FAT16 partitition",
384 strlcpy(buffer
, "Hidden Linux native partition", buffer_size
);
385 //case 0x93: strlcpy(buffer, "Amoeba", buffer_size); break;
388 strlcpy(buffer
, "Amoeba bad block table", buffer_size
);
391 strlcpy(buffer
, "MIT EXOPC native partitions", buffer_size
);
394 strlcpy(buffer
, "CHRP ISO-9660 filesystem", buffer_size
);
397 strlcpy(buffer
, "Free FDISK hidden Primary DOS FAT32 partitition",
401 strlcpy(buffer
, "Free FDISK hidden Primary DOS FAT32 partitition (LBA)",
405 strlcpy(buffer
, "DCE376 logical drive", buffer_size
);
408 strlcpy(buffer
, "Free FDISK hidden Primary DOS FAT16 partitition (LBA)",
412 strlcpy(buffer
, "Free FDISK hidden DOS extended partitition (LBA)",
416 strlcpy(buffer
, "ForthOS partition", buffer_size
);
419 strlcpy(buffer
, "BSD/OS", buffer_size
);
422 strlcpy(buffer
, "Laptop hibernation partition", buffer_size
);
425 strlcpy(buffer
, "Laptop hibernation partition", buffer_size
);
426 //case 0xa1: strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size); break;
429 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
432 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
435 strlcpy(buffer
, "BSD/386, 386BSD, NetBSD, FreeBSD", buffer_size
);
438 strlcpy(buffer
, "OpenBSD", buffer_size
);
441 strlcpy(buffer
, "NeXTSTEP", buffer_size
);
444 strlcpy(buffer
, "Mac OS-X", buffer_size
);
447 strlcpy(buffer
, "NetBSD", buffer_size
);
450 strlcpy(buffer
, "Olivetti Fat 12 1.44Mb Service Partition",
454 strlcpy(buffer
, "Mac OS-X Boot partition", buffer_size
);
455 //case 0xab: strlcpy(buffer, "GO! partition", buffer_size); break;
458 strlcpy(buffer
, "ShagOS filesystem", buffer_size
);
461 strlcpy(buffer
, "ShagOS swap partition", buffer_size
);
464 strlcpy(buffer
, "BootStar Dummy", buffer_size
);
467 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
470 strlcpy(buffer
, "QNX Neutrino Power-Safe filesystem", buffer_size
);
473 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
476 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
479 strlcpy(buffer
, "HP Volume Expansion (SpeedStor variant)", buffer_size
);
482 strlcpy(buffer
, "BSDI BSD/386 filesystem", buffer_size
);
485 strlcpy(buffer
, "BSDI BSD/386 swap partition", buffer_size
);
488 strlcpy(buffer
, "Boot Wizard hidden", buffer_size
);
491 strlcpy(buffer
, "Acronis backup partition", buffer_size
);
494 strlcpy(buffer
, "Solaris 8 boot partition", buffer_size
);
497 strlcpy(buffer
, "Solaris partition", buffer_size
);
500 strlcpy(buffer
, "CTOS", buffer_size
);
501 //case 0xc0: strlcpy(buffer, "REAL/32 secure small partition", buffer_size); break;
502 //case 0xc0: strlcpy(buffer, "NTFT Partition", buffer_size); break;
505 strlcpy(buffer
, "DRDOS/secured (FAT-12)", buffer_size
);
508 strlcpy(buffer
, "Hidden Linux", buffer_size
); break;
509 //strlcpy(buffer, "Reserved for DR-DOS 7+", buffer_size);
512 strlcpy(buffer
, "Hidden Linux swap", buffer_size
);
515 strlcpy(buffer
, "DRDOS/secured (FAT-16, < 32M)", buffer_size
);
518 strlcpy(buffer
, "DRDOS/secured (extended)", buffer_size
);
521 strlcpy(buffer
, "DRDOS/secured (FAT-16, >= 32M)", buffer_size
);
522 //case 0xc6: strlcpy(buffer, "Windows NT corrupted FAT16 volume/stripe set", buffer_size); break;
525 strlcpy(buffer
, "Windows NT corrupted NTFS volume/stripe set",
527 //case 0xc7: strlcpy(buffer, "Syrinx boot", buffer_size); break;
530 strlcpy(buffer
, "Reserved for DR-DOS 8.0+", buffer_size
);
533 strlcpy(buffer
, "Reserved for DR-DOS 8.0+", buffer_size
);
536 strlcpy(buffer
, "Reserved for DR-DOS 8.0+", buffer_size
);
539 strlcpy(buffer
, "reserved for DRDOS/secured (FAT32)", buffer_size
);
542 strlcpy(buffer
, "reserved for DRDOS/secured (FAT32, LBA)", buffer_size
);
545 strlcpy(buffer
, "CTOS Memdump?", buffer_size
);
548 strlcpy(buffer
, "reserved for DRDOS/secured (FAT16, LBA)", buffer_size
);
551 strlcpy(buffer
, "DR-DOS 7.04+ secured EXT DOS (LBA)", buffer_size
);
554 strlcpy(buffer
, "REAL/32 secure big partition", buffer_size
);
557 strlcpy(buffer
, "Old Multiuser DOS secured FAT12", buffer_size
);
560 strlcpy(buffer
, "Old Multiuser DOS secured FAT16 <32M", buffer_size
);
563 strlcpy(buffer
, "Old Multiuser DOS secured extended partition",
567 strlcpy(buffer
, "Old Multiuser DOS secured FAT16 >=32M", buffer_size
);
570 strlcpy(buffer
, "CP/M-86", buffer_size
);
573 strlcpy(buffer
, "Non-FS Data", buffer_size
);
577 "Digital Research CP/M, Concurrent CP/M, Concurrent DOS",
579 //case 0xdb: strlcpy(buffer, "CTOS (Convergent Technologies OS -Unisys)", buffer_size); break;
580 //case 0xdb: strlcpy(buffer, "KDG Telemetry SCPU boot", buffer_size); break;
583 strlcpy(buffer
, "Hidden CTOS Memdump?", buffer_size
);
586 strlcpy(buffer
, "Dell PowerEdge Server utilities (FAT fs)",
590 strlcpy(buffer
, "DG/UX virtual disk manager partition", buffer_size
);
592 //case 0xdf: strlcpy(buffer, "BootIt EMBRM", buffer_size); break;
595 "Reserved by STMicroelectronics for a filesystem called ST AVFS.",
599 strlcpy(buffer
, "DOS access or SpeedStor 12-bit FAT extended partition",
603 strlcpy(buffer
, "DOS R/O or SpeedStor", buffer_size
);
606 strlcpy(buffer
, "SpeedStor 16-bit FAT extended partition < 1024 cyl.",
611 "Tandy DOS with logical sectored FAT (According to Powerquest.)",
613 //case 0xe5: strlcpy(buffer, "Reserved", buffer_size); break;
616 strlcpy(buffer
, "Storage Dimensions SpeedStor", buffer_size
);
619 strlcpy(buffer
, "LUKS", buffer_size
);
622 strlcpy(buffer
, "BeOS", buffer_size
);
625 strlcpy(buffer
, "SkyOS SkyFS", buffer_size
);
628 strlcpy(buffer
, "Reserved for Matthias Paul's Sprytix", buffer_size
);
636 strlcpy(buffer
, "EFI file system",
640 strlcpy(buffer
, "Linux/PA-RISC boot loader", buffer_size
);
643 strlcpy(buffer
, "SpeedStor", buffer_size
);
647 "DOS 3.3+ secondary partition (Powerquest writes: Unisys DOS with logical sectored FAT.)",
652 "Reserved (Powerquest writes: Storage Dimensions SpeedStor.)",
656 strlcpy(buffer
, "SpeedStor large partition", buffer_size
);
657 //case 0xf4: strlcpy(buffer, "Prologue single-volume partition", buffer_size); break;
660 strlcpy(buffer
, "Prologue multi-volume partition", buffer_size
);
664 "Reserved (Powerquest writes: Storage Dimensions SpeedStor. )",
668 strlcpy(buffer
, "DDRdrive Solid State File System", buffer_size
);
671 strlcpy(buffer
, "pCache", buffer_size
);
674 strlcpy(buffer
, "Bochs", buffer_size
);
677 strlcpy(buffer
, "VMware File System partition", buffer_size
);
680 strlcpy(buffer
, "VMware Swap partition", buffer_size
);
684 "Linux raid partition with autodetect using persistent superblock (Powerquest writes: Reserved for FreeDOS. )",
688 strlcpy(buffer
, "LANstep", buffer_size
); break;
689 //strlcpy(buffer, "SpeedStor > 1024 cyl.", buffer_size);
690 //case 0xfe: strlcpy(buffer, "IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk.", buffer_size); break;
691 //case 0xfe: strlcpy(buffer, "Windows NT Disk Administrator hidden partition", buffer_size); break;
692 //case 0xfe: strlcpy(buffer, "Linux Logical Volume Manager partition (old)", buffer_size); break;
695 strlcpy(buffer
, "Xenix Bad Block Table ", buffer_size
);
698 strlcpy(buffer
, "Unknown", buffer_size
);