If you already have Ubuntu installed, it is easy to upgrade using the Update Manager. However, this is not always safe, and it will overwrite your old system.

If upgrading is not an option (you are running a different Linux distro than Ubuntu, or your system is several versions old), or you wish to keep your old system, you should use the live Ubuntu Desktop installer or Debootstrap.

The Ubuntu Desktop installer is usually run on a DVD or a bootable USB stick. However, if you already run Linux, using a DVD or USB is not necessary. You may run the Ubuntu Desktop installer directly from your hard drive, or use Debootstrap.

Note: These are advanced installation techniques and are not recommended for new users. If you are uncomfortable with the command line terminal, you should create a live Ubuntu Desktop DVD or USB.

Running the Ubuntu Desktop installer from your hard drive requires an extra partition. Debootstrap installs Ubuntu directly, without using the guiding Ubuntu Desktop installer. Debootstrap does not require a DVD, USB, Ubuntu Desktop ISO, or an extra installer partition.

Live Ubuntu Desktop from Hard Drive

The Ubuntu Desktop installer is distributed as a .iso file - get it here. If you don't want to download an ISO, use Debootstrap. If your ISO has "alternate" in its name, you are using an alternate installation image and should see the next section.

Note: You will need blank hard drive space to create new partitions. If your current system partition(s) take up all available space, you must create a live DVD or live USB.

Step 1, Partition

Create a new ext4 partition for the installer, using gparted. The partition must be a little larger than the install image (for example, if du -h disk-image.iso returns 1.1GB, make the partition 1.2GB). Remember the name of the new partition (for example, /dev/sda3).

Step 2, Copy

Copy Ubuntu Desktop installer contents over to the new partition using the commands

 mkdir /tmp/install_cd
 mkdir /tmp/installer

 sudo mount disk-image.iso -o loop /tmp/install_cd
 sudo mount /dev/sda3 /tmp/installer

 sudo rsync -a /tmp/install_cd/. /tmp/installer

 sudo umount /tmp/install_cd
 sudo umount /tmp/installer

Replace disk-image.iso with the path to your disk image and /dev/sda3 with the new partition.

Step 3, Grub

Configure grub2. Edit the file /etc/grub.d/40_custom and add the lines

menuentry "Ubuntu Ver??? Installer" {
        set root=(hd0,3)
        linux /casper/vmlinuz.efi boot=casper ignore_uuid
        initrd /casper/initrd.lz
}

Replace Ver??? with the version number and (hd0,3) with the new partition (for example, /dev/sda3 becomes (hd0,3) because Grub 2 counts drives from 0, but partitions from 1).

Then run update-grub to rebuild the grub configuration.

Step 4, Reboot

Reboot, and choose "installer" from the grub boot menu, and continue as if you were installing from CD. Be sure to set the root partition to another new partition, different from the installer; do not overwrite the whole drive.

Step 5, Grub (again)

The installer may not add an entry in Grub for the new version of Ubuntu. You will have to do this manually.

Older Versions of Ubuntu

Older verions of Ubuntu may use /casper/vmlinuz instead of /casper/vmlinuz.efi

For even older versions of Ubuntu with grub1, change the grub configuration file (typically /etc/grub.conf or /boot/grub/menu.lst) to boot from the new partition by adding the lines

title           installer
root            (hd0,0)
kernel          /casper/vmlinuz boot=casper root=/dev/ram ramdisk_size=1048576 rw
initrd          /casper/initrd.gz

The first line after the title tells grub which partition contains the installer. hd0 stands for "first hard disk," and the 0 following it standards for first partition. You will need to change this if your installer partition is different from /dev/sda1. sdaN becomes (hd0, N-1), sdbN becomes (hd1,N-1) and so on. As you can see, grub starts counting from 0, which can be confusing.

If you are trying to use Hard Disk installation with Ubuntu 9.10 chances are initrd.gz is renamed as initrd.lz now. So rename accordingly in menu.lst.

