LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (http://www.linuxquestions.org/questions/linux-software-2/)
-   -   ubuntu installed on external hard drive, can't startup without external hard drive. (http://www.linuxquestions.org/questions/linux-software-2/ubuntu-installed-on-external-hard-drive-cant-startup-without-external-hard-drive-697304/)

Vanostaajen 01-14-2009 02:23 PM

ubuntu installed on external hard drive, can't startup without external hard drive.
 
I have 2 ubuntu's: 1 on my ineternal hard drive, 1 on my external

When I startup without my ext drive =>GRUB error 21.

And when I plug it in I can choose: the standard ubuntu kernel is the one on my external, and the original one is listed under other...

I'd like to be able to startup without external hard drive and make the ubuntu on my internal drve the standard.


So what do I do now?

hal8000b 01-14-2009 04:16 PM

Plug in your external hard drive, boot the Ubuntu system that is installed on your internal hard drive.

Then install grub to the mbr on the internal drive, as grub is currently installed to the mbr on the external drive, this is why you see grub error 21 when the external drive is not present.

syg00 01-14-2009 04:44 PM

Nothing is ever that simple.
Grub is actually on the MBR of the internal, but refers to a partition on the external for its stage files (and menu.lst). Doing the above will allow boot without the external plugged in, but will (likely) not have any reference to the external in the boot menu. Can be simply added using the menu.lst on the external as an example.

Vanostaajen 01-15-2009 02:49 AM

Ok I'm not that good with coputers: 1)what is MBR, and 2) how do I install grub...?

Sorry but I'm really unexperienced with linux.

syg00 01-15-2009 03:44 AM

Open a terminal, and post the output of this "sudo fdisk -l".

Vanostaajen 01-15-2009 06:31 AM

Tsadaaam:


thomas@Vanessa:~$ sudo fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1f7e8491

Device Boot Start End Blocks Id System
/dev/sda1 * 1 18702 150223783+ 83 Linux
/dev/sda2 18703 19457 6064537+ 5 Extended
/dev/sda5 18703 19457 6064506 82 Linux swap / Solaris

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0009af02

Device Boot Start End Blocks Id System
/dev/sdb1 1 42476 341188438+ b W95 FAT32
/dev/sdb2 42477 60801 147195562+ 5 Extended
/dev/sdb5 42477 60052 141179188+ 83 Linux
/dev/sdb6 60053 60801 6016311 82 Linux swap / Solaris

yancek 01-15-2009 09:23 AM

MBR is the master boot record. The Grub bootloader consists of several files. The stage1 file is in the master boot record and will point to the other files of the bootloader. Boot to the Ubuntu you have on the INTERNAL drive, open a terminal and enter the following commands, hit ENTER key after each line:

sudo grub
root (hd0,0)
setup (hd0)
quit

The setup line will put stage1 in the mbr and the root line will have it pointing to the first partition on the first disk, sda1.

Vanostaajen 01-15-2009 11:29 AM

WOW, amazing!
It worked :D

How do you know all this?

Vanostaajen 01-15-2009 12:50 PM

Ok, a new problem has arrived: now I can't boot the ubuntu from my external drive anymore. Is there a way around this?

I'd like to be able to choose which ubuntu I boot when I start my pc with my external hard drive plugged in.

yancek 01-15-2009 02:33 PM

Boot the Ubuntu on the internal drive. Open a terminal and type:

sudo gedit /boot/grub/menu.lst

Don't use Ubuntu but I think that command should get you to the menu.lst file with the gedit text editor. Once there, you need to get the entry from the external Ubuntu menu.lst file and put it in the internal Ubuntu menu.lst file. If you can't see the external Ubuntu when you are in the internal do the following:

sudo mkdir /mnt/sdb5
sudo mount -t ext3 /dev/sdb5 /mnt/sdb5
cat /mnt/sdb5/boot/grub/menu.lst

You should then see the external menu.lst file and have the entry to copy.

Vanostaajen 01-15-2009 04:11 PM

I'm asking this to be sure:

I have this:

Code:

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default                0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout                10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title                Windows 95/98/NT/2000
# root                (hd0,0)
# makeactive
# chainloader        +1
#
# title                Linux
# root                (hd0,1)
# kernel        /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=21592602-9305-4948-b7e5-19c36bbc5ae0

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title                Ubuntu 8.10, kernel 2.6.27-9-generic
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/vmlinuz-2.6.27-9-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro quiet splash
initrd                /boot/initrd.img-2.6.27-9-generic
quiet

title                Ubuntu 8.10, kernel 2.6.27-9-generic (recovery mode)
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/vmlinuz-2.6.27-9-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro  single
initrd                /boot/initrd.img-2.6.27-9-generic

title                Ubuntu 8.10, kernel 2.6.27-7-generic
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/vmlinuz-2.6.27-7-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro quiet splash
initrd                /boot/initrd.img-2.6.27-7-generic
quiet

title                Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/vmlinuz-2.6.27-7-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro  single
initrd                /boot/initrd.img-2.6.27-7-generic

title                Ubuntu 8.10, memtest86+
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title                Other operating systems:
root


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title                Ubuntu 8.10, kernel 2.6.27-9-generic (on /dev/sda1)
root                (hd0,0)
kernel                /boot/vmlinuz-2.6.27-9-generic root=UUID=b43b2556-6f17-4507-a19a-d9d85b1cf6fa ro quiet splash
initrd                /boot/initrd.img-2.6.27-9-generic
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title                Ubuntu 8.10, kernel 2.6.27-9-generic (recovery mode) (on /dev/sda1)
root                (hd0,0)
kernel                /boot/vmlinuz-2.6.27-9-generic root=UUID=b43b2556-6f17-4507-a19a-d9d85b1cf6fa ro single
initrd                /boot/initrd.img-2.6.27-9-generic
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title                Ubuntu 8.10, kernel 2.6.27-7-generic (on /dev/sda1)
root                (hd0,0)
kernel                /boot/vmlinuz-2.6.27-7-generic root=UUID=b43b2556-6f17-4507-a19a-d9d85b1cf6fa ro quiet splash
initrd                /boot/initrd.img-2.6.27-7-generic
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title                Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode) (on /dev/sda1)
root                (hd0,0)
kernel                /boot/vmlinuz-2.6.27-7-generic root=UUID=b43b2556-6f17-4507-a19a-d9d85b1cf6fa ro single
initrd                /boot/initrd.img-2.6.27-7-generic
savedefault
boot


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda1.
title                Ubuntu 8.10, memtest86+ (on /dev/sda1)
root                (hd0,0)
kernel                /boot/memtest86+.bin 
savedefault
boot


