Livedvd-makingoff

From VNUML-WIKI
Revision as of 03:22, 11 February 2007 by Admin (talk | contribs) (New page: == VNUML Live DVD making-off == === Creation using Ubuntu Customization Kit (UCK) === http://uck.sourceforge.net UCK is a tool that helps you customizing official Ubuntu Live CDs. ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

VNUML Live DVD making-off

Creation using Ubuntu Customization Kit (UCK)

[UCK] is a tool that helps you customizing official Ubuntu Live CDs.

Download (http://sourceforge.net/project/showfiles.php?group_id=169959) and install UCK from debian package:

 dpkg -i uck_1.3_all.deb

Create a directory to hold all the vnumllive stuff:

 mkdir vnumllive
 cd vnumllive
 wget ... ubuntu-6.06.1-desktop-i386.iso
 mkdir live
 cd live

Create a directory named vnuml and copy the kernel and rootfilesystem:

 mkdir vnuml
 cd vnuml
 wget ...root_fs_tutorial...
 wget ...linux-...

Copy also the directories with the examples and other information needed to be copied to the live dvd:

# ls vnuml
bookmarks.html             known_hosts
doc/                       linux-2.6.16.27-bs2-xt-1m
examples/                  root_fs_tutorial-0.4.1
examples2/                 ssh_host_rsa_key.pub
init-vnuml                 usr-share-doc-vnuml/


Create a file vnumllive/live/customize with the following content:

#!/bin/bash

# VARIABLES
ROOTFS='root_fs_tutorial-0.4.1'
KERNEL='linux-2.6.16.27-bs2-xt-1m'

function prepare_install()
{
        apt-get update
        apt-get -y upgrade
}

function install_packages()
{
        apt-get install --assume-yes --force-yes "$@"
}

function remove_packages()
{
        apt-get --purge remove --assume-yes --force-yes "$@"
}

# update apt sources.list
echo "deb http://jungla.dit.upm.es/~vnuml/debian binary/"   >> /etc/apt/sources.
list
echo "deb http://archive.ubuntu.com/ubuntu dapper universe" >> /etc/apt/sources.
list
echo "deb-src http://archive.ubuntu.com/ubuntu dapper universe" >> /etc/apt/sour
ces.list

prepare_install

# Create groups
/usr/sbin/addgroup admin
/usr/sbin/addgroup ubuntu

# Create user ubuntu
/usr/sbin/useradd --home /home/ubuntu -m -g adm -G dialout,cdrom,floppy,audio,di
p,video,plugdev,lpadmin,scanner,admin,ubuntu -p `perl -le "print crypt ('ubuntu'
,'(A..z)[rand 25].(A..z)[rand ');"` -s /bin/bash ubuntu

# Add privileges to admin group
echo "# Members of the admin group may gain root privileges" >> /etc/sudoers
echo "%admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# Install vnuml
install_packages vnuml

# Change VNUML timeout to 120 secs
cp /usr/bin/vnumlparser.pl /tmp
cat /tmp/vnumlparser.pl | sed -e 's/my $boot_timeout = 30;/my $boot_timeout = 12
0;/' | sed -e 's/getpwnam("vnuml")/getpwnam("ubuntu")/' | sed -e '/Ferm/d'  > /u
sr/bin/vnumlparser.pl
rm -f /tmp/vnumlparser.pl

# Copy root_fs and kernel
cp /tmp/customize-dir/vnuml/$ROOTFS /usr/share/vnuml/filesystems
cp /tmp/customize-dir/vnuml/$KERNEL /usr/share/vnuml/kernels
ln -s /usr/share/vnuml/filesystems/$ROOTFS /usr/share/vnuml/filesystems/root_fs_
tutorial
ln -s /usr/share/vnuml/kernels/$KERNEL /usr/share/vnuml/kernels/linux

# Add vnuml-init script to startup
cp /tmp/customize-dir/vnuml/init-vnuml /etc/init.d
update-rc.d init-vnuml defaults 12    # 12 is to start it before gdm...

# Copy aditional examples and docs
cp -r /tmp/customize-dir/vnuml/examples/* /usr/share/vnuml/examples
cp -r /tmp/customize-dir/vnuml/doc /usr/share/vnuml

# Copy ssh_host_rsa_key.pub temporarily to /tmp file
mkdir -p /usr/share/vnuml/aux
cp /tmp/customize-dir/vnuml/ssh_host_rsa_key.pub /usr/share/vnuml/aux
cp /tmp/customize-dir/vnuml/known_hosts /usr/share/vnuml/aux

# Copy firefox bookmarks file
cp /tmp/customize-dir/vnuml/bookmarks.html /etc/firefox/profile
 
# Copy documentation withouth author's names
cp -rf /tmp/customize-dir/vnuml/usr-share-doc-vnuml/* /usr/share/doc/vnuml

Give it execution permissions:

 chmod +x customize 

Create a file vnumllive/live/iso_description with the following content:

VNUML Live DVD v2

Execute the following command:

 remaster-live-cd ubuntu-6.06.1-desktop-i386.iso live

If everything goes well, the dvd iso file and its md5 are stored in /root/tmp/remaster-new-files. Just rename and copy them:

mv /root/tmp/remaster-new-files/livecd.iso vnuml-live-2.0.iso
mv /root/tmp/remaster-new-files/livecd.iso.md5 vnuml-live-2.0.iso.md5


Note: Delete /root/tmp before generating the dvd in case of problems.

OLD

Based on [LiveCDCustomization/6.06]



 sudo su
 apt-get install squashfs-tools mkisofs qemu
 modprobe squashfs


 mkdir live
 mv ubuntu-6.06.1-desktop-i386.iso live
 cd live
 mkdir mnt
 mount -o loop ubuntu-6.06.1-desktop-i386.iso mnt
 mkdir extract-cd
 rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
 mkdir squashfs
 mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
 mkdir edit
 cp -a squashfs/* edit/
 cp /etc/resolv.conf edit/etc/
 cp /etc/hosts edit/etc/
 chroot edit
 mount -t proc none /proc
 mount -t sysfs none /sys
 export HOME=/root
 export LC_ALL=C


.....

Add VNUML package source:

 > vi /etc/apt/sources.list
 # Uncomment this lines
 deb http://archive.ubuntu.com/ubuntu dapper universe
 deb-src http://archive.ubuntu.com/ubuntu dapper universe
 
 # Add this new line
 deb http://jungla.dit.upm.es/~vnuml/debian binary/

Update and upgrade:

 > apt-get update
 > apt-get upgrade

Install VNUML:

 > apt-get install vnuml

Copy VNUML kernel and rootfilesystem and create soft links:

 > cd /usr/share/vnuml/filesystems
 > wget ......./root_fs_tutorial-XXXX
 > ln -s root_fs_tutorial-XXXX root_fs_tutorial
 > cd ../kernels
 > wget ......./linux-XXXX
 > ln -s linux-XXXX linux 

Adduser:

 > adduser --system ubuntu
 > passwd ubuntu     # set it to "ubuntu"

retocar a mano /etc/passwd para cambiar el /bin/false a /bin/bash del usuario ubuntu


Notes on ubuntu live CD:

  • Has autologin activated to user ubuntu (configured in /etc/gdm.conf; entries "AutomaticLogin" and "TimedLogin*)
  • ubuntu user
    • has no password configured
    • /etc/passwd entry = ubuntu:x:999:999:Ubuntu Live CD user,,,:/home/ubuntu:/bin/bash