Opened 11 years ago

Closed 11 years ago

#411 closed task (fixed)

Ubuntu install ISO

Reported by: kevin Owned by: skylar
Priority: critical Milestone:
Component: Version:
Keywords: Cc: hunteke@…
Blocked By: Blocking:
Estimated Hours: 30 Total Hours: 31.00

Description (last modified by kevin)

  • Setup ISO that can automatically install Ubuntu on Intel's SC laptops
  • Provide root keys for administration at SC
  • Install packages using postinstall scripts
    • openssh-server
    • rsync
    • CLI Torrent client (rtorrent? bittornado?)

Attachments (5)

late.sh (240 bytes) - added by skylar 11 years ago.
sc.seed (15.5 KB) - added by skylar 11 years ago.
text.cfg (881 bytes) - added by skylar 11 years ago.
make_custom_cd_scripts.tgz (7.0 KB) - added by kevin 11 years ago.
Round 2 of LiveCD generation scripts.
make_custom_cd.tgz (19.5 KB) - added by skylar 11 years ago.

Download all attachments as: .zip

Change History (42)

comment:1 Changed 11 years ago by skylar

  • Status changed from new to assigned

due Oct 27

comment:2 Changed 11 years ago by skylar

Need debconf-utils for debconf-get-selections

comment:4 Changed 11 years ago by skylar

using the stock ubuntu preseed file

https://help.ubuntu.com/9.04/installation-guide/example-preseed.txt

Need to add this to text.cfg append line for language selection:

locale=en_US console-setup/layoutcode=us

comment:5 Changed 11 years ago by skylar

commenting out this line preseed file

d-i console-setup/ask_detect boolean false

comment:6 Changed 11 years ago by skylar

The sample 9.04 preseend file doesn't have all the options the current jaunty installer uses. The docs also reference "debconf-get-selections --installer", but the ubuntu installer deletes /var/log/installer/cdbeconf. Maybe I can rescue it part way through the install. I'll try that tomorrow.

comment:7 Changed 11 years ago by skylar

ubuntu 9.04 doesn't support preseeding for the desktop release; trying 8.04

comment:8 Changed 11 years ago by kevin

  • Description modified (diff)

comment:9 Changed 11 years ago by kevin

  • Cc kevin added

comment:10 Changed 11 years ago by skylar

language and keyboard settings need to go in isolinux.cfg because they come before the CD-ROM is mounted and the preseed file becomes available

comment:11 Changed 11 years ago by skylar

Non-automated bits right now:

# Partitioning # Prompt for weak password # archive mirror is unavailable (using debian when we should be using ubuntu?)

comment:12 Changed 11 years ago by skylar

set ubuntu mirror to osuosl

comment:13 Changed 11 years ago by skylar

# Automatic updates # Unattended upgrades/language support

comment:14 Changed 11 years ago by skylar

LVM confirmation still happens. I think I've suppressed all the weak password prompts.

comment:15 Changed 11 years ago by skylar

server build doesn't include GNOME by default, and building it up might take a lot of work

there's some documentation that says ubiquity DOES use preseeding, so I'm going to pursue that angle for a bit

comment:16 Changed 11 years ago by skylar

launching ubiquity with "-d" apparently will get it to spit out the options that need to be set

comment:17 Changed 11 years ago by skylar

started testing but then edu-grid NFS went all wonky

comment:18 Changed 11 years ago by skylar

it's working now, moving onto package installation and root keys

comment:19 Changed 11 years ago by skylar

spent some time debugging a networking problem that I couldn't fix, then recreated my environment in Seattle and continued working. We'll need a late_command to provide those packages and ssh keys.

comment:20 Changed 11 years ago by skylar