Note (old, for grub1) You do not need to modify the grub config of the existing linux system, if you feel uncomfortable modifying an otherwise fine running system. Instead, you may create a new menu.lst file on the new partition, preferably in directory /boot/grub/. Then, reboot, and when the (old) grub menu appears, press 'c' to get the grub command line. Then, type: configfile (hd0,1)/boot/grub/menu.lst to switch over to your new grub menu. Tip: use the tab-key halfway typing to have grub help you complete the command, or grub commands such as search or help.

Note: if you unpacked the livecd on the same disk where you want to install Ubuntu, you may run into LP#288675, and be unable to select a partition. The workaround by Nick Spencer ("sudo umount -l -r -f /dev/sda3 or sudo umount -l -r -f /cdrom (where sda3 was the device mounted as cdrom)") is a rather terrible hack, but usable as a workaround.

Note2: Instead of using 'workaround', an alternative is to modify the file /etc/mtab by erasing the line that specifies the partition where the cdrom is mounted. This way the kernel thinks that the /cdrom is not mounted and will not show the advice when installing ubuntu. I think this procedure is less dangerous than the one in the previous note.

Note3: Instead of the above 'workarounds', you may simply use the boot option live-media=/dev/sdb1 or LIVEMEDIA=/dev/sdb1, referring to the USB device holding the ISO. This would be the "bootable usb", even if your pc has a "buggy BIOS" and cannot boot from USB. The running kernel can access the USB device. This boot option is documented in http://manpages.ubuntu.com/manpages/karmic/man7/casper7.html, but unfortunately not supported by Ubuntu 11.10. Use the patch I filed as bug fix in https://bugs.launchpad.net/ubuntu/+source/casper/+bug/423616 while this is not yet put back in the ISO. Warning: this implies building a new initrd.gz which is not very trivial, although this forum has a good manual.

Debootstrap

You can install Ubuntu directly from Linux using debootstrap. Debootstrap installs some essential packages in a directory for use with chroot. Note that the essential packages does not in itself make the system bootable. It just installs what you need to chroot to that directory and use apt-get to install other packages which make Ubuntu usable.

Step 1. First check that you have debootstrap installed.

sudo apt-get install debootstrap

(NOTE: if you want to install a newer release than your current system, you normally need to install the backported debootstrap version, see: UbuntuBackports)

Step 2. Partition device and make a filesystem.

We will assume /dev/sda is the storage device for your fresh install.

Remove former partitions and create the new one.

sudo fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00031196

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2550    20482843+  83  Linux
/dev/sda2            2551       30394   223656930   8e  Linux LVM

Command (m for help): d
Partition number (1-4): 1

Command (m for help): d
Selected partition 2

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30394, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-30394, default 30394): 
Using default value 30394

Command (m for help): p

Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00031196

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       30394   244139773+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Make the filesystem

sudo mkfs.ext4 /dev/sda1

Step 3. Mount that new partition.

sudo mkdir /mnt/installer
sudo mount /dev/sda1 /mnt/installer

Step 4. Download and install base system packages.

sudo debootstrap lucid /mnt/installer

Step 5. Copy files to the new install to keep your repositories

sudo cp /etc/apt/sources.list /mnt/installer/etc/apt/

Step 6. Chroot to your new install.

sudo mount --bind /dev /mnt/installer/dev
sudo mount --bind /dev/pts /mnt/installer/dev/pts
sudo mount -t proc proc /mnt/installer/proc
sudo mount -t sysfs sys /mnt/installer/sys
sudo chroot /mnt/installer

Step 7. Locale and language settings To make dpkg run without warning you need to set this settings first

cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
echo 'LANG="pt_BR.UTF-8' >  /etc/default/locale
echo 'LANG="pt_BR:pt:us' >> /etc/default/locale
echo 'America/Sao_Paulo' > /etc/timezone
locale-gen pt_BR.UTF-8
dpkg-reconfigure -f non-interactive tzdata
## All this inside chroot!

Step 8. Upgrade the new install. Install your local "language-pack-en-base".

apt-get update
apt-get install language-pack-en-base
apt-get upgrade

If you are using Software RAID and/or LVM, you should install these packages before installing a kernel:

