Hi,
As I suspected, this worked. Syslinux doesn't appear to like installing on a device formatted as a file system when that device is mounted as the root partition, since there's no root device like /dev/sda and /dev/sda1 as the partition, and nothing mounted for /boot. For those interested, here's a few steps which should work with non arch systems as well, just modify the configuration file for syslinux appropriately, which I'll be posting below.
Resize disks if needed, or if starting from the beginning, don't worry about this step.
Make a new ext4 partition that's about 100MB in size to make room for any customized kernels, or other such information. Call it boot for simplicity, or whatever you like.
Deploy a new image with the rest of the disk space, excluding swap which will automatically take from the size of the deployment. If already deployed, skip this.
Edit the configuration profile so the boot image is on /dev/sdc.
Boot your system with the latest Linode kernel and log in as root.
If /boot isn't empty, move it to /boot_tmp, then make a new /boot directory. Mount /dev/sdc on /boot and move the content of /boot_tmp to /boot and remove /boot_tmp.
Update any packages and install a kernel is needed, the Arch Linux image comes with it installed already. Install syslinux and perform a bios install. Automatic install, if your distribution supports it, ought to work. Modify or change the files posted. I used cat to output their content, but pay that part no mind.
Code:
# cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/sdb / ext4 rw,relatime 0 1
/dev/sda /boot ext4 rw,relatime 0 1
/dev/sdc none swap defaults 0 0
# cat /boot/syslinux/syslinux.cfg
# Config file for Syslinux -
# /boot/syslinux/syslinux.cfg
DEFAULT arch
PROMPT 0 # Set to 1 if you always want to display the boot: prompt
TIMEOUT 50
LABEL arch
LINUX ../vmlinuz-linux
APPEND root=/dev/sdb console=ttyS0 rw
INITRD ../initramfs-linux.img
LABEL archfallback
LINUX ../vmlinuz-linux
APPEND root=/dev/sdb console=ttyS0 rw
INITRD ../initramfs-linux-fallback.img
Modify the configuration profile as follows. Boot direct from disk. /dev/sda is boot, /dev/sdb is the main image, /dev/sdc is swap. Root device stays at /dev/sda. I left the distribution helper enabled, though it could likely be safely disabled at this point, I doubt it would effect anything.
Interestingly enough, in addition to the Linode kernel using more ram, at least for Arch Linux, I also get another rather odd message when using it, which doesn't appear on the Arch Linux kernel.
Code:
localhost login: root
Password:
audit: type=1006 audit(1434937001.748:2): pid=2634 uid=0 old-auid=4294967295 auid=0 old-ses=4294967295 ses=1 res=1
audit: type=1006 audit(1434937001.778:3): pid=2651 uid=0 old-auid=4294967295 auid=0 old-ses=4294967295 ses=2 res=1
Last login: Mon Jun 22 01:35:00 on ttyS0
[root@localhost ~]#
So far, I like the kernel on Arch Linux better than the Linode kernel, I may switch over to Arch Linux kernel on the other Linodes I have now that I've got this procedure down pat and working. I've not decided just yet.
Blake