ubuntu installed on external hard drive, can't startup without external hard drive.
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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.
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
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.
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:
# 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)
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 ?
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:
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.