You are not logged in.

#1 2015-02-11 23:39:17

Thar
Member
Registered: 2007-08-28
Posts: 20

Chainloading to partition on another drive with Syslinux?

I'm attempting to set up chainloading to Windows partition, that's on another drive and doesn't own MBR.

My current partitioning is as follows:

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *          2048   84097023   84094976  40,1G  7 HPFS/NTFS/exFAT
/dev/sda2         84097024  419842047  335745024 160,1G  7 HPFS/NTFS/exFAT
/dev/sda3        419842710 1678133834 1258291125   600G  7 HPFS/NTFS/exFAT
/dev/sda4       1678135296 1953523711  275388416 131,3G 83 Linux

/dev/sdb1  *            63     417689     417627 203,9M  6 FAT16
/dev/sdb2           417690  273040739  272623050   130G 83 Linux
/dev/sdb3        273040740 1532793779 1259753040 600,7G  7 HPFS/NTFS/exFAT
/dev/sdb4       1532793780 1953520064  420726285 200,6G  7 HPFS/NTFS/exFAT

Only first two partitions from each drive seem to be relevant here:
/dev/sda1 - NTFS partition with Windows,
/dev/sda2 - NTFS partition with another Windows,
/dev/sdb1 - FAT16 partition for /boot,
/dev/sdb2 - Arch, ext4 on LVM on LUKS

I run BIOS/MBR and /dev/sda1 Windows is x86_64, if that's relevant. My current syslinux.cfg:

 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 windows
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 windows
        MENU LABEL MS Windows
        COM32 chain.c32
        APPEND hd0 1 swap

LABEL arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=/dev/mapper/volume-root ro vga=current cryptdevice=/dev/sdb2:volume elevator=deadline
        INITRD ../initramfs-linux.img

LABEL archfallback
        MENU LABEL Arch Linux (fallback mode)
        LINUX ../vmlinuz-linux
        APPEND root=/dev/mapper/volume-root ro vga=current cryptdevice=/dev/sdb2:volume elevator=deadline quiet
        INITRD ../initramfs-linux-fallback.img

LABEL memtest
        MENU LABEL Memtest86+
        LINUX ../memtest86+/memtest.bin

LABEL hdt
        MENU LABEL Hardware Detection Tool
        COM32 hdt.c32
 
LABEL reboot
        MENU LABEL Reboot
        COM32 reboot.c32
 
LABEL off
        MENU LABEL Power Off
        COMBOOT poweroff.com

I intend to encrypt /dev/sda2 with TrueCrypt, put it's bootloader in /dev/sda MBR and setup Syslinux that's currently installed on /dev/sdb to allow chainloading to /dev/sda1... And here's when problem starts. Once I overwrite Windows MBR on /dev/sda with TrueCrypt, I can't chainload to /dev/sda1 at all. In fact, previously set up chainloading loads TrueCrypt's bootloader, which makes it look like Syslinux only chainloads drive, not partition itself. I also tried some advices from wiki, but only change I was able to do was booting Windows bootloader with "boot selection failed because a required device is inaccessible" and no attempt in drive numbering/swapping could change this.

Now, I admit I'm no big expert, but I know that installing Windows and then Linux and overwriting MBR with GRUB was default dual boot practice for a long time. So it didn't seem to me that OS is in any way dependent upon MBR and my setup should be possible. Can anyone share the method?

Offline

Board footer

Powered by FluxBB