Unix Technical Forum

Debian bootable on external USB-harddisk

This is a discussion on Debian bootable on external USB-harddisk within the Linux Operating System forums, part of the Unix Operating Systems category; --> I want to install Debian on an external USB-harddisk so that it can boot from it. The installation runs ...


Go Back   Unix Technical Forum > Unix Operating Systems > Linux Operating System

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-18-2008, 09:42 AM
Andreas Rittershofer
 
Posts: n/a
Default Debian bootable on external USB-harddisk

I want to install Debian on an external USB-harddisk so that it can boot
from it. The installation runs fine, also the creation of the initrd with
the usb-stuff and grub installation - but then it does not boot.

In the BIOS I have set up USB-FDD as first boot device, on another computer
USB-HDD, but it does not boot on these two machines.

There must be some detail I've missed - any ideas?

mfg ar
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 01-18-2008, 09:42 AM
Bill Marcum
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

On Sat, 08 Oct 2005 16:39:08 +0200, Andreas Rittershofer
<andreas@rittershofer.de> wrote:
> I want to install Debian on an external USB-harddisk so that it can boot
> from it. The installation runs fine, also the creation of the initrd with
> the usb-stuff and grub installation - but then it does not boot.
>

What happens when you try to boot? Do you get the BIOS "no operating
system" message, or a Grub menu or error message? Does it start to load
Linux and then freeze or panic, or does it boot the OS on the internal
hard disk (if there is one)?
Some information about your CPU, motherboard, etc. might be helpful.

> In the BIOS I have set up USB-FDD as first boot device, on another computer
> USB-HDD, but it does not boot on these two machines.
>
> There must be some detail I've missed - any ideas?
>
> mfg ar



--
Dinner suggestion #302 (Hacker's De-lite):
1 tin imported Brisling sardines in tomato sauce
1 pouch Chocolate Malt Carnation Instant Breakfast
1 carton milk
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 01-18-2008, 09:42 AM
Andreas Rittershofer
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

Bill Marcum wrote:

> On Sat, 08 Oct 2005 16:39:08 +0200, Andreas Rittershofer
> <andreas@rittershofer.de> wrote:
>> I want to install Debian on an external USB-harddisk so that it can boot
>> from it. The installation runs fine, also the creation of the initrd with
>> the usb-stuff and grub installation - but then it does not boot.
>>

> What happens when you try to boot? Do you get the BIOS "no operating
> system" message, or a Grub menu or error message? Does it start to load


When I switch off the internal hd in the BIOS I get the message "no
operating system, press any key ..."

> Linux and then freeze or panic, or does it boot the OS on the internal
> hard disk (if there is one)?


When the internal hd is active then it boots from it - obviously because on
the external hd no os was found.

> Some information about your CPU, motherboard, etc. might be helpful.
>


I tested it on a desktop and on a notebook, both with intel. The result was
always the same.

mfg ar
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 01-18-2008, 09:42 AM
Enrique Perez-Terron
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

On Sat, 08 Oct 2005 23:44:29 +0200, Andreas Rittershofer <andreas@rittershofer.de> wrote:

> Bill Marcum wrote:
>
>> On Sat, 08 Oct 2005 16:39:08 +0200, Andreas Rittershofer
>> <andreas@rittershofer.de> wrote:
>>> I want to install Debian on an external USB-harddisk so that it can boot
>>> from it. The installation runs fine, also the creation of the initrd with
>>> the usb-stuff and grub installation - but then it does not boot.
>>>

>> What happens when you try to boot? Do you get the BIOS "no operating
>> system" message, or a Grub menu or error message? Does it start to load

>
> When I switch off the internal hd in the BIOS I get the message "no
> operating system, press any key ..."
>
>> Linux and then freeze or panic, or does it boot the OS on the internal
>> hard disk (if there is one)?

>
> When the internal hd is active then it boots from it - obviously because on
> the external hd no os was found.
>
>> Some information about your CPU, motherboard, etc. might be helpful.
>>

>
> I tested it on a desktop and on a notebook, both with intel. The result was
> always the same.


Where are the kernel and the initrd image? They must be accessible from
the BIOS before the kernel is loaded & started. The grub install should
(ideally) fail if you have placed the kernel and initrd on the external
hd, but this does generally not happen, because Grub, when running under
Linux does not have enough information about what is and what is not
available from BIOS.

According to what you tell, it sounds like you have even placed
grub stage one on the external disk. Have you? If so, how shall
your computer start grub when you boot? (But most likely it wasn't
you, it was the installation program )

The typical solution has

