You are not logged in.
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:
2Mb partition, with bios_grub set, and type EF02
129 Gb BTRFS partition, with legacy_boot set
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
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
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
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
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
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.
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 .
Cheers,
Victor
Offline