apt-get install mdadm lvm2

Step 9. Install Grub and Linux Kernel.

apt-get install grub-pc linux-image

Step 10. Add user and/or set root password.

To add a user and set a password for that user.

adduser <username>

You may also want to add your user to the sudo group so that user can run programs as root.

gpasswd -a <username> sudo

To set a root password:

(NOTE: You must at least set a root password if you aren't adding a user)

passwd

Step 11. Create fstab. A simple example of fstab is

echo "/dev/sda1 / ext4  errors=remount-ro 0 1" >> /etc/fstab
## Inside chroot!

It should now be safe to reboot; you may want the next few things.

Step 12. If you want to access it with ssh after reboot.

Use vi or install nano to edit /etc/hostname.

Remove any text in this file and add the hostname you would like.

vi /etc/hostname

edit /etc/network/interfaces

vi /etc/network/interfaces

Add these lines to /etc/network/interfaces. This will start eth0 at boot and request an IPv4 address with dhclient.

auto eth0
iface eth0 inet dhcp

Next you need to install ssh

apt-get install openssh-server

Your computer should be safe to reboot now. If you want the Ubuntu Gnome desktop, continue with Step 13.

Step 14. Install ubuntu-desktop.

apt-get install ubuntu-desktop ubuntu-standard

ToDo:

mkswap /dev/sdbXy
? edit /etc/hosts
? edit default language
? edit /etc/environment
? edit autologin
? edit /etc/lightdm/lightdm.conf

Step 15. Reboot and keep those fingers crossed.

Alternate CD

As of December 29th 2007, the instructions above do not apply to the alternate CD provided for Ubuntu 7.10 (Gutsy Gibbon). Significant changes are required. Procedure 1 below has been used successfully with Gutsy (Ubuntu 7.10) and Procedure 2 with Hardy (Ubuntu 8.04).

Before going any further please note that the alternate CD contains documentation which can help with fixing problems or adapting solutions to your own situation. The documentation is located in doc/install/manual/ on the alternate CD. Please refer to that documentation as needed.

Note that Procedure 2 is potentially less disruptive because it does not call for a new partition.

For a simpler installation method which generally does not require re-partitioning, and downloads the packages at install time rather than requiring an ISO, see Installation/NetbootInstallFromInternet.

Procedure 1

I used the following procedure for Gutsy. It can also be used for Hardy.

Step 1. Use gparted to create a new primary partition and format it to ext3. You need slightly more than 700MB of free space on it. 750MB should be sufficient. Let's say the name of the partition is /dev/sda1. If your new ubuntu install is going to coexist with your old system, you might find it convenient to create space for your new system as well at this point using gparted.

Step 2. Copy your alternate ISO to the root of the partition you created in step 1. You need to copy the ISO itself rather than the contents of the ISO.

Step 3. Grab the initrd.gz and vmlinuz files found in the following sub-directory of a Ubuntu mirror:

dists/gutsy/main/installer-i386/current/images/hd-media/

For example in the UK the files may be found at http://gb.archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/hd-media/

Put these files in your newly created partition. They can be in the root of the partition or in a sub-directory.

Step 4. Edit your grub configuration file (typically /etc/grub.conf or /boot/grub/menu.lst) to boot from the new partition by adding the lines:

title           installer
root            (hd0,0)
kernel          /install/vmlinuz root=/dev/ram ramdisk_size=1048576 rw
initrd          /install/initrd.gz

If you use LILO, see the official documentation on the alternate CD for how to configure LILO. Or you can adapt the lines above for LILO if you know Grub and LILO well.

The first line after the title tells grub which partition contains the installer. hd0 stands for "first hard disk," and the 0 following it standards for first partition. You will need to change this if your installer partition is different from /dev/sda1. sdaN becomes (hd0, N-1), sdbN becomes (hd1,N-1) and so on. As you can see, grub starts counting from 0, which can be confusing. The paths for the kernel and the initrd were set to start with /install/ in my setup but you could put those files in the root of the install partition and have them be /vmlinuz and /initrd.gz if you so wish.

As specified in the above, the installer will run without a preseed file. The preseed tells the installer what kind of system you are trying to install and it automatically selects some options for you during installation. For instance, using the ubuntu.seed file tells the installer that you want to install a full "desktop" system, with Gnome and everything. If you do not select a preseed file, it is unclear what the installer thinks. In my (LouisDominiqueDubeau) experience, it installs some sort of CLI or server form of Ubuntu. This is not disastrous but it may not be what you want. In Hardy in particular, running the installer without a seed results in LILO installed as the boot loader rather than Grub. Ugly... So it is better to select a seed. Adding the parameter file=/cdrom/preseed/ubuntu.seed to the kernel line above should take care of the problem. If installing Kubuntu, select kubuntu.seed instead. Adapt to other situations as needed.

Step 5. Reboot, and choose "installer" from the grub boot menu, and continue as normal.

Procedure 2

In this procedure you do not create a new partition to hold the installer. This procedure was used for Hardy. It may be adaptable for Gutsy.

Step 1. Copy your alternate ISO to the root of any partition that the installer can mount. You need to copy the ISO itself rather than the contents of the ISO. The important part here is that you must find a partition that the installer can mount, as it will search during the install procedure. If you use the traditional partitioning system used by DOS since ages immemorial, then any filesystem supported by Ubuntu should work. In particular ext2/ext3/ntfs/fat/vfat should all work. If you use LVM, things are trickier. As of April 26th 2008, the installer is unable to find an ISO stored on a partition managed in LVM. The installer can install Ubuntu in an LVM partition but in the stage at which it looks for the ISO it has not yet loaded the LVM modules so it cannot find the ISO if it is on an LVM partition. An enterprising person should be able to work around that problem but by default the installer won't find the ISO if it is on an LVM partition. If you have Windows installed, then the Windows partition, which normally is not managed by LVM (because I don't think Windows supports LVM), can hold the ISO.