- Grub stage one on hda's MBR, where the Bios will get it.
If your Bios setup offers to boot from D:, you can have
grub stage one there. Or, you can have another boot loader
than grub in hda's mbr, and use that one to chainload
grub stage one from a partition accessible to that other
boot loader
- The kernel and initrd, and also grub's configuration file
(grub.conf) all on a partition accessible from the BIOS.
That is often just the IDE or SATA drives. This is because
Grub uses BIOS calls to access the disks.
Notice the difference in requirements for the placement
of grub's stage one and the rest. Stage one must be where
the Bios will look for it by its own initiative. The rest
must reside where the Bios can read it when being instructed
to look there by stage one.
- The root file system somewhere accessible to the kernel
using the modules in the initrd.
- Other file systems (/var, /home...) somewhere accessible
to the kernel after loading modules in /lib/modules (which
is on the root fs.)

Grub's dependency on the Bios may surprise those who heard about
the wonderfull capabilities of Grub stage two. But one should not
mix things up. The higher stages allows grub to understand the
data structures inside the partitions. They do not (yet) enable
Grub to go hunting among all sorts of peripheral buses. The
advantage of grub understanding the data structures inside the
partitions is that you can hard-code into grub's lower stages
a disk/partition number and a file name, and grub will find
its configuration file. After reading the config, it can search
any (Bios-accessible) partition to find the kernel and initrd,
again by file name.
The earlier method (Lilo) required that a list of disk block
numbers were hardcoded into the boot loader for all files that it
needed to access. As soon as you edit the configuration file,
the editor will save it in other blocks. If you install a new
kernel, it will generally not reside in the same blocks as the
previous kernel. Then you had to "reinstall" Lilo, i.e., patch
the mbr with new lists of block numbers. With grub, only the block
numbers of the higher stages are hardcoded when grub is installed.
Since you do not upgrade grub itself very often, you don't have to
patch the mbr with new block lists very often.

-Enrique
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 01-18-2008, 09:42 AM
Andreas Rittershofer
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

Enrique Perez-Terron wrote:

> On Sat, 08 Oct 2005 23:44:29 +0200, Andreas Rittershofer
> <andreas@rittershofer.de> wrote:
>
>> Bill Marcum wrote:
>>
>>> On Sat, 08 Oct 2005 16:39:08 +0200, Andreas Rittershofer
>>> <andreas@rittershofer.de> wrote:
>>>> I want to install Debian on an external USB-harddisk so that it can
>>>> boot from it. The installation runs fine, also the creation of the
>>>> initrd with the usb-stuff and grub installation - but then it does not
>>>> boot.
>>>>
>>> What happens when you try to boot? Do you get the BIOS "no operating
>>> system" message, or a Grub menu or error message? Does it start to load

>>
>> When I switch off the internal hd in the BIOS I get the message "no
>> operating system, press any key ..."
>>
>>> Linux and then freeze or panic, or does it boot the OS on the internal
>>> hard disk (if there is one)?

>>
>> When the internal hd is active then it boots from it - obviously because
>> on the external hd no os was found.
>>
>>> Some information about your CPU, motherboard, etc. might be helpful.
>>>

>>
>> I tested it on a desktop and on a notebook, both with intel. The result
>> was always the same.

>
> Where are the kernel and the initrd image? They must be accessible from


They are all on the external harddisk since I want to boot from this
external harddisk.


> the BIOS before the kernel is loaded & started. The grub install should
> (ideally) fail if you have placed the kernel and initrd on the external


No, it does not fail.

> hd, but this does generally not happen, because Grub, when running under
> Linux does not have enough information about what is and what is not
> available from BIOS.
>


Ok.

> According to what you tell, it sounds like you have even placed
> grub stage one on the external disk. Have you? If so, how shall


Yes, see above.

> your computer start grub when you boot? (But most likely it wasn't
> you, it was the installation program )
>


I simply want to take my external hd with me, plug it in some computer and
boot the linux on it.

> The typical solution has
>
> - Grub stage one on hda's MBR, where the Bios will get it.


This sounds as it is not possible to boot from an external hd, since I need
to install it on the internal hd.

> If your Bios setup offers to boot from D:, you can have


The BIOS offers to boot from USB-FDD and on another computer also from
USB-HDD. The BIOS does imho never offers drive letters as c: or d:.

> grub stage one there. Or, you can have another boot loader
> than grub in hda's mbr, and use that one to chainload
> grub stage one from a partition accessible to that other
> boot loader


That's what I also tried: On the internal hd is LILO with an entry pointing
to the partition on the external hd, but all I get is "ERROR 0x01".

> - The kernel and initrd, and also grub's configuration file
> (grub.conf) all on a partition accessible from the BIOS.
> That is often just the IDE or SATA drives. This is because
> Grub uses BIOS calls to access the disks.


