I tried to install Arch Linux (2017.04.01-x86_64) on a brand new HP ProLiant Gen8 server (4Gb RAM, Processor - G1610T Intel Celeron G1610T - 2.3 GHz), the install process appeared to complete successfully (following the steps in the Arch Linux wiki.

When I tell the server to boot from HDD I see the error "Non system disk or disk error". What might be causing it to fail if the install appeared to go so well?

Here are the steps I took to get this far.

  • Plugged in the server, with three HDs:
    1. 750GB Western Digital HD (RAID 1 with HD #2)
    2. 750GB Western Digital HD (RAID 1 with HD #1)
    3. 80Gb eServer IBM HD
  • Burned the Arch Linux iso onto a MicroSD with rufus
  • Plugged the MicroSD into the slot on the server motherboard
  • Powered on and chose to boot from the MicroSD
  • From the Arch Linux screen chose to boot into the Arch Installer

fdisk -l showed the following:

  • 700G Linux raid (125M unknown, 500M swap) as /dev/sda
  • 700G Linux raid (125M unknown, 500M swap) as /dev/sdb
  • 75G exFat as /dev/sdc (80GB HD)
  • 60G Fat32 as /dev/sdd (MicroSD)

I wanted to install the OS to the 80GB HD, with 5GB swap, 20GB root partition for the OS, 50GB /home partition.

So I partitioned /dev/sdc with fdisk fdisk /dev/sdc o # clear partition table

n # new partition
p # new partition is primary
1 # named partition number 1
<enter> # default start sector
+2G # end sector is 2GB after the start
t # change the type from default
82 # change partition type to 'swap'

n # new partition
p # new partition is primary
2 # named partition number 2
<enter> # default start sector
+20G # end sector is 20GB after the start

n # new partition
p # new partition is primary
3 # named partition number 3
<enter> # default start sector
<enter> # end sector is the rest of the disk
a # make a partition bootable
2 # make partition 2 bootable

w # write new partitions to disk

Running fdisk -l again seemed to confirm success, /dev/sdc/ had three partitions of the type and sizes I expected.

mkfs.ext4 /dev/sdc2 # put ext4 file system on root partition
mkfs.ext4 /dev/sdc3 # put ext4 file system on /home partition
mount /dev/sdc2 /mnt # mount partition 2 as root partition
mkdir /mnt/home # make a place for the home partition
mount /dev/sdc3 /mnt/home #mount partition 3 as home partition
  • I edited /etc/pacman.d/mirrorlist to put local mirrors higher in the list.
  • Installed the base system with pacstrap /mnt base
  • Wrote the file system table with genfstab -L /mnt >> /mnt/etc/fstab
  • Chroot'ed into the new system arch-chroot /mnt
  • Symlinked the right localtime to /etc/localtime
  • Synced the clock hwclock --systohc
  • Uncommented my locale in /etc/locale.gen
  • Ran locale-gen
  • Set my LANG env var in /etc/locale,conf
  • Typed my hostname into /etc/hostname
  • Added my hostname to /etc/hosts
  • Set the root password with passwd
  • Installed GRUB with pacman -S grub
  • Installed GRUB to /dev/sdc

grub-install --target=i386-pc /dev/sdc grub-mkconfig -o /boot/grub/grub.cfg

  • Left the chroot with exit
  • Unmounted everything with unmount -R /mnt
  • Shutdown
  • Removed the MicroSD
  • Powered on
  • Chose to boot from HD

Unfortunately that didn't work, I got the error "Non system disk or disk error"

Thinking it might be to do with the disk order, I removed the two RAID HDs, and put the 80GB disk into slot 0 (/dev/sda)

I booted again from the MicroSD, and in the Arch Installer entered the chroot again, and made these changes.

  • Installed Grub-bios and kernal headers

pacman -S openssh grub-bios linux-headers linux-lts linux-lts-headers

  • Enabled sshd with systemctl enable sshd
  • Then re-ran the commands for installing GRUB.

grub-install --target=i386-pc /dev/sda grub-mkconfig -o /boot/grub/grub.cfg

Rebooting gave me the same error and I couldn't find any more help in the Arch Linux Wiki or YouTube tutorials.

What might cause the installation procedure to apparently go so well, but make the server unable to boot from the HD?

Is it a problem that the HD was in slot /dev/sdc when I installed? Is it a problem that I then moved it?

1 Answer 1


You have a disk enumeration problem.

The MicroSD card is causing your problem because it shifts the SCSI device ordering; possibly taking /dev/sda.

Make sure you're writing the bootloader to the correct device OR remove the MicroSD card before the boatloader is install OR try installing via the ILO using an ISO image.


Ubuntu installation can't detect hard drives

HP DL60 Gen9 not booting installed OS

  • I've check that fdisk -l says the HD is /dev/sda and installed Grub to /dev/sda, I've also tried removing the MicroSD after entering the chroot, and then installing Grub. I've tried booting with and without removing the MicroSD. No luck. Interestingly, when I boot from the HD, I see the Arch Linux installer as if I said boot from the MicroSD. Guess I'll try the ILO. Commented Apr 23, 2017 at 14:00
  • I've managed to boot the installer from an ISO virtually mounted through the ILO. I mount my drives, enter chroot, reinstall grub to /dev/sda, then exit. But I get the same problem when I reboot and boot from the HD. Commented Apr 23, 2017 at 15:01
  • In case you're thinking of how to help further, I've installed CentOS through ILO, as it was the only free OS that's functionally similar to a supported OS. So I won't be able to try out any advice. Commented Apr 23, 2017 at 18:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .