Boot from either USB drive

Forum Forums General Software Boot from either USB drive

  • This topic has 15 replies, 4 voices, and was last updated Jan 17-4:44 pm by Anonymous.
Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #16041
    Anonymous

      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
      DaveW
        Helpful
        Up
        0
        ::

        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
        Anonymous
          Helpful
          Up
          0
          ::

          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
            Helpful
            Up
            0
            ::

            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 4 years, 3 months ago by BitJam.

            Context is worth 80 IQ points -- Alan Kay

            #16078
            Anonymous
              Helpful
              Up
              0
              ::

              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
              Anonymous
                Helpful
                Up
                0
                ::

                Hi alessnilsen,

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

                #16108
                Forum Admin
                BitJam
                  Helpful
                  Up
                  0
                  ::

                  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
                  Anonymous
                    Helpful
                    Up
                    0
                    ::

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

                    #16115
                    Anonymous
                      Helpful
                      Up
                      0
                      ::

                      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.

                      #16118
                      Anonymous
                        Helpful
                        Up
                        0
                        ::

                        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. 
                        
                        #16119
                        Anonymous
                          Helpful
                          Up
                          0
                          ::

                          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.

                          #16124
                          Anonymous
                            Helpful
                            Up
                            0
                            ::

                            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
                            Anonymous
                              Helpful
                              Up
                              0
                              ::

                              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.

                              #16170
                              Anonymous
                                Helpful
                                Up
                                0
                                ::

                                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
                                Anonymous
                                  Helpful
                                  Up
                                  0
                                  ::

                                  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.

                                Viewing 15 posts - 1 through 15 (of 16 total)
                                • You must be logged in to reply to this topic.