Ubuntu – What commands are needed to install Ubuntu Core

command linesoftware installationsystem-installationubuntu-core

Ubuntu Core's wiki page page contains the instructions to install Ubuntu Core on a target media:

  1. Uncompress (do not unpack) rootfs
  2. Format target media: at least one partition should be ext2, ext3, or ext4
  3. Unpack Ubuntu Core to ext{2,3,4} partition
  4. Install boot-loader
  5. Install Linux
  6. If the Linux kernel requires modules, add these to /lib/modules/$(uname -r) in the ext{2,3,4} file system
  7. Boot the target device
  8. Install any additional required software using apt-get

But what are the specific commands to do the above? The things I'm specifically confused about are:

  1. Uncompressing and unpacking, what's the difference and how do I do them?
  2. What package should I install if I want the generic kernel provided in regular Ubuntu installation?
  3. I won't be installing any drivers or anything related to kernel other than what's provided in the repos, do I need to worry about manually adding kernel modules?

PS I would like to request that all the commands used in the installation process be mentioned in the answer, for the benefit of ones who're completely unfamiliar and myself, should I ever forget.

Best Answer

All of those commands will require admin-rights. Easiest is to do sudo su to get a root console.

  1. Archives like your core .tar.gz (this is oneiric, precise beta is here) are combined in one file (packed) and reduced in size (compressed).

    gzip -d ubuntu-core-11.10-core-i386.tar.gz

    will uncompress the core to ubuntu-core-11.10-core-i386.tar (no .gz anymore; one big file).

  2. To partition the device for core it's easiest to use a graphical tool like gparted. When that's not available. See here. In a nutshell - assuming you want to partition the device /dev/sda:

    fdisk /dev/sda then press n p 1 <Return> <Return> a 1 w (for details please see link).

    This creates /dev/sda1 partition.

    mkfs.ext4 /dev/sda1

    This creates an ext4 filesystem on the new partition. You can of course use mkfs.ext3, mkfs.ext2 as well.

    Mount it: mount /dev/sda1 /mnt and go there cd /mnt

  3. tar -xf /path/to/where/you/put/ubuntu-core-11.10-core-i386.tar

    will unpack the core (many files).

  4. grub-install --root-directory=/mnt /dev/sda

    will install the bootloader (this is of course just one of many options).

  5. cp /etc/resolv.conf /mnt/etc/resolv.conf

    will allow network access after chroot-ing (in step 7) by copying the DNS resolver configuration

  6. for f in /sys /proc /dev ; do mount --rbind $f /mnt/$f ; done ; chroot /mnt

    will go to a chroot, see Is there an easier way to chroot than bind-mounting? for details about mount rbind

  7. apt-get update && apt-get install linux-{headers,image}-generic

    will install kernel ("linux")

    Note: it's possible that apt-get update will not work because no network is present.

  8. reboot and you're good to go.

I haven't got a machine to test this so the answer probably won't be complete. I will change my answer should you stumble across problems.

Related Question