And I copy/paste this in the gedit file?
no matter where?

I'm sorry to have to ask all these questions but I'm really at the beginnig of my linux discovery (3weeks)

Thanks for the answers!

syg00 01-15-2009 04:53 PM

That looks like the menu.lst from the internal disk, not the external.

Personally I don't like adding to the menu.lst like that because as (kernel) updates come out for your external system (they will, automatically), you'll not see them because it won't update your boot selection.

A couple more questions before I offer another option - how do you want to use the external ?. Only boot it from this machine, or be able to take it to another machine and boot it there also ?.
Is the external (directly) bootable from the BIOS ?

jailbait 01-15-2009 05:20 PM

The following section of code is a title section from your internal drive /boot/grub/menu.lst

Code:



title                Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
uuid                21592602-9305-4948-b7e5-19c36bbc5ae0
kernel                /boot/vmlinuz-2.6.27-7-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro  single
initrd                /boot/initrd.img-2.6.27-7-generic

There are similar title sections in your external drive /boot/grub/menu.lst. Find the title section in your external drive /boot/grub/menu.lst which corresponds to booting into Ubuntu on your external drive. Then copy that title section to be the last title section in your internal drive /boot/grub/menu.lst.

It will then show up on your boot screen list as the last entry on the list. I also recommend that you change the actual title to something like:

title Ubuntu 8.10 on external drive

--------------------
Steve Stites

yancek 01-15-2009 09:06 PM

If your internal hardrive is 160GB, sda, (hd0)
If your external hardrive is 500GB, sdb, (hd1)
If you followed the instructions in my last post, your last post has the menu.lst from the external hardrive. I would suggest that you copy the entry below into your /boot/grub/menu.lst file on the internal drive. Gedit is not a file, it a text editor like notepad/wordpad in windows.

Quote:

title Ubuntu 8.10, kernel 2.6.27-9-generic
uuid 21592602-9305-4948-b7e5-19c36bbc5ae0
kernel /boot/vmlinuz-2.6.27-9-generic root=UUID=21592602-9305-4948-b7e5-19c36bbc5ae0 ro quiet splash
initrd /boot/initrd.img-2.6.27-9-generic
quiet

Vanostaajen 01-16-2009 04:56 PM

Oh damn,

who should I believe?

which solution is the best?

extra info: yes I want to be able to boot my external ubuntu on other pc's. And yes I can boot from bios directly.

@Yancek: where exactly do I paste this. and do you really mean quiet? or maybe quit?


All times are GMT -5. The time now is 08:47 AM.