Step 2. Grab the initrd.gz and vmlinuz files found in the following subdirectory of a Ubuntu mirror:

dists/hardy/main/installer-i386/current/images/hd-media/

For example in the UK the files may be found at http://gb.archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/

You will want to put these files in your normal /boot/ directory. It may be a good idea to create a subdirectory like newinstall, hardy-install, or something similar.

Step 3. Read the information at step 4 of procedure 1 above and then come back here: the information there will tell you what hd0,0 means and will inform you about seeds, etc. Edit your grub configuration file (typically /etc/grub.conf or /boot/grub/menu.lst) to boot from the new partition by adding the lines:

title installer
root (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz

If you want a preseed file, change the kernel line to:

kernel (hd0,0)/newinstall/vmlinuz file=/cdrom/preseed/ubuntu.seed

Note that some users report working installs with grub without seeds and/or seeds not working with this method. Adapt as needed to your situation.

Step 4. Reboot, and choose "installer" from the grub boot menu, and continue the installation as normal.

Alternate CD Alternate Method

I have a machine without a CD-ROM drive but with a network connection, and I struggled with these instructions for many days. Finally, I stumbled upon some straightforward solutions which appear to work for me.

1. Obtain Alternate CD. (This method may work for other CDs, I have not tried)

2. Mount at a temporary location, as described previously.

3. Copy vmlinuz and initrd.gz from mounted installation media to normal location on current linux root (the one to be replaced)

4. Unmount CDROM image.

5. Copy image as is to selected partition, i.e. cat "image" > /dev/hdXX

6. Configure grub or LILO as above

7. Reboot.

8. When choosing CD-ROM drive, choose manually, do not install a driver, for the device enter the partition to which you copied the image.

9. Continue installation as normal.

So far so good! I'll let you know if it breaks later :P

Troubleshooting

  • If you are having issues installing grub, and dpkg-reconfigure grub-pc does not give you a chance to select the device you want to install grub to, make sure you have mounted /dev in your chroot. Review step 6.


CategoryInstallation

Installation/FromLinux (last edited 2020-06-23 22:49:53 by jamiesonc)