Boot from either USB drive

Forum Forums General Software Boot from either USB drive

This topic contains 15 replies, has 4 voices, and was last updated by alessnilsen Jan 17-4:44 pm.

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #16041
    Member
    Avatar
    alessnilsen

    Hello! 🙂

    I got a little PC based on a 500Mhz AMD Geode and 256Mb of RAM, my idea is to use it as a FTP server to store songs and other multimedia stuff, for the storage, it got a 500Gb USB Hard Disk and for the boot/OS it has a 4Gb SD USB Card Adapter.

    I installed antiX core on it and got ssh acess and vsftpd running perfectly, my problem is that to boot from the USB device, I had to set the BIOS to boot from the “USB Hard Disk”, but the BIOS can’t distinguish between the Hard Disk and the SD Adapter, so every time I shutdown/reboot the system and the boot fails, I had to manually unplug the HD USB cable in order to it boot properly.

    I searched the internet but could not find a good way to make the HDD point to the SD Adapter, I tried to “grub-install” to the external HDD but this has no effect at all.

    Does someone know a way to do this? It looks like the device it detects first will be the boot device and the first USB port is blocked by the ethernet cable (the big SD card just don’t fit into the space).

    Thanks!

    #16065
    Member
    Avatar
    DaveW

    If I understand your configuration, you have a Harddrive and an SD adapter. Both need to plug into USB connectors. The physical dimensions prevent you from plugging the SD adapter into the preferred USB connector. Have you tried a short USB extension cable, between preferred USB connector and SD adapter? Another option might be to use a micro SD and suitable USB adapter (they are much narrower than standard SD card adapters).

    #16070
    Member
    Avatar
    alessnilsen

    Thank you! I discovered the hard way that there’s no prefered USB port, with the USB extension I tried all configurations on all four USB ports and still no joy, the BIOS just prefer the HD in prior to the SD adapter.

    #16073
    Forum Admin
    BitJam
    BitJam

    What OS and bootloader are on the HD? ISTM an easy solution is to install grub on the HD (if it is not there already) and then make entries to boot the HD OS and the sdcard OS. You could make one or the other the default and use a fast timeout to boot into one or the other automatically.

    You can take the grub entry from /boot/grub/grub.cfg on the sdcard and then add this line (if it is not already there):
    search --no-floppy --set=root --fs-uuid %UUID%
    where %UUID% is the uuid of the sdcard.

    Doing this all manually will mean that grub.cfg cannot be automatically updated when, for example, you change the kernel or something. I think there are tricks you can play so the automatic grub updates will work even though grub.cfg is on a different partition.

    IMO, BIOS (and now especially UEFI) are both buggy and peculiar. This is not surprising since having many vendors writing their own closed-source version of BIOS/UEFI is a recipe for disaster especially since their main concern is “does it boot Windows?”

    • This reply was modified 7 months, 1 week ago by BitJam.

    Context is worth 80 IQ points -- Alan Kay

    #16078
    Member
    Avatar
    alessnilsen

    I did what you said, installed grub on my 500Gb HD and I’m able to boot from it, I tried to chainload it to the SD card but the partitions of the adapter aren’t showing as expected, it says “hd1 cannot get C/H/S values”.

    I was expecting that the HD were detected as hd0 and it does, hd0 and hd0,1 are acessible, but it ends here, hd1 that should be my SD card don’t show up, for help I tried the solutions on this thread but no luck.

    #16105
    Member
    linuxdaddy
    linuxdaddy

    Hi alessnilsen,

    also check and see if the sd card is set for bootable flag in
    gparted.

    • This reply was modified 7 months, 1 week ago by linuxdaddy.
    • This reply was modified 7 months, 1 week ago by linuxdaddy.

    Normal == 🙂
    depends on the surrounding crowd ?!

    #16108
    Forum Admin
    BitJam
    BitJam

    I did what you said, installed grub on my 500Gb HD and I’m able to boot from it, I tried to chainload it to the SD card but the partitions of the adapter aren’t showing as expected, it says “hd1 cannot get C/H/S values”.

    I was expecting that the HD were detected as hd0 and it does, hd0 and hd0,1 are acessible, but it ends here, hd1 that should be my SD card don’t show up, for help I tried the solutions on this thread but no luck.

    Oh man, that sucks. A Google(hd1 cannot get C/H/S values) turned up some threads that had “[Solved]” in the title. Maybe they can help. If not, I’ll ask our grub-meister (fehlix) to help but he is very busy ATM.

    Context is worth 80 IQ points -- Alan Kay

    #16109
    Member
    linuxdaddy
    linuxdaddy

    also see if the drive needs the –force-lba flag because the newer drives should be lba
    not chs layout.

    Normal == 🙂
    depends on the surrounding crowd ?!

    #16115
    Member
    Avatar
    alessnilsen

    Hello and thanks! 🙂

    Hi alessnilsen,

    also check and see if it is not sdb instead of hd1 when grub installed on hd0/sda.
    the newer linux distros use sda or sdb not hd0 or hd1.

    I checked and the grub still reporting on the hdX labeling, so, unfortunately that’s not the problem.

    I did what you said, installed grub on my 500Gb HD and I’m able to boot from it, I tried to chainload it to the SD card but the partitions of the adapter aren’t showing as expected, it says “hd1 cannot get C/H/S values”.

    I was expecting that the HD were detected as hd0 and it does, hd0 and hd0,1 are acessible, but it ends here, hd1 that should be my SD card don’t show up, for help I tried the solutions on this thread but no luck.

    Oh man, that sucks. A Google(hd1 cannot get C/H/S values) turned up some threads that had “[Solved]” in the title. Maybe they can help. If not, I’ll ask our grub-meister (fehlix) to help but he is very busy ATM.

    Yeah, I already tried the fixes from those threads, but no luck.

    also see if the drive needs the –force-lba flag because the newer drives should be lba
    not chs layout.

    I could not find where to aply this flag, tried on grub-install command but it says the option is not recognized.
    I tried to separate the disks in bios setting disk C and disk D as USB Hard Drives, but didn’t work too.

    —————

    I will try to install lilo on my HD to see if it works.

    • This reply was modified 7 months, 1 week ago by alessnilsen.
    #16118
    Member
    linuxdaddy
    linuxdaddy

    It’s supposed to according to

    https://www.linuxtopia.org/online_books/linux_system_administration/gnu_grub_administration_guide/Invoking-grub_002dinstall.html

    
    16 Invoking grub-install
    
    The program grub-install installs GRUB on your drive using the grub shell (see Invoking the grub shell). You must specify the device name on which you want to install GRUB, like this:
    
         grub-install install_device
    
    The device name install_device is an OS device name or a GRUB device name.
    
    grub-install accepts the following options:
    
    --help
        Print a summary of the command-line options and exit.
    --version
        Print the version number of GRUB and exit.
    --force-lba
        Force GRUB to use LBA mode even for a buggy BIOS. Use this option only if your BIOS doesn't work properly in LBA mode even though it supports LBA mode.
    --root-directory=dir
        Install GRUB images under the directory dir instead of the root directory. This option is useful when you want to install GRUB into a separate partition or a removable disk. Here is an example in which you have a separate boot partition which is mounted on /boot:
    
                  grub-install --root-directory=/boot hd0
             
    
    --grub-shell=file
        Use file as the grub shell. You can append arbitrary options to file after the file name, like this:
    
                  grub-install --grub-shell="grub --read-only" /dev/fd0
             
    
    --recheck
        Recheck the device map, even if /boot/grub/device.map already exists. You should use this option whenever you add/remove a disk into/from your computer. 
    

    Normal == 🙂
    depends on the surrounding crowd ?!

    #16119
    Member
    linuxdaddy
    linuxdaddy

    Anyway good luck, just a suggest as I haven’t tried usb with usb boot.

    ooops the -force-lba should’ve been --force-lba
    with 2 dashes not 1. I’ve had to do it for hard drives not usb drives.

    • This reply was modified 7 months, 1 week ago by linuxdaddy. Reason: typo

    Normal == 🙂
    depends on the surrounding crowd ?!

    #16124
    Member
    Avatar
    alessnilsen

    I got lilo running and booting from the SD card, I also installed the MBR on the HD, when booting from it, it just puts out a series of “01 01 01” filling the entire screen and nothing happens.

    I’ll try grub again tomorrow then test the flag you stated. Anyway, thanks for the help! 🙂

    #16125
    Member
    linuxdaddy
    linuxdaddy

    I haven’t dealt with lilo in quite some time but “101010101” in
    lilo usually means it’s not bootable/lilo can’t find the boot partition.
    BTW antiX don’t use lilo, maybe fehlix or someone else have ideas and time
    to answer too with better solutions.

    Normal == 🙂
    depends on the surrounding crowd ?!

    #16170
    Member
    Avatar
    alessnilsen

    My version of grub is different, for example, it doesnt have the “–root-directory/” option, instead, it has “–boot-directory”, it is GRUB 2.02. Tried again and the same problem, none of the modules work (usb, usbms, ahci, ohci and uhci), setting nativedisk on grub does nothing too, only the HD is detected. I think it should be a problem with the bios itself, the bios is General Software Embedded Bios 2000, in this case there’s no much to do I think.

    #16237
    Member
    linuxdaddy
    linuxdaddy

    sorry for not explaining and posting in a hurry .

    the –boot-directory is only used if /boot is a different partition than /.
    also see if lilo is using the hd0 or sda for the drive.
    remember to use update-grub and to run lilo to update each time a change
    is made to the text files.

    Normal == 🙂
    depends on the surrounding crowd ?!

Viewing 15 posts - 1 through 15 (of 16 total)

You must be logged in to reply to this topic.