You are not logged in.

#1 2017-04-06 13:00:21

Winston-Wolfe
Member
Registered: 2013-06-01
Posts: 49

Is it possible to use Syslinux to boot another drive?

I want to run my home server off of a USB 3.0 thumb drive, so I used clonezilla to image my existing set up to the thumb drive. This is an old laptop with no USB 3.0, so I put in an expresscard with usb 3.0 ports, but the bios doesn't see it as a boot device. So I'm thinking I could initially boot from the existing hard drive or a spare usb 2.0 drive, but have Syslinux point to my usb 3.0 drive to load the OS from.  I can find information about chainloading different partitions, but nothing about different disks. Is this even possible?

Offline

#2 2017-04-06 13:11:22

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,676

Re: Is it possible to use Syslinux to boot another drive?

As long as the bios reports the drive, it should work.

assuming the USB3 thumb drive is sdc and your root is 2nd partition on the drive , your APPEND line would look like this :

APPEND root=/dev/sdc1 rw

You  might want to use UUID to make sure you're booting the correct drive/partition .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2017-04-06 14:52:35

olive
Member
From: Belgium
Registered: 2008-06-22
Posts: 1,490

Re: Is it possible to use Syslinux to boot another drive?

I am assuming you use BIOS here (and not UEFI).

You can chainload another drive with the "chain" syslinux module: http://www.syslinux.org/wiki/index.php? … /chain.c32 and install a second copy of syslinux on the other drive partition. However, this will only work if the bios see the other drive. And according to your post, it seems that the bios don't see the disk at all (is it mentioned in the Bios configuration interface?). It is expected that the bios probably don't know about the express card at all.

What you can do without any support of the bios, is to put syslinux, the kernel, and initrd on the drive seen by the bios and pass the option to the kernel accordingly, for example

LABEL archlinux
LINUX /boot/vmlinuz-linux
APPEND root=UUID=<uuid of your root partition on the expresscard drive> rw
INITRD /boot/intel-ucode.img,/boot/initramfs-linux.img

It is not really booting the ExpressCard drive, it is telling the kernel to consider a partition on this drive as the root partition. But this should satisfy your need. You have also to ensure that the correct modules are included in the initrd in order to the kernel to be able to see the ExpressCard drive. Usually, in cases of problem boot with the fallback initrd and regenerate the initrd from there. You can always force a module to be included in te initrd manually.

Last edited by olive (2017-04-06 14:59:22)

Offline

Board footer

Powered by FluxBB