You are not logged in.

#1 2013-02-02 00:53:34

victorhooi
Member
Registered: 2009-08-06
Posts: 109

Installed Arch, will not boot - Non-System disk or disk error

Hi,

I have a HP 6730s laptop on which I'm trying to install Arch Linux (x64). I'm using the archlinux-2013.01.04-dual.iso boot image, and attempting to install it as per:

https://wiki.archlinux.org/index.php/Beginners'_Guide

However, no matter what I do, whenever I try to boot up, I get:

Non-System disk or disk error
replace and strike any key when ready

The HDD is a 160 Gb Intel X-25M SSD. In the BIOS, I have it set to AHCI mode, not IDE. Also, the BIOS has a UEFI mode, but I have disabled this (so I assume it's traditional BIOS) - even when I enabled UEFI, I didn't see anything in /sys/firmware/efi/vars/ (that directory didn't even exist), so I doubt UEFI mode works properly on this BIOS anyhow.

The hard drive has been formated as GPT.

GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

I have created three partitions:

  1. 2Mb partition, with bios_grub set, and type EF02

  2. 129 Gb BTRFS partition, with legacy_boot set

  3. 5Gb swap partition

I then install GRUB, as per the instructions in the Beginner's Guide and here (https://wiki.archlinux.org/index.php/GR … structions):

modprobe dm-mod
grub-install --target=i386-pc --recheck --debug /dev/sda
mkdir -p /boot/grub/locale
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

The grub-install returned with "No errors", so I'm not sure what's going on.

Any thoughts?

Cheers,
Victor

Offline

#2 2013-02-02 01:09:03

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Installed Arch, will not boot - Non-System disk or disk error

What BIOS do you have and is it up to date? Some firmware will not boot a GPT disk in BIOS legacy mode. I'm not saying yours won't. I'm just mentioning the possibility. (This is why I am booting in UEFI mode - I wanted GPT and the damn thing wouldn't boot in legacy mode.)

I don't know for BIOS booting, but for EFI, grub-install tends to return success no matter what - even when it has obviously failed. I've found that *not* using the --debug flag often makes this clearer.

Did you run grub-mkconfig?

Post config files for grub, output of gdisk -l /dev/sda.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#3 2013-02-02 01:52:09

victorhooi
Member
Registered: 2009-08-06
Posts: 109

Re: Installed Arch, will not boot - Non-System disk or disk error

Hi,

I believe I just have the official HP BIOS?

It's a HP Compaq 6730s, BIOS version 68PZD Ver F.20.

Yup, I ran:

grub-mkconfig -o /boot/grub/grub.cfg

Also, I just tried to convert back to MBR, and when I try to install GRUB, I get:

/usr/bin/grub-bios-setup: warning: your core.img is unusually large. It won't fit in the embedding era.
/usr/sbin/grub-bios-setup: error: filesystem 'btrfs' doesn't support blocklists.

I guess I need to leave 1Mb before the first partition for the first error - not sure about what to do about the second error. Ultimately I'd still like GPT to work, of course.

I'll convert back to GPT again, and then post my Grub configuration and gdisk output - was there something specific you wanted from those? (I didn't change the Grub config from the defaults, and I listed my partitions above.)

Cheers,
Victor

Offline

#4 2013-02-02 02:27:03

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: Installed Arch, will not boot - Non-System disk or disk error

Are you using sub-volumes? (Note: I don't have any idea what these are. But if so, maybe see https://bbs.archlinux.org/viewtopic.php?id=144477 and/or the btrfs wiki page.)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#5 2013-02-02 06:57:57

victorhooi
Member
Registered: 2009-08-06
Posts: 109

Re: Installed Arch, will not boot - Non-System disk or disk error

heya,

Nope, I'm not using subvolumes.

Here is my grub.cfg:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod btrfs
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  8d7f92ce-c910-48c9-8e73-266b7e942ebd
else
  search --no-floppy --fs-uuid --set=root 8d7f92ce-c910-48c9-8e73-266b7e942ebd
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_AU
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch GNU/Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-8d7f92ce-c910-48c9-8e73-266b7e942ebd' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod btrfs
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  8d7f92ce-c910-48c9-8e73-266b7e942ebd
	else
	  search --no-floppy --fs-uuid --set=root 8d7f92ce-c910-48c9-8e73-266b7e942ebd
	fi
	echo	'Loading Linux core repo kernel ...'
	linux	/boot/vmlinuz-linux root=UUID=8d7f92ce-c910-48c9-8e73-266b7e942ebd ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux.img
}
menuentry 'Arch GNU/Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-8d7f92ce-c910-48c9-8e73-266b7e942ebd' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod btrfs
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  8d7f92ce-c910-48c9-8e73-266b7e942ebd
	else
	  search --no-floppy --fs-uuid --set=root 8d7f92ce-c910-48c9-8e73-266b7e942ebd
	fi
	echo	'Loading Linux core repo kernel ...'
	linux	/boot/vmlinuz-linux root=UUID=8d7f92ce-c910-48c9-8e73-266b7e942ebd ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-fallback.img
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Here is the output of gdisk:

gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda 312581808 sectors, 149.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID)...
Partition table holds up to 128 entries
First usable secto ris 34, last usable sector is 312581774
Partitions will be aligned on 2048-sector boundaries
Total free space is 50433645 sectors (24.0 GiB)

Number    Start (sector)      End (sector)      Size        Code         Name
    1                2048                6143          2.0 MiB      EF02
    2                6144       251664383         120.0 GiB    8300         root
    3         251664384     262150143           5.0 GiB      8200         swap

Cheers,
Victor

Offline

#6 2013-02-02 09:57:37

victorhooi
Member
Registered: 2009-08-06
Posts: 109

Re: Installed Arch, will not boot - Non-System disk or disk error

heya,

Mystery solved.

It turns out that the HP 6730s does indeed have one of those buggy BIOSes that doesn't play nice with GPT out of the box.

After reading http://rodsbooks.com/gdisk/bios.html, I started up the traditional fdisk, ignored the warning about this being a GPT disk, then set the bootable flag on the protective MBR entry.

http://rodsbooks.com/gdisk/bios.html wrote:

Particularly if you've got an Intel motherboard, use Linux fdisk or a similar tool to mark the EFI GPT protective partition entry in the MBR as active/bootable. In fdisk, type a followed by the partition number (probably 1), then type p to view the partition table. An asterisk (*) should appear in the Boot column for the relevant partition. You can then type w to save your changes. Do not use GParted, GNU Parted, or another libparted-based tool to make this change; these tools interpret the "boot flag" as being synonymous with an EFI System Partition type code on GPT disks, so changing the "boot flag" with these tools will not have the desired effect. You must use fdisk or some other tool that will alter the MBR data structures, not the GPT data structures!

I can now boot up successfully on this laptop smile.

Cheers,
Victor

Offline

Board footer

Powered by FluxBB