trying to get ready to complete everything to install /bin /sbin to /usr/sbin and found out I was obsolete with grub .097 so I went to syslinux. completed the following:
1. pacman -S syslinux completed successfully
2.syslinux-install_update -i -a -m completed
3. pacman -S gptfdisk completed successfully
4. Edited /boot/syslinux/syslinux.cfg using the uuid from fstab for linux / which is /dev/sdb3
checked with lsblk -f to ensure boot is there. now when I boot I get nothing but the word grub in the upper left hand with a flashing cursor. I cannot do anything with it it is frozen. If I plug in a second hdd with windows on it it will load and run windows. but the bios has cdrom then the linux hdd then the windows hdd boot priority. I did not repartition or anything but used the automatic install. Fstab has not changed and /boot has syslinux and the .c32 files there.
Last edited by smcsw2000 (2013-06-22 21:42:58)
Are you sure you installed syslinux in the correct place? If you have a separate /boot partition that is marked as bootable, syslinux needs to be installed there.
Do you have a GPT partition table or MBR? I'd assume the former given the installation of gptfdisk, as otherwise I don't see why that would be one of the steps. Even with gpt, I don't see why that would need to be installed for this process as you do not use it for anything.
It sounds like the syslinux-install_update didn't actually complete successfully.
EDIT: rechecked the wiki: The order of your steps is wrong, it seems. gtpfdisk needs to be installed *before* the syslinux_install-update can work. You'll need to boot into a live CD/USB, chroot, mount all relevant partitions, and rerun syslinux-install_update.
Last edited by Trilby (2013-06-20 03:30:04)
I think if you really did those thing in that order, then your boot partition (or rootfs if /boot is on root) has not had its boot flag set. The syslinux-install_update script uses one of the gptfdisk programs (sgdisk I think) to set the boot flag. So if you ran the install script before installing gptfdisk, then Trilby is right, and it did not actually complete successfully.
@smcsw2000: I suspect whether you need gptfdisk in the 1st place. If you used grub-0.97 before and are trying to install syslinux, your system should have been MBR, since grub-0.97 (Arch pkg) did not support GPT.
Probably did not need gptfdisk but there was a note and I use UUID so to be safe I installed it.
Right there is not boot flag set.
I went back and mounted root to /mnt and /boot to /mnt/boot
then I did syslinux-install_update -i -a -m and I got failed to set boot flag on /dev/mapper/arch-root-image
so I tried syslinux-install_update -a and got the same error
so I tried syslinux-install_update -a /mnt/boot with the same error
the only thing I can find about the flag missing is the missing operating system section which is to back up /boot delete it and reinstall it which I prefer not to do unless I have to
Is your /boot on an lvm? If so syslinux is not going to work.
No my hdd is physical partitioned. sda1 is /boot
sda2 is /swap
sda3 is /root
sda4 is /home
I used a live cd to get in and mounted /dev/sda3 to /mnt and /dev/sda1 to /mnt/boot I do not know where /dev/mapper/arch-root-image is located
Er ... you ran syslinux update from withing the live environment. I'm pretty sure you'll need to chroot into *your* system, otherwise you are just trying to mark the iso's boot folder as bootable (hence the /dev/mapper/...).
There may also be other syslinux flags that will allow you to mark a partition on a filesystem other than the one you're currently runnning from - but I don't know it off hand.
EDIT: according to the
manual (edit: command line help) the -c /mnt/ flag should allow you to do this without chrooting - but I've never used that feature.
Last edited by Trilby (2013-06-21 02:38:18)
another solution would be to mark the /boot partion with a program like cfdisk manually as bootable .
Booting with apg Openrc, NOT systemd.
Automounting : not needed, i prefer pmount
Aur helpers : makepkg + my own local repo === rarely need them
another solution would be to mark the /boot partion with a program like cfdisk manually as bootable .
I am honestly not even sure the OP has gotten it installed to the MBR. It sounds like he/she is running this command from directly within the live media environment instead of properly chrooting and doing it from there. So whether the proper partition is marked active or not, I think things won't actually work.
But Lone_Wolf does bring up a good point, that sometimes it is better to do thing manually and get an understanding of what is going on, than to rely on things like the syslinux-install_update script. There are even instrucitons in the wiki for manually installing syslinux.
Thought I chroot, but did not so I booted live cd mounted sda3 to /mnt and sda1 to /mnt/boot
then did arch-chroot /mnt
checked that the files in /boot/syslinux were mine by tail syslinux.cfg and it was my config setup with uuid's
did fsblk -f and saw that /boot and / were mounted
did syslinux-install_update -i -a -m and got the following
ext4-fs error (device sda1) ext4_mb_generate_buddy:741:group 0,3471 clusters in bitmap 5178 in gd
ext4-fs error (device sda1) ext4_mb_generate_buddy:741:group 2,7932 clusters in bitmap 7934 in gd
syslinux install successful
foot flag set /devsda1
installed MBR (/usr/lib/syslinux/mbr.bin) to /dev/sda
unmounted /mnt/boot and /mnt
same as before black screen with GRUB: and a flashing cursor and nothing will input from keyboard or mouse
my fstab is uuid ext4 /
uuid swap swap
uuid ext2 /boot
uuid ext4 /home
So you have two harddrives connected? sda, and sdb?
Have you checked the bios boot order to see that the drive you are installing syslinux on is the first in bios's order?
And to clarify, you are installing syslinux on one disk, while your arch system is on the other? Can you post your full partition list?
Edit: hold on. In your first post, you said / was sdb3. In this last post you were talking about mounting and chrooting to sda. Please clarify.
Last edited by Trilby (2013-06-21 20:48:34)
Also, please remember:
code tags are your friends
All the best,
"All errors are ᴘᴇʙᴋᴀᴄ errors—It's just a matter of narrowing down which keyboard and chair." -Trilby
Sorry in the first post I had three drives Linux, Windows and a storage. To keep windows from booting and get only linux I disconnected it after that. So linux went from sdb to sda.
Bios boots from 1 cd rom
2 Linux hdd
3 Windows hdd
4 storage drive (no boot sector)
my fstab is
uuid=7873d3e8-47cd-4fa3-b3c9-c460f672a42c swap swap defaults 0 0 uuid=94bf4c66-1260-46c0-b599-634a6bdadedd / ext4 defaults 0 1 uuid=d00e2f6a-118c-4ec7-a9b1-93c38e3a40c9 /boot ext2 defaults 0 1 uuid=a4cb23ee-13a6-4af8-9da5-59d54837f4f3 /home ext4 defaults 0 1 #uuid=6CD0182D017F852 /winboot ntfs defaults 0 1 #uuid=E0642C79642C5516 /windows ntfs defaults 0 1 #uuid=9E808EF7808ED4E5 /winstorage defaults 0 1 /dev/sdc1 /storage ext3 defaults 0 1 /dev/sdc2 /pictures ext3 defaults 0 1 /dev/sdc3 /backups defaults 0 1
I am installing syslinux on the Linux hdd . It still has grub on the boot partition because installing syslinux did not have any step for removing grub.097
the partition is
sda1 * os/2fs 3048-206847 7 sda2 os/2fs 7 sda3 os/2fs 7 sdb1 * ext2 1-144584 83 sdb2 swap 82 sdb3 ext2 83 sdb4 ext2 83 sdc1 ext2 63-83907494 83 sdc2 ext2 83 sdc3 ext2 83
hope this is clearer
Yes, thanks - that clarifies it. Though I'm not sure where to go next.
On the Arch wiki page for Syslinux, there are instructions on how to install it manually. Have you tried those? There are of course, different instructions for GPT and MBR partiitoning, so be aware of which is which, and which of those applies to your machine.
Tried to manually install. First I
mount /dev/sdb3 /mnt mount /dev/sdb1 /mnt/boot cd /mnt arch-chroot /mnt fdisk -l /dev/sdb
right hdd with boot enabled then I
dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of=/dev/sda
got 1 file in 1 file out
umounted both /mnt and /mnt/boot and rebooted with the same thing black screen with grub in white letters first line with blinking cursor and nothing will input. Can't find anywhere that shows grub coming up with no other messages or being able to input something.
Obviously, if the grub message still, then you are either a) dd'ing to the wrong place, or b) having your machine boot from the wrong device.
I see you are modifying /dev/sdb which presumably contains Linux, while you are dd'ing the mbr.bin to /dev/sda. Syslinux is awesome, but it remains very simple. Simplicity ensures that much less can go wrong (assuming you get it installed right), but it also means that it does not have extended functionalities that you are probably used to with grub. So for example, I am fairly certain that the MBR you install syslinux onto has to be the same drive with the syslinux.cfg. It finds it by looking for the partition that is marked active with the boot flag. So installing it to /dev/sda while the config resides on /dev/sdb, it is not surprising that you are not getting anything. The black screen (when it doesn't flash grub) results in the fact that it cannot find a config file, so therefore also does not know which c32 modules to load.
Sorry to be so confusing. I did the manual install first with all hdd then did it again with only the linux hdd connected. Again I disconnected all drives but linux and redid the same manual install. Checked the syslinux.cfg and it matches the one in the wiki. but I changed the append to uuid for the linux / not /boot, and ui vesamenu.c3 uncommented. I checked that the files nemu.c32, vesamenu.c32, chain.c32, hdt.c32, reboot.c32, and poweroff.c32 were in the syslinux directory. Still with only the linux hdd connected when I reboot I just get GRUB>. The only thing I can find is maybe in the wiki under troubleshooting- missing operating system it mentions
If the flag is enabled, then perhaps this partition starts at sector 1 rather than sector 63 or 2048. Check this with fdisk -l. If it starts at sector 1, you can move the partition(s) with gparted from a rescue disk.
My boot is 1-144584.
So your /boot partition starts at sector 1, you found information telling you that this was not okay... so have you tried moving it? If you want, you can probably just remove the /boot partition altogether. The only reason to have it is if your / filesystem is not compatible with the bootloader you are trying to use. Syslinux works with ext2/ext3/ext4 and btrfs, so unless you are using something like jfs or xfs for your /, it would be fine to remove it.
Even if you do use something that is not compatible with syslinux, you could still remove the /boot partition, then use fdisk to recreate it (these days it will automatically start the partitions on sector 2048). This shouldn't be too much of a PITA because there should not be a whole lot on /boot anyway. So you could simply "cp -a" all the things to somewhere else, recreate it to a reasonable place, then "cp -a" all the things back to it. Just make sure that your fstab will still point correctly to this partition.
Solved.. I did
cfdisk delete /boot, recreated boot which started at sector 63 and made it bootable wrote and quit mkfs.ext2 /dev/sdb1
then I checked with lsblk -f and all was right so I
mount /dev/sdb3 /mnt mount /dev/sdb1 /mnt/boot arch-chroot /mnt pacman -S syslinux-install_update -iam exit umount /mnt/boot umount /mnt
checked to make sure files were there and rebooted. so the sector starting at 1 was the problem
Glad you got this working.
Just FYI, the reason the partitions start at sector 2048 is because the area between the MBR and sector 2048 is where a GPT partition table would be written (and at the end of the disk). It also ensures 4k alignment for newer advanced format drives and SSDs.
Oh and if you decide one day you want to use grub2, this is the area that grub2 will use to write all the rest of the crap that doesn't fit in the tiny boot sector of the drive. This is why if you use GPT and grub2 you have to create that silly 1-2MB bios boot partition.
So I'm not sure how much of a PITA you found that process to be, but it might be worth moving it to this new start point to ensure future compatibility with whatever you choose to do. Though I really really like syslinux, I knwo that some have found it to be not feature filled enough to meed their needs. Of course, since you are using MBR partitioning, you could always just use the grub-legacy AUR package.