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? |
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. |
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. |
Open a terminal, and post the output of this "sudo fdisk -l".
|
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 |
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. |
WOW, amazing!
It worked :D How do you know all this? |
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. |
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. |
I'm asking this to be sure:
I have this: Code:
# menu.lst - See: grub(8), info grub, update-grub(8) 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! |
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:
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 |
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:
|
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 12:55 AM. |