The Linux Journal article you referenced misses one step which may be important for some computers — when you partition the new drive using the MS-DOS partition table format, you must mark exactly one primary partition on the drive as active. This step is often forgotten without any visible problems; however, on some computers the BIOS performs more strict checks and refuses to boot from a disk without an active partition.
The way to mark a partition as active in Linux
fdisk is to use the
a command; it asks for the partition number and toggles the active flag for that partition. If you print the partition table using the
p command, active partitions are marked by the
* character in the
If you have only Linux installed on the disk, and the bootloader is installed into the MBR, it does not matter which primary partition is marked as active, as long as there is exactly one such partition.
More details below, if you are interested:
(All this applies only when the MS-DOS partition table format is used; the situation is significantly different with the GPT partition table, especially when used together with UEFI.)
When the MS-DOS partition table was introduced, the MBR was intended to contain a small piece of code which searches through primary partitions (there can be up to 4 of them), and if exactly one partition has the active flag set, loads the first sector from that partition (the boot sector) and transfers control to the code from there, which then should boot the OS from that partition. If there are either no active partitions, or more than one partition with the active flag set, the MBR code prints a message and invokes
int $0x18 to report boot failure to the BIOS.
However, many bootloaders used for booting Linux are usually installed into the MBR and replace the standard MBR code with the code which loads the rest of the bootloader and then, e.g., offers the boot menu. This code does not use the active flag in the partition table, therefore, e.g., GRUB installed into the MBR can start and load the Linux kernel even if there is no active partition on the disk; Linux also does not use the active partition flag in any way.
Many BIOS versions check only the
0xaa55 magic number at the end of MBR and the initial
jmp command code to determine whether the MBR is valid, and will happily transfer control to the code in MBR irrespective of the MS-DOS partition table contents. However, in some cases BIOS developers decide to be “more helpful” and add more checks to the boot code — e.g., BIOS may look at the MS-DOS partition table in the MBR and consider the disk to be non-bootable if there is no active partition there. This check gives wrong results if MBR does not contain the usual code which loads the boot sector from the active partition, but BIOS developers probably does not consider this to be a problem. If your computer has such BIOS, you must have an active partition on your boot disk, even if the active flag is not actually used by the code in MBR and the rest of bootloader.