Instructions to make a CD:

  1. Download the Ubuntu 9.04 Desktop ISO
  1. Make a mount directory: mkdir /mnt/loop
  1. Mount it over the loop back interface: mount -o loop,ro ubuntu-9.04-desktop.iso /mnt/loop
  1. cd /mnt/loop
  1. Make a build directory: mkdir /tmp/ubuntu
  1. Copy the files in the loopback mount to the build directory: tar cf - . | (cd /tmp/ubuntu; tar xvf -)
  1. Make a directory for the initrd: mkdir /tmp/ubuntu_initrd
  1. cd /tmp/ubuntu_initrd
  1. Unpack the initrd: gzip -d -c /tmp/ubuntu/casper/initrd.gz | cpio -i
  1. Download sc.seed from the ticket to preseed.cfg.
  1. Change the root password and sc09 user password. Look for d-i passwd/root-password password, d-i passwd/root-password-again password, d-i passwd/user-password password, and d-i passwd/user-password-again password.
  1. Copy the preseed file into the ISO image: cp preseed.cfg /tmp/ubuntu/preseed/sc.seed
  1. Recreate the initrd: find .|cpio -o -H newc|gzip -c > /tmp/ubuntu/casper/initrd.gz
  1. cd /tmp/ubuntu
  1. Download text.cfg from the ticket to isolinux/text.cfg.
  1. mkdir sc09
  1. Download late.sh from the ticket to sc09/late.sh and set it executable.
  1. Make a passwordless ssh key by pushing enter at all the prompts: ssh-keygen -t dsa -f sc09/id_dsa
  1. Re-generate the ISO: genisoimage -pad -l -r -J -v -V 'Ubuntu-Server 9.04 i386 ' -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat -hide-rr-moved . > /tmp/sc_ubuntu.iso

Changed 11 years ago by skylar

Changed 11 years ago by skylar

Changed 11 years ago by skylar

comment:21 Changed 11 years ago by skylar

make sure only id_dsa.pub stays on laptop, id_dsa should be kept in a safe place

comment:22 Changed 11 years ago by skylar

got late_command working once, not working now

comment:23 Changed 11 years ago by kevin

I shouldn't have, but take a look at these scripts I just wrote. They make a bootable, customized CD. Having said that, I've removed a few too many packages just yet so the desktop isn't quite functional, but hey, here's the process. (Start by reading the README.)

It's not done yet, and I don't yet know how it compares to the preseed method, but I was motivated by ... something you said on the phone. Can't remember now what, though.

I'll have to blog on this later on.

comment:24 Changed 11 years ago by skylar

ubiquity/success_command might be what we want instead of late_command

comment:25 Changed 11 years ago by kevin

Some items for post-installation

  • VirtualBox - kernel module: just execute # /etc/init.d/vboxdrv setup
  • VirtualBox - group: To use VirtualBox, user must be in vboxusers group

comment:26 Changed 11 years ago by skylar

maybe I don't want only-ubiquity?

comment:27 Changed 11 years ago by skylar

typo (sting->string), post-install script now working, trying to get all the packages downloaded now

comment:28 Changed 11 years ago by skylar

  • Estimated Hours changed from 10 to 30

comment:29 Changed 11 years ago by skylar

setup proxy and trying to get mirror to work, separate post install script doesn't seem to be viable

comment:30 Changed 11 years ago by skylar

possibly some problems with dhclient hanging around, killing it and trying again

Changed 11 years ago by kevin

Round 2 of LiveCD generation scripts.

comment:31 Changed 11 years ago by kevin

Updated LiveCD generation scripts. Now includes

  • Slightly better documented (inline)
  • Asks an "Are you sure?" question before setting off
  • Added JUST_DEV variable, for speed. Unset when doing the real thing.
  • Updated /etc/apt/sources.list
  • VirtualBox install
  • Openssh-server install
  • New ssh key created every run
  • Slightly smaller ISO output due to maximizing buffer size available to mksquashfs

comment:32 Changed 11 years ago by kevin

  • Cc hunteke@… added; kevin removed

comment:33 Changed 11 years ago by skylar

Using this to try to setup PXE booting

https://help.ubuntu.com/community/PXEInstallMultiDistro

Looks like there's some kind of NFS mismatch though

comment:34 Changed 11 years ago by skylar

adding debugging statements to try to track this down

comment:35 Changed 11 years ago by skylar

typo'd IP, it's working now

comment:36 Changed 11 years ago by kevin

4.0 hours logged for kevin: Just more futzing with the image. Takes a lot longer actually doing a trial run.

Changed 11 years ago by skylar

comment:37 Changed 11 years ago by skylar

  • Resolution set to fixed
  • Status changed from assigned to closed

this is done

Note: See TracTickets for help on using tickets.