Hard drive is not detected at early stage of unattended installation

I’m doing an unattended installation of Ubuntu-14.04-server with a USB drive and a preseed file on different type of servers (HP Proliant ML110, ML310, ML350). This preseed file contains multiple rules, including the configuration of partman-auto that automates the (custom) partitioning of the server’s hard drive.

  • On the servers ML110 and ML310, at the beginning of the installation process (before partman launches), the hard drive is in /dev/sda and the USB drive takes /dev/sdb. Therefore, I specify d-i partman-auto/disk string /dev/sda in my preseed file, and the partitioning is applied on the server’s hard drive. Everything works fine.

  • But on the servers ML350, at the beginning of the installation process, the main hard drive is not present on /dev/sd*, and the USB drive takes the /dev/sda. It’s only a few steps later that the hard drive shows up … in /dev/sdb. Therefore, my rule in the preseed file is no longer valid and partman screws-up my USB drive.

This very annoying fact rises two questions:

  1. Why the main hard drive doesn’t show in the devices at the beginning of the installation process?
  2. How could I force the main hard drive to show up (and make it take the /dev/sda) or if I cannot, How could I find out, with certainty, on which /dev/sdX the main hard drive will be.

I tried to add dmraid=true in the kernel options, it didn’t work. I also tried to add pci=conf1 (found here) but without success.

Answer

Ever since the move from the old CCISS driver to the HPSA driver, HP Smart Array controllers now leverage the normal SCSI block device subsystem. Therefore, the device naming scheme is /dev/sdX.

Your use of a USB key alters the device enumeration because the USB device is present before the RAID controller (you’re booting off of it). So the USB key becomes /dev/sda and the first HP Smart Array RAID controller is /dev/sdb.

Modern Linux operating systems use partition labels or UUIDs, so the device name won’t matter upon first boot (after you’ve removed the USB key).

The difference between your platforms may be that the ML110 and ML310 (you didn’t specify generations) are not using Smart Array controllers, or have a different class of RAID device.

The ML350 does have a proper Smart Array controller, so the behavior you’re seeing is to be expected.

Use a different preseed file, or try a different deployment approach if possible.

Attribution
Source : Link , Question Author : Jav , Answer Author : Community

Leave a Comment