Manual partitioning shows no partitions

Bug #267199 reported by Peter Klotz
4
Affects Status Importance Assigned to Milestone
parted (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Ubuntu 8.10 Alpha 5, i386

Selecting manual partitioning in the Ubuntu installer shows no partitions for /dev/sda although several exist:

root@ubuntu:~# fdisk -l /dev/sda

Disk /dev/sda: 137.4 GB, 137438952960 bytes
255 heads, 63 sectors/track, 16709 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0008e799

   Device Boot Start End Blocks Id System
/dev/sda1 * 1 31 248976 83 Linux
/dev/sda2 32 14620 117186142+ 83 Linux
/dev/sda3 14621 19457 38853202+ 5 Extended
/dev/sda5 14621 14652 257008+ 83 Linux
/dev/sda6 14653 15898 10008463+ 83 Linux

The single partition on my USB stick /dev/sdb however shows up:

root@ubuntu:~# fdisk -l /dev/sdb

Disk /dev/sdb: 32.0 GB, 32078036992 bytes
64 heads, 32 sectors/track, 30592 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0xbbb82b77

   Device Boot Start End Blocks Id System
/dev/sdb1 1 30592 31326192 83 Linux

Revision history for this message
Peter Klotz (peter-klotz) wrote :

This not only happens in ubiquity but also in the text mode installer of the alternate CD.

Clicking on /dev/sda offers me to create a new partition table.

Do both installers share a common library that is responsible for HDD detection?

Revision history for this message
Colin Watson (cjwatson) wrote :

Yes, they do. Please show me the output of 'parted -s /dev/sda print'.

Changed in ubiquity:
status: New → Incomplete
Revision history for this message
Peter Klotz (peter-klotz) wrote :

The HPA of my laptop seems to be the cause of the problem:

Ubuntu 8.10 Alpha 5: parted -s /dev/sda print -> "Error: Can't have a partition outside the disk!"

dmesg | grep HPA:

[ 5.462165] ata1.00: HPA detected: current 268435455, native 312581808

The disk is actually 160GB but due to the HPA only 128GB are visible.

Ubuntu 8.04 (2.6.24) ignored the HPA but 8.10 (2.6.27) obviously does not. This change will definitely break some setups (and will surely make some others work).

How can I pass "ignore_hpa=1" to the libata module when booting from the LiveCD?

Revision history for this message
Phillip Susi (psusi) wrote :

As I said in bug #270151 you can do this:

echo options libata ignore_hpa=1 > /etc/modprobe.d/libata-options

This should work on the livecd if you do it from the busybox prompt in the initramfs, or should take effect permanently when done from the hard disk.

Also you should check your bios for an option to disable the HPA because it sounds like it is setting the HPA to prevent older dumb operating systems from being confused by seeing a drive larger than 128 GB. If you can't find that, then try the utility at http://www.hdat2.com/ to remove the HPA from the drive.

Phillip Susi (psusi)
Changed in parted:
status: Incomplete → Triaged
Revision history for this message
Peter Klotz (peter-klotz) wrote :

As I already noted in Bug #270151 option "break=modules" to load the libata driver hangs my system before the busybox prompt appers.

No BIOS option exists to disable/remove the HPA. Once I remove the HPA with HDAT2 it reappears after I reboot the system.

I currently see no chance of installing a fresh Ubuntu 8.10 on my system. The only option seems to be the upgrade of an 8.04 installation which uses a modprobe file to load libata correctly.

Revision history for this message
Phillip Susi (psusi) wrote :

You might check with your motherboard manufacturer to see if there is a way to disable their use of the HPA. Also the bios probably won't refer to it as HPA, but rather call it some sort of big disk access mode option. I have never used HDAT2 myself, but when configuring the disks HPA you can disable it temporarily ( the way the kernel does with ignore_hpa=1 ) or permanently. You might check to make sure you asked HDAT2 to make it permanent. Also the echo options trick should work on the livecd. Try break=premount instead of break=modules.

Revision history for this message
Phillip Susi (psusi) wrote :

Oh, and look for a bios option to run the controller in AHCI mode.

Revision history for this message
Peter Klotz (peter-klotz) wrote :

Finally I got rid of my HPA.

The HDAT2 forum holds the answer:

http://hdat2.getphpbb.com/hdat2-common-f3/drive-does-not-remember-set-max-address-t120.html

User "drasar" describes the necessary steps for his Acer TravelMate 8004LMi which is very similar to my Acer TravelMate 662LMi:

----
I solved it with HDAT2 v4.5.2 as follows:
1. SET MAX (HPA) Menu --> set new NATIVE MAX ADDRESS [last sector] (in 48bit LBA mode) -- so user area will have full drive capacity now
2. Device Configuration Overlay Menu --> Modify --> Host Protected Area feature --> set REMOVE action
----

So you actually have to remove the HPA feature (not only the HPA itself!) from your HDD so that the BIOS is no longer able to create a new HPA on system startup.

Revision history for this message
Peter Klotz (peter-klotz) wrote :

Marking the bug as "Invalid" since it was no problem in parted but just a BIOS/HPA issue.

Changed in parted:
status: Triaged → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.