Again this sound to me like it is not possible to boot from an external hd.

> Notice the difference in requirements for the placement
> of grub's stage one and the rest. Stage one must be where
> the Bios will look for it by its own initiative. The rest
> must reside where the Bios can read it when being instructed
> to look there by stage one.
> - The root file system somewhere accessible to the kernel
> using the modules in the initrd.
> - Other file systems (/var, /home...) somewhere accessible
> to the kernel after loading modules in /lib/modules (which
> is on the root fs.)
>


I also tried to boot a rescue system from CD and then enter root=/dev/sdb2
boot it cannot find a kernel there while there really IS one.

mfg ar
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 01-18-2008, 09:43 AM
7
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

Andreas Rittershofer wrote:

> I want to install Debian on an external USB-harddisk so that it can boot
> from it. The installation runs fine, also the creation of the initrd with
> the usb-stuff and grub installation - but then it does not boot.
>
> In the BIOS I have set up USB-FDD as first boot device, on another
> computer USB-HDD, but it does not boot on these two machines.
>
> There must be some detail I've missed - any ideas?
>
> mfg ar


Which BIOS do you have.
In general only AMI BIOS seems to work, others
pretend to have options but don't seem to work.
Also, I find the bios seems to configure itself
into a mess which doesn't get wiped with soft
power down. So you need to physically unplug the
PC power lead to force the bios scanning routines to
forget whatever it has saved every time you
want to change something and retry.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 01-18-2008, 09:44 AM
Enrique Perez-Terron
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

On Sun, 09 Oct 2005 09:57:58 +0200, Andreas Rittershofer <andreas@rittershofer.de> wrote:

> Enrique Perez-Terron wrote:
>
>> On Sat, 08 Oct 2005 23:44:29 +0200, Andreas Rittershofer
>> <andreas@rittershofer.de> wrote:
>>
>>> Bill Marcum wrote:
>>>
>>>> On Sat, 08 Oct 2005 16:39:08 +0200, Andreas Rittershofer
>>>> <andreas@rittershofer.de> wrote:
>>>>> I want to install Debian on an external USB-harddisk so that it can
>>>>> boot from it. The installation runs fine, also the creation of the
>>>>> initrd with the usb-stuff and grub installation - but then it does not
>>>>> boot.
>>>>>
>>>> What happens when you try to boot? Do you get the BIOS "no operating
>>>> system" message, or a Grub menu or error message? Does it start to load
>>>
>>> When I switch off the internal hd in the BIOS I get the message "no
>>> operating system, press any key ..."
>>>
>>>> Linux and then freeze or panic, or does it boot the OS on the internal
>>>> hard disk (if there is one)?
>>>
>>> When the internal hd is active then it boots from it - obviously because
>>> on the external hd no os was found.
>>>
>>>> Some information about your CPU, motherboard, etc. might be helpful.
>>>>
>>>
>>> I tested it on a desktop and on a notebook, both with intel. The result
>>> was always the same.

>>
>> Where are the kernel and the initrd image? They must be accessible from

>
> They are all on the external harddisk since I want to boot from this
> external harddisk.
>
>
>> the BIOS before the kernel is loaded & started. The grub install should
>> (ideally) fail if you have placed the kernel and initrd on the external

>
> No, it does not fail.
>
>> hd, but this does generally not happen, because Grub, when running under
>> Linux does not have enough information about what is and what is not
>> available from BIOS.
>>

>
> Ok.
>
>> According to what you tell, it sounds like you have even placed
>> grub stage one on the external disk. Have you? If so, how shall

>
> Yes, see above.
>
>> your computer start grub when you boot? (But most likely it wasn't
>> you, it was the installation program )
>>

>
> I simply want to take my external hd with me, plug it in some computer and
> boot the linux on it.
>
>> The typical solution has
>>
>> - Grub stage one on hda's MBR, where the Bios will get it.

>
> This sounds as it is not possible to boot from an external hd, since I need
> to install it on the internal hd.
>
>> If your Bios setup offers to boot from D:, you can have

>
> The BIOS offers to boot from USB-FDD and on another computer also from
> USB-HDD. The BIOS does imho never offers drive letters as c: or d:.


This should really be the enabling feature.

The question then is if and how grub and other boot loaders "see" the
external drive. I mean, if your bios offers to boot from usb-hdd, it
should mean that the bios will read one sector off that device and place
it in memory, and then run whatever code that sector contains.

The first question then is, is this happening? I the bios code recognizing
the external drive? Are the symptoms somehow different if you "forget"
to attach the cable to the external drive? Do you observe any activity,
like a led lighting or a noise indicating that the drive is being accessed?

