You are not logged in.
Pages: 1
Topic closed
Greetings everyone,
I decided to replace GRUB Legacy on my box this morning with Syslinux. Unlike the other box where I did this, it did not go smoothly this time.
At computer startup, it will tell me that "Boot failed <Hard drive model>".
In order to do some more testing, I booted using SystemRescueCd into my Arch and installed GRUB2. Startup will fail at the very same moment.
This is what fdisk has to say about my partitioning:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa9d357fb
Device Boot Start End Blocks Id System
/dev/sda1 2048 821247 409600 27 Hidden NTFS WinRE
/dev/sda2 821248 488245247 243712000 7 HPFS/NTFS/exFAT
/dev/sda3 488245248 523401497 17578125 7 HPFS/NTFS/exFAT
/dev/sda4 523403262 976771071 226683905 5 Extended
/dev/sda5 * 523403264 603402239 39999488 83 Linux
/dev/sda6 603404288 635402239 15998976 82 Linux swap / Solaris
/dev/sda7 635404288 936771583 150683648 83 Linux
/dev/sda8 936773632 976771071 19998720 b W95 FAT32
Since GRUB Legacy worked fine, I installed both Syslinux and GRUB2 for BIOS booting by overwriting the MBR. My assumption is that the BIOS cannot handle the new MBR, and thus cannot start the bootloader, but I ran out of any steps I could take to fix this. And I could be wrong, of course.
For completeness, this is my syslinux.cfg, even though it is pretty much the stock one, and I doubt that it is part of the cause:
# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
#
# Comboot modules:
# * menu.c32 - provides a text menu
# * vesamenu.c32 - provides a graphical menu
# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
# * hdt.c32 - hardware detection tool
# * reboot.c32 - reboots the system
# * poweroff.com - shutdown the system
#
# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
# If /usr and /boot are on the same file system, symlink the files instead
# of copying them.
#
# If you do not use a menu, a 'boot:' prompt will be shown and the system
# will boot automatically after 5 seconds.
#
# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
# The wiki provides further configuration examples
DEFAULT arch
PROMPT 0 # Set to 1 if you always want to display the boot: prompt
TIMEOUT 50
# You can create syslinux keymaps with the keytab-lilo tool
#KBDMAP de.ktl
# Menu Configuration
# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
UI menu.c32
#UI vesamenu.c32
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Arch Linux
#MENU BACKGROUND splash.png
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
# boot sections follow
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*
LABEL arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=/dev/sda5 ro
INITRD ../initramfs-linux.img
LABEL archfallback
MENU LABEL Arch Linux Fallback
LINUX ../vmlinuz-linux
APPEND root=/dev/sda5 ro
INITRD ../initramfs-linux-fallback.img
LABEL windows
MENU LABEL Windows
COM32 chain.c32
APPEND hd0 1
LABEL hdt
MENU LABEL HDT (Hardware Detection Tool)
COM32 hdt.c32
LABEL reboot
MENU LABEL Reboot
COM32 reboot.c32
LABEL off
MENU LABEL Power Off
COMBOOT poweroff.com
Any ideas? Even ideas how to get more information from this box would be very helpful... "Boot failed" is not that constructive.
Last edited by IllDefinedPillow (2012-08-14 06:06:08)
Offline
What was the output of `syslinux_update-install -iam`? Did you also try manually placing the MBR with dd?
Offline
# syslinux-install_update -iam
Syslinux install successful
Boot Flag Set - /dev/sda5
Installed MBR (/usr/lib/syslinux/mbr.bin) to /dev/sda
Yes, I also tried dd with the extlinux --install call beforehand. I tried it with the standard mbr.bin and the altmbr.bin, both did not work.
Offline
I'd suggest using either the partition label or UUID to boot into your system. Sometimes the BIOS will take all the letters/numbers assigned to drives and shuffle them around based on presence, boot flags or whatever, thus making /dev/sda1 appear to be "hd1,2" and such; you'll end up having to try different numbers to find the right boot partition. This used to happen to me with my laptop. which allows me to swap out the optical drive for a second hard disk: If I wanted to chain-load into another OS while the second disk was present, I needed to switch the drive letters from hd0,2 to hd1,2; the same goes for usb external drives. I don't have to worry about doing the same with Arch anymore, since the root partition is labelled "Arch" and syslinux searches for that label automatically. I don't know if you have similar circumstances, but searching by label or UUID would help clarify the problem, since both GRUB and Syslinux install successfully.
Offline
Hm, I only have one HDD, so using UUIDs/labels did not help, but thanks for the suggestion. (I occasionally try to boot without the USB stick plugged in, so there is no /dev/sdb.)
Offline
I only have one HDD, so using UUIDs/labels did not help ...
https://wiki.archlinux.org/index.php/Sy … sic_Config
LABEL arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro
INITRD ../initramfs-linux.img
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
I see, you corrected my syntax, thanks. But it still cannot boot.
Now, this is how syslinux.cfg looks now:
# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
#
# Comboot modules:
# * menu.c32 - provides a text menu
# * vesamenu.c32 - provides a graphical menu
# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
# * hdt.c32 - hardware detection tool
# * reboot.c32 - reboots the system
# * poweroff.com - shutdown the system
#
# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
# If /usr and /boot are on the same file system, symlink the files instead
# of copying them.
#
# If you do not use a menu, a 'boot:' prompt will be shown and the system
# will boot automatically after 5 seconds.
#
# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
# The wiki provides further configuration examples
DEFAULT arch
PROMPT 0 # Set to 1 if you always want to display the boot: prompt
TIMEOUT 50
# You can create syslinux keymaps with the keytab-lilo tool
#KBDMAP de.ktl
# Menu Configuration
# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
UI menu.c32
#UI vesamenu.c32
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
MENU TITLE Arch Linux
#MENU BACKGROUND splash.png
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
# boot sections follow
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*
LABEL arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=UUID=d292a449-b64b-40cd-b09b-e876e50e207f ro
INITRD ../initramfs-linux.img
LABEL archfallback
MENU LABEL Arch Linux Fallback
LINUX ../vmlinuz-linux
APPEND root=UUID=d292a449-b64b-40cd-b09b-e876e50e207f ro
INITRD ../initramfs-linux-fallback.img
LABEL windows
MENU LABEL Windows
COM32 chain.c32
APPEND label:winboot
LABEL hdt
MENU LABEL HDT (Hardware Detection Tool)
COM32 hdt.c32
LABEL reboot
MENU LABEL Reboot
COM32 reboot.c32
LABEL off
MENU LABEL Power Off
COMBOOT poweroff.com
# APPEND root=/dev/sda5 ro
# APPEND hd0 1
However, I still believe that it fails prior to reading this file. Syslinux does not output anything before the booting fails, which it should if syslinux.cfg would be accessible but erroneous, shouldn't it?
Offline
Is "d292a449-b64b-40cd-b09b-e876e50e207f" the UUID for /dev/sda5 (the root partition), or is /dev/sda7 the root partition?
Does the menu even show up? Need more details than this... Post the output from "blkid" from a "live" Linux distribution and your /etc/fstab.
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
Thank you for your time.
No, the menu does not show up. Not even Syslinux's name or its version. It actually fails very quickly.
# blkid
/dev/sda1: LABEL="winboot" UUID="B0D09BCAD09B94E6" TYPE="ntfs"
/dev/sda2: LABEL="WINDOWS" UUID="4EC29FECC29FD715" TYPE="ntfs"
/dev/sda3: LABEL="Data" UUID="4226A28926A27D93" TYPE="ntfs"
/dev/sda5: UUID="d292a449-b64b-40cd-b09b-e876e50e207f" TYPE="ext4"
/dev/sda6: UUID="2b9be106-9199-422c-b433-a54b0546e809" TYPE="swap"
/dev/sda7: UUID="9045b256-d20b-441f-8cbb-1d8c3d2d012d" TYPE="ext4"
/dev/sda8: UUID="DDB3-B3BD" TYPE="vfat"
/dev/sdb1: LABEL="SYSRESC" UUID="5CF7-0DD8" TYPE="vfat"
# cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
tmpfs /tmp tmpfs nodev,nosuid 0 0
/dev/sda5 / ext4 defaults 0 1
/dev/sda6 swap swap defaults 0 0
/dev/sda7 /home ext4 defaults 0 1
EDIT:
/boot/syslinux % ls -lh
total 36K
lrwxrwxrwx 1 root root 27 Aug 12 10:10 chain.c32 -> /usr/lib/syslinux/chain.c32
lrwxrwxrwx 1 root root 25 Aug 12 10:10 hdt.c32 -> /usr/lib/syslinux/hdt.c32
-r--r--r-- 1 root root 32K Aug 12 17:40 ldlinux.sys
lrwxrwxrwx 1 root root 26 Aug 12 10:10 menu.c32 -> /usr/lib/syslinux/menu.c32
lrwxrwxrwx 1 root root 25 Aug 12 10:10 pci.ids -> /usr/share/hwdata/pci.ids
lrwxrwxrwx 1 root root 30 Aug 12 10:10 poweroff.com -> /usr/lib/syslinux/poweroff.com
lrwxrwxrwx 1 root root 28 Aug 12 10:10 reboot.c32 -> /usr/lib/syslinux/reboot.c32
-rw-r--r-- 1 root root 0 Aug 12 17:40 SYSLINUX_AUTOUPDATE
-rw-r--r-- 1 root root 2.5K Aug 12 17:35 syslinux.cfg
lrwxrwxrwx 1 root root 30 Aug 12 10:10 vesamenu.c32 -> /usr/lib/syslinux/vesamenu.c32
There is no menu, nor a Syslinux prompt.
Last edited by IllDefinedPillow (2012-08-12 17:22:58)
Offline
Ok, how about installing it manually then? Pop in the new Arch install media and run:
# mount /dev/sda5 /mnt
# arch-chroot /mnt
# extlinux --install /boot/syslinux
# dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sda
Or, if you have an older Arch LiveCD or some other "live" Linux distribution:
# mount /dev/sda5 /mnt
# cd /mnt
# for i in /proc /sys /dev /dev/pts; do mount -B $i .$i; done
# chroot .
# extlinux --install /boot/syslinux
# dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sda
Edit: The boot flag is already set on /dev/sda5 so we'll just leave that alone.
Last edited by DSpider (2012-08-12 17:39:41)
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
Wait, /dev/sda may be the USB stick if you're booting from one... You may need to use /dev/sdb to write the MBR with dd. Check with...
# fdisk -l
...so that you're pointing dd to the right drive.
Last edited by DSpider (2012-08-12 17:49:05)
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
No luck, but thanks anyway. I will not try anything else today; maybe I will retry to install GRUB2 instead tomorrow or something like that. And I still wonder what has changed so both don't work...
Offline
I hope you weren't using /dev/sda5 instead of /dev/sda when you used dd. Same goes for GRUB. You want to install to the MBR, not to a partition.
Last edited by DSpider (2012-08-12 18:55:21)
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
It was /dev/sda.
Offline
Here is what fixed it:
Installing GRUB2.
Setting boot flag to /dev/sda1.
What I believe to be the cause:
Some years ago, I read about that if the boot partition is too far into a HDD, you cannot boot from that partition.
Now, unlike Syslinux, GRUB Legacy and GRUB2 can handle such situations as they can load the kernel and initrd from any partition. This way, the boot flag can be on any partition, as it does not matter.
Offline
GRUB doesn't care about boot flags. On older BIOS-es if the boot partition is past a certain cylinder (somewhere after 8 GB or so), then it cannot boot. But if the computer was bought in the last 10 years or so, you don't have this problem. I think Syslinux was installed correctly but you probably had a typo or something in the syslinux.cfg file. You should have gotten rid of those comments and crap and just went with the most plain syslinux.cfg file you could. Something like:
UI vesamenu.c32
TIMEOUT 300
LABEL arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ro
INITRD ../initramfs-linux.img
I have made a personal commitment not to reply in topics that start with a lowercase letter. Proper grammar and punctuation is a sign of respect, and if you do not show any, you will NOT receive any help (at least not from me).
Offline
It probably wasn't a typo in his syslinux.cfg file, nor a Syslinux installation problem. I had the exact same problem, save for the fact that my PC reboots endlessly when it doesn't find a bootable device instead of showing some error message. And I could actually boot into syslinux from a live CD with the "boot from HD" option. I just deleted and recreated my /boot partition, copied over a backup of the files that were there, including my cfg file, and ran the syslinux MBR installer, and then it worked.
Somehow, I tried switching from grub-legacy to syslinux on another computer of mine, and it yielded the very same symptoms. Go figure.
Last edited by ilikepie (2012-08-15 08:58:30)
Offline
The reason why I pin my problem on the boot flag is because of the following observed behavior:
1. Syslinux + boot flag on /dev/sda5 -> does not boot
so I tried
2. GRUB2 + boot flag on /dev/sda5 -> does not boot, visible result is the exact same as in 1
so I tried
3. GRUB2 + boot flag on /dev/sda1 -> boots
From that I conclude that the boot flag was the showstopping problem. Apparently I have a crappy BIOS or something like that. I cannot explain in any other way why GRUB would behave like this. So I think my problem was hardware-specific (it is a two year old Toshiba notebook, by the way).
Offline
I think the problem is with boot flag in logical partition (in your case /dev/sda5) instead of the primary partition (/dev/sda1) . I would say either syslinux's mbr.bin does not support booting to lslinux.sys in a logical partition, or your BIOS refuses to boot if none of the primary partitions have boot flag set.
EDIT: I have tried syslinux only in a GPT system (and removed it later), and currently I boot using grub-bios, so my (above) comment may not be correct.
Last edited by the.ridikulus.rat (2012-08-15 14:55:53)
Offline
I decided to replace GRUB Legacy on my box this morning with Syslinux. Unlike the other box where I did this, it did not go smoothly this time.
At computer startup, it will tell me that "Boot failed <Hard drive model>".
When did you see the message? Before the syslinux menu or after? If after then it clearly the syslinux issue. If you decide to try syslinux again you should follow https://wiki.archlinux.org/index.php/Sy … loader_log to get more log messages from the boot process.
Personally I found several issues with syslinux. e.g. syslinux does not work with btrfs correctly. In some cases (i suspect it depends on initrd image disk location) syslinux refuses to boot kernel from btrfs partition. It says something like "Boot magic number invalid"... Do you use btrfs by the chance?
Since GRUB Legacy worked fine, I installed both Syslinux and GRUB2 for BIOS booting by overwriting the MBR. My assumption is that the BIOS cannot handle the new MBR
When you say "new MBR" do you mean GPT? On my BIOS machine where I use syslinux it refuses to boot from GPT partitioned disk, syslinux is unable even reach the menu. I had to convert the disk back to DOS format.
Last edited by anatolik (2014-07-17 03:35:25)
Read it before posting http://www.catb.org/esr/faqs/smart-questions.html
Ruby gems repository done right https://bbs.archlinux.org/viewtopic.php?id=182729
Fast initramfs generator with security in mind https://wiki.archlinux.org/index.php/Booster
Offline
anatolik, the thread is almost 2 years old and Solved too. I doubt that the OP is still looking for answers.
Closing...
There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !
Offline
Pages: 1
Topic closed