Ticket #47 (new enhancement)
Opened 2 years ago
Identify bootloaders installed in the PBR of a partition
| Reported by: | gert | Owned by: | pierre |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | libs | Version: | |
| Keywords: | Cc: |
Description
Bytes 0x80 to 0x83 are used to identify different bootloaders installed in the PBR of a partition.
This is code from boot_info_script:
case ${Bytes80_to_81} in
0069) BST='ISOhybrid (Syslinux 3.72-3.73)';;
010f) BST='HP Recovery';;
019d) BST='BSD4.4: FAT32';;
0211) BST='Dell Utility: FAT16';;
0488) BST="Grub2's core.img";;
0689) BST='Syslinux 3.00-3.52';
syslinux_info ${part};
BSI="${BSI} ${Syslinux_Msg}";;
0734) BST='Dos_1.0';;
0745) BST='Vista: FAT32';;
089e) BST='MSDOS5.0: FAT16';;
08cd) BST='Windows XP';;
0b60) BST='Dell Utility: FAT16';;
0bd0) BST='MSWIN4.1: FAT32';;
0e00) BST='Dell Utility: FAT16';;
0fb6) BST='ISOhybrid with partition support (Syslinux 3.82-3.86)';;
2a00) BST='ReactOS';;
2d5e) BST='Dos 1.1';;
31c0) BST='Syslinux 4.03 or higher';
syslinux_info ${part} '4.03';
BSI="${BSI} ${Syslinux_Msg}";;
31d2) BST="Grub2's core.img";;
3a5e) BST='Recovery: FAT32';;
407c) BST='ISOhybrid (Syslinux 3.82-4.04)';;
4216) BST='Grub4Dos: NTFS';;
4445) BST='Dell Restore: FAT32';;
55aa) case ${Bytes80_to_83} in
55aa750a) BST='Grub4Dos: FAT32';;
55aa* ) BST='Windows Vista/7';;
esac;;
55cd) BST='FAT32';;
5626) BST='Grub4Dos: EXT2/3/4';;
638b) BST='Freedos: FAT32';;
6616) BST='FAT16';;
696e) BST='FAT16';;
6974) BST='BootIt: FAT16';;
6f65) BST='BootIt: FAT16';;
6f6e) BST='-';; # 'MSWIN4.1: Fat 32'
6f74) BST='FAT32';;
7815) case ${Bytes80_to_83} in
7815b106) BST='Syslinux 3.53-3.86';
syslinux_info ${part};
BSI="${BSI} ${Syslinux_Msg}";;
7815* ) BST='FAT32';;
esac;;
7cc6) BST='MSWIN4.1: FAT32';;
# 7cc6) BST='Win_98';;
7e1e) BST='Grub4Dos: FAT12/16';;
8a56) BST='Acronis SZ: FAT32';;
83e1) BST='ISOhybrid with partition support (Syslinux 4.00-4.04)';;
8ec0) BST='Windows XP';;
8ed0) BST='Dell Recovery: FAT32';;
b106) BST='Syslinux 4.00-4.02';
syslinux_info ${part};
BSI="${BSI} ${Syslinux_Msg}";;
b600) BST='Dell Utility: FAT16';;
b6c6) BST='ISOhybrid with partition support (Syslinux 3.81)';;
b6d1) BST='Windows XP: FAT32';;
e2f7) BST='FAT32, Non Bootable';;
e879) BST='ISOhybrid (Syslinux 3.74-3.80)';;
e9d8) BST='Windows Vista/7';;
f6f6) BST='- (cleared BS by FDISK)';;
fa33) BST='Windows XP';;
fbc0) BST='ISOhybrid (Syslinux 3.81)';;
## If Grub or Grub 2 is in the boot sector, investigate the embedded information. ##
48b4) BST='Grub2 (v1.96)';
grub2_info ${part} ${drive} '1.96';
BSI="${BSI} Grub2 (v1.96) is installed in the boot sector of ${name} and ${Grub2_Msg}.";;
7c3c) BST='Grub2 (v1.97-1.98)';
grub2_info ${part} ${drive} '1.97';
BSI="${BSI} Grub2 (v1.97-1.98) is installed in the boot sector of ${name} and ${Grub2_Msg}.";;
0020) BST='Grub2 (v1.99)';
grub2_info ${part} ${drive} '1.99';
BSI="${BSI} Grub2 (v1.99) is installed in the boot sector of ${name} and ${Grub2_Msg}.";;
aa75 | 5272) BST='Grub Legacy';
stage2_loc ${part};
BSI="${BSI} Grub Legacy (v${Grub_Version}) is installed in the boot sector of ${name} and ${Stage2_Msg}";;
## If Lilo is in the VBR, look for map file ##
8053) BST='LILO';
# 0x20-0x23 contains the offset of /boot/map.
offset=$(hexdump -v -s 32 -n 4 -e '"%u"' ${part});
BSI="${BSI} LILO is installed in boot sector of ${part} and looks at sector ${offset} of ${drive} for the \"map\" file,";
# check whether offset is on the hard drive.
if [ ${offset} -lt ${size} ] ; then
tmp=$(dd if=${drive} skip=${offset} count=1 2>> ${Trash} | hexdump -v -s 508 -n 4 -e '"%_p"');
if [ "${tmp}" = 'LILO' ] ; then
BSI="${BSI} and the \"map\" file was found at this location.";
else
BSI="${BSI} but the \"map\" file was not found at this location.";
fi
else
BSI="${BSI} but the \"map\" file was not found at this location.";
fi;;
0000) # If the first two bytes are zero, the boot sector does not contain any boot loader.
BST='-';;
*) BST='Unknown';
printf "Unknown BootLoader on ${name}\n\n" >> ${Unknown_MBR};
hexdump -n 512 -C ${part} >> ${Unknown_MBR};
echo >> ${Unknown_MBR};;
esac
Note: See
TracTickets for help on using
tickets.