If this sector is Grub's stage one, this code must be able to ask
the bios to get other sectors as well. Grub uses bios calls to load further
sectors, and specifies 0x80 as the drive number if it wants the primary master
disk. Numbers below 0x80 are floppies.

When grub is installed in that boot sector, it must be hardcoded into that
code what blocks (and what device) to ask for to get stage "1.5", the
file-system savy code. I see when I install Grub on my disk that it says
it has "embedded 15 sectors of stage 1.5". I believe that means the the
block numbers have been embedded into the stage 1 image installed into
the boot sector.

I have the impression that it is possible to "embed" not only block numbers,
but also a drive number into the stage 1 code. I had installed grub's stage
one into my hda, while all the other code was in hdb1. My bios only offers
the primary master disk (or floppy or cd). But what drive number must grub
use to specify the external drive? 0x80, when the initial boot sector is
taken from it? What if you have grub stage one on a local disk (hda),
what drive number must grub use then?

There is a way to find out: Create a grub floppy, and boot off it.
When you have the grub prompt, use the "find" command, and ask for a file
that only exists on the external drive. Notice that if you are asking
for a file that resides on a partition that is usually mounted as /home,
you must specify the file name without the /home prefix, just the path
from the root of the partition. Grub is then supposed to look into
all partitions it can find and access. I guess it tries in turn all device
numbers from 0x80 and up to a maximum returned by your bios after a
disk parameters call. If you place a file called "here" on the partition
containing the kernel and the grub higher stages, and the find command
returns "(hd12,2)/here", then you should say "root (hd12,2)" and "setup
(hd-whatever)" to place stage 1 in hd-whatever, with the appropriate
drive and block numbers embedded to get stage 1.5.



>
>> grub stage one there. Or, you can have another boot loader
>> than grub in hda's mbr, and use that one to chainload
>> grub stage one from a partition accessible to that other
>> boot loader

>
> That's what I also tried: On the internal hd is LILO with an entry pointing
> to the partition on the external hd, but all I get is "ERROR 0x01".


I guess the same question can be asked about lilo as about grub: what
device number must lilo use to load the kernel using the Bios? If that
number is being guessed while installing lilo while running the kernel,
it may not work, because the kernel does not necessarily see the devices
in the same order as the Bios does. Especially is the Bios order changes
when the external device is offered by the bios as the boot device.

>
>> - The kernel and initrd, and also grub's configuration file
>> (grub.conf) all on a partition accessible from the BIOS.
>> That is often just the IDE or SATA drives. This is because
>> Grub uses BIOS calls to access the disks.

>
> Again this sound to me like it is not possible to boot from an external hd.


It should not be impossible, to my (urneliable) knowledge. But it depends
on the Bios and the details of how the steps are chained.

>> Notice the difference in requirements for the placement
>> of grub's stage one and the rest. Stage one must be where
>> the Bios will look for it by its own initiative. The rest
>> must reside where the Bios can read it when being instructed
>> to look there by stage one.
>> - The root file system somewhere accessible to the kernel
>> using the modules in the initrd.
>> - Other file systems (/var, /home...) somewhere accessible
>> to the kernel after loading modules in /lib/modules (which
>> is on the root fs.)
>>

>
> I also tried to boot a rescue system from CD and then enter root=/dev/sdb2
> boot it cannot find a kernel there while there really IS one.


That rescue CD, what does it contain? A minimal Linux kernel? Or a program
that uses the Bios to access the drives? I would think it had to be a linux
kernel. But then, why cannot that kernel access the device? Can you access the
device otherwise, when running a kernel that was loaded from elsewhere?

Or could there be a small confusion here. "root=/dev/sdb2" sounds like a kernel
command line option. But then this is not where the kernel is looked up, this
is the device that the kernel will mount as its root file system *after* it has
itself been loaded into memory... from *somewhere*. How is that somewhere
specified, and to whom?

-Enrique
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8 (permalink)  
Old 01-18-2008, 09:44 AM
hermann
 
Posts: n/a
Default Re: Debian bootable on external USB-harddisk

Andreas Rittershofer schrieb:

> I want to install Debian on an external USB-harddisk so that it can boot
> from it. The installation runs fine, also the creation of the initrd with
> the usb-stuff and grub installation - but then it does not boot.
>
> In the BIOS I have set up USB-FDD as first boot device, on another computer
> USB-HDD, but it does not boot on these two machines.
>
> There must be some detail I've missed - any ideas?
>
> mfg ar

hi,
you can try to boot it with help of a RUNT-Linux Boot-Floppy
whith it, you can boot from any USB-Device (USB-Stick, ...)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 05:09 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com