Differences between revisions 2 and 37 (spanning 35 versions)
Revision 2 as of 2010-06-18 11:25:16
Size: 78
Editor: fruity
Comment:
Revision 37 as of 2010-07-16 12:54:37
Size: 8805
Editor: asbesto
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Remaster your own live installer, live iso =
''works with ubuntu too...''
== Remaster your own live installer, live iso ==
''this came from'' [[https://help.ubuntu.com/community/LiveCDCustomization|Ubuntu Live CD Customization]]
------

=== Description ===

Fetch your favorite iso, in the following examples we will take puredyne-911-carrot_and_coriander iso to show that this procedures can apply to a lot of different isos/systems.

The basic procedure is simple:

 * mount the ISO image in loop mode;
 * copy the content of the image in a directory, except for the main squashfs filesystem (on ubuntu and debian: filesystem.squash; on dynebolic: dyne.sys);
 * unsquash the squashfs image file into another directory;
 * Add resolv.conf and hosts in /etc by hand or copying from your system;
 * mount the dev,proc and sys filesystems into the uncompressed directory;
 * do some minor stuff for having the system ready for your tweaks.

=== Requirements ===

You need the squashfs-tools.

{{{
apt-get install squashfs-tools
}}}

=== HOWTO ===

{{{

# we choose pd/ as our working directory, so...

mkdir pd
cd pd

sudo mount puredyne.iso /mnt -o loop
mkdir extract-cd
rsync --exclude=/live/filesystem.squashfs -a /mnt/ extract-cd
# for d:b: rsync --exclude=/dyne/dyne.sys -a /mnt extract-cd/

sudo unsquashfs /mnt/live/filesystem.squashfs
# for d:b: sudo unsquashfs /mnt/dyne/dyne.sys

sudo mv squashfs-root edit

# use resolv.conf and hosts from your system, or edit them by hand...
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/

# if you are into your pd/ directory with the system extracted as above,
# just cut'n paste from here to start working on the system.

sudo mount --bind /dev/ edit/dev
sudo chroot edit

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

# To avoid locale problems during installation of new packages, you need to export 2 system variables:

export HOME=/root
export LC_ALL=C

# You also need to do this as root (that's for some reasons connected with a couple of dbus bugs).
# If you are re-chrooting to a system you're working on, don't mind about warnings or errors.

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

#done!
}}}

That's all folks! ;)

=== Suggestions ===

When you want to remove packages remember to use purge
I investigated a bit the matter, not enough to know whats going on but enough to know is a good practice.

Once in the chroot start poking:

{{{

# refresh your list
apt-get update

# some must have
apt-get install htop modconf

# some multimedia
apt-get install cinelerra sox twolame mpeg2dec a52dec libsox-fmt-all a52dec darkice darksnow

}}}

=== rsync to carry the pack for working out of home ===

{{{
rsync --exclude=/edit/dev --exclude=/edit/proc --exclude=/edit/sys -auvz /home/youruser/wherever/src/pd/ /media/usbdisk/pd/
}}}

In this way you rsync your pd/ working directory on a same pd/ dir on your usb key, so you can work everywhere on your eeepc. ;)

=== Closing ===

{{{

aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
dpkg -l > packages.txt
umount /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
sudo mv edit/packages.txt extract-cd/live/


}}}

=== Creating the ISO ===

==== Regenerate the manifest ====

Into the pd dir:

{{{
# creiamo il file
sudo touch extract-cd/live/filesystem.manifest
sudo chmod a+w extract-cd/live/filesystem.manifest
#
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/live/filesystem.manifest
sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/live/d' extract-cd/live/filesystem.manifest-desktop

#
}}}

==== Compress the filesystem ====

{{{
# cancelliamo il vecchio squashfs eventualmente in mezzo alle palle
sudo rm extract-cd/live/filesystem.squashfs

# creiamo il nuovo squashfs. La pagina Debian live parla di una opzione -nolzma da mettere
# alla fine, che pero' NON ESISTE:
#
# https://help.ubuntu.com/community/LiveCDCustomization
#
# Note: The -nolzma option is only available from Hardy , and was removed in Karmic.
# Also, the squashfs has to be generated using a version of mksquashfs that is compatible
# with the kernel used on the CD you are customizing. For example, you cannot generate
# a jaunty squashfs on karmic, as the jaunty kernel is not able to mount a squashfs
# prepared using mksquashfs from karmic. O_o

sudo mksquashfs edit extract-cd/live/filesystem.squashfs

#
}}}

==== Set an image name in extract-cd/README.diskdefines ====

maybe is unuseful?

{{{

sudo joe extract-cd/README.diskdefines

}}}

(you can use "sudo vim extract-cd/README.diskdefines" if you have difficulties understanding joe. AHHAHAHAH)

==== MD5sum ====

Remove old md5sum.txt and calculate new md5 sums

{{{

cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

}}}

==== CREATE THE ISO IMAGE ====

{{{

sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../dyneIIIbeta.iso .

}}}

EJA, EJA, ALALA'!

=== Tasks to do ===

 * install all multilanguage documentation for programs and track they're directory if we can squash them or zip, inkscape,gimp,OOffice, some copies maybe from FOSS manuals?
 * remove unused themes
 * install some more open fonts
 * install some edubuntu software(find out which)
 * clean up desktop
 * boot and test the video software

{{{
<fruity> "aggiungere voce in syslinux menu per modo persistente"
<fruity> basta aprire syslinux.cfg o isolinux.cfg
<fruity> fare copia incolla della voce che hanno li gia
<fruity> editare il titolo e metterci "Persisten mode"
<fruity> e addare persistent a APPEND
<fruity> sai dove metti le opzioni del kernel
<fruity> tipo root= splash quiet
<fruity> va alla fine di quelle robe li
}}}

=== Done ===

 * Remove all useless documentation from /usr/share/doc
 * Installed Openoffice suite
 * Installed Scribus

 * English, Italian, Portoguese, French, Swahili and Afrikaans not installed: WE HAVE TO WAIT FOR LANGUAGES DEFINITION FROM THE COMMITTENT.
{{{
  openoffice.org-help-en-gb openoffice.org-help-en-us openoffice.org-help-fr openoffice.org-help-it openoffice.org-help-pt
  openoffice.org-l10n-af openoffice.org-l10n-common{a} openoffice.org-l10n-en-gb openoffice.org-l10n-en-za openoffice.org-l10n-fr
  openoffice.org-l10n-it openoffice.org-l10n-pt openoffice.org-l10n-sw
0 packages upgraded, 13 newly installed, 0 to remove and 35 not upgraded.
Need to get 67.7MB/68.0MB of archives. After unpacking 234MB will be used.
}}}


=== Appunti ===

==== Menu di xfce4 ====

{{{
asbesto@gemini:/home/asbesto/Desktop/src/pd/edit/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml$ ls
accessibility.xml xfce4-desktop.xml xfce4-power-manager.xml xfce4-settings-manager.xml xsettings.xml
keyboards.xml xfce4-keyboard-shortcuts.xml xfce4-session.xml xfwm4.xml
}}}

==== Sfondi desktop, icone, grafica ====

I backgrounds della pd stanno dentro '''/usr/share/xfce4/backdrops'''.

Per una questione di hierarchy sposterei gli sfondi che non sono default di xfce4 su una dir tipo '''/usr/local/share/xfce4/backgrounds''' sistemando opportunamente i file di config. Vedremo...

 * C'e' una icona pd dentro '''/etc/skel/.icons''', finisce dentro /home/lintian (viene creata la home al boot). SISTEMATA

 * La dir. '''/usr/share/dyne''' della db, contenente varie cose, e' stata messa dentro '''/usr/local/share/dyne''' della pd.

 * Splash screen: si trova in nella sezione extract-cd del kit di sviluppo, quindi fuori da edit/ : nel mio caso sta dentro '''/home/asbesto/Desktop/src/pd/extract-cd/isolinux''' e si chiama ovviamente splash.png, 640x480. SISTEMATO, VEDIAMO SE VA. CI SONO ANCHE ALTRI SFONDI DA PROVARE LI DENTRO.

===== DESKTOP BACKGROUND, ICONE etc. =====

 * Desktop background: lo si configura nella dir '''/edit/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xls/''' editando i file '''xfce4-desktop.xml''' e '''xfce4-session.xml'''. FATTO
 * C'e' una icona da sistemare qui: '''/etc/skel/.config/xfce4/panel/xfce4-menu-5.xml'''. FATTO

==== Varie ====

 * Sistemati gli help del boot, dentro '''/home/asbesto/Desktop/src/pd/extract-cd/isolinux", ci sono vari testi li' dentro. FATTI ma da verificare bene.

xxxxxxxxxxxxxxxxxxxxx

Remaster your own live installer, live iso

this came from Ubuntu Live CD Customization


Description

Fetch your favorite iso, in the following examples we will take puredyne-911-carrot_and_coriander iso to show that this procedures can apply to a lot of different isos/systems.

The basic procedure is simple:

  • mount the ISO image in loop mode;
  • copy the content of the image in a directory, except for the main squashfs filesystem (on ubuntu and debian: filesystem.squash; on dynebolic: dyne.sys);
  • unsquash the squashfs image file into another directory;
  • Add resolv.conf and hosts in /etc by hand or copying from your system;
  • mount the dev,proc and sys filesystems into the uncompressed directory;
  • do some minor stuff for having the system ready for your tweaks.

Requirements

You need the squashfs-tools.

apt-get install squashfs-tools

HOWTO

# we choose pd/ as our working directory, so...

mkdir pd
cd pd

sudo mount puredyne.iso /mnt -o loop
mkdir extract-cd
rsync --exclude=/live/filesystem.squashfs -a /mnt/ extract-cd
# for d:b: rsync --exclude=/dyne/dyne.sys -a /mnt extract-cd/

sudo unsquashfs /mnt/live/filesystem.squashfs
# for d:b: sudo unsquashfs /mnt/dyne/dyne.sys 

sudo mv squashfs-root edit

# use resolv.conf and hosts from your system, or edit them by hand...
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/

# if you are into your pd/ directory with the system extracted as above, 
# just cut'n paste from here to start working on the system.

sudo mount --bind /dev/ edit/dev
sudo chroot edit

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

# To avoid locale problems during installation of new packages, you need to export 2 system variables:

export HOME=/root
export LC_ALL=C

# You also need to do this as root (that's for some reasons connected with a couple of dbus bugs).
# If you are re-chrooting to a system you're working on, don't mind about warnings or errors.

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

#done! 

That's all folks! ;)

Suggestions

When you want to remove packages remember to use purge I investigated a bit the matter, not enough to know whats going on but enough to know is a good practice.

Once in the chroot start poking:

# refresh your list
apt-get update

# some must have
apt-get install htop modconf

# some multimedia 
apt-get install cinelerra sox twolame mpeg2dec a52dec libsox-fmt-all a52dec darkice darksnow

rsync to carry the pack for working out of home

rsync --exclude=/edit/dev --exclude=/edit/proc --exclude=/edit/sys  -auvz /home/youruser/wherever/src/pd/ /media/usbdisk/pd/

In this way you rsync your pd/ working directory on a same pd/ dir on your usb key, so you can work everywhere on your eeepc. ;)

Closing

aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
dpkg -l > packages.txt
umount /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
sudo mv edit/packages.txt extract-cd/live/

Creating the ISO

Regenerate the manifest

Into the pd dir:

# creiamo il file
sudo touch extract-cd/live/filesystem.manifest
sudo chmod a+w extract-cd/live/filesystem.manifest
#
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/live/filesystem.manifest
sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/live/filesystem.manifest-desktop
sudo sed -i '/live/d' extract-cd/live/filesystem.manifest-desktop

#

Compress the filesystem

# cancelliamo il vecchio squashfs eventualmente in mezzo alle palle
sudo rm extract-cd/live/filesystem.squashfs

# creiamo il nuovo squashfs. La pagina Debian live parla di una opzione -nolzma da mettere
# alla fine, che pero' NON ESISTE:
#
# https://help.ubuntu.com/community/LiveCDCustomization
#
# Note: The -nolzma option is only available from Hardy , and was removed in Karmic. 
# Also, the squashfs has to be generated using a version of mksquashfs that is compatible 
# with the kernel used on the CD you are customizing. For example, you cannot generate 
# a jaunty squashfs on karmic, as the jaunty kernel is not able to mount a squashfs 
# prepared using mksquashfs from karmic.  O_o

sudo mksquashfs edit extract-cd/live/filesystem.squashfs

#

Set an image name in extract-cd/README.diskdefines

maybe is unuseful?

sudo joe extract-cd/README.diskdefines

(you can use "sudo vim extract-cd/README.diskdefines" if you have difficulties understanding joe. AHHAHAHAH)

MD5sum

Remove old md5sum.txt and calculate new md5 sums

cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

CREATE THE ISO IMAGE

sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../dyneIIIbeta.iso .

EJA, EJA, ALALA'!

Tasks to do

  • install all multilanguage documentation for programs and track they're directory if we can squash them or zip, inkscape,gimp,OOffice, some copies maybe from FOSS manuals?
  • remove unused themes
  • install some more open fonts
  • install some edubuntu software(find out which)
  • clean up desktop
  • boot and test the video software

<fruity> "aggiungere voce in syslinux menu per modo persistente"
<fruity> basta aprire syslinux.cfg o isolinux.cfg
<fruity> fare copia incolla della voce che hanno li gia
<fruity> editare il titolo e metterci "Persisten mode"
<fruity> e addare persistent a APPEND
<fruity> sai dove metti le opzioni del kernel
<fruity> tipo root= splash quiet
<fruity> va alla fine di quelle robe li

Done

  • Remove all useless documentation from /usr/share/doc
  • Installed Openoffice suite
  • Installed Scribus
  • English, Italian, Portoguese, French, Swahili and Afrikaans not installed: WE HAVE TO WAIT FOR LANGUAGES DEFINITION FROM THE COMMITTENT.

  openoffice.org-help-en-gb openoffice.org-help-en-us openoffice.org-help-fr openoffice.org-help-it openoffice.org-help-pt 
  openoffice.org-l10n-af openoffice.org-l10n-common{a} openoffice.org-l10n-en-gb openoffice.org-l10n-en-za openoffice.org-l10n-fr 
  openoffice.org-l10n-it openoffice.org-l10n-pt openoffice.org-l10n-sw 
0 packages upgraded, 13 newly installed, 0 to remove and 35 not upgraded.
Need to get 67.7MB/68.0MB of archives. After unpacking 234MB will be used.

Appunti

asbesto@gemini:/home/asbesto/Desktop/src/pd/edit/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml$ ls
accessibility.xml  xfce4-desktop.xml             xfce4-power-manager.xml  xfce4-settings-manager.xml  xsettings.xml
keyboards.xml        xfce4-keyboard-shortcuts.xml  xfce4-session.xml      xfwm4.xml

Sfondi desktop, icone, grafica

I backgrounds della pd stanno dentro /usr/share/xfce4/backdrops.

Per una questione di hierarchy sposterei gli sfondi che non sono default di xfce4 su una dir tipo /usr/local/share/xfce4/backgrounds sistemando opportunamente i file di config. Vedremo...

  • C'e' una icona pd dentro /etc/skel/.icons, finisce dentro /home/lintian (viene creata la home al boot). SISTEMATA

  • La dir. /usr/share/dyne della db, contenente varie cose, e' stata messa dentro /usr/local/share/dyne della pd.

  • Splash screen: si trova in nella sezione extract-cd del kit di sviluppo, quindi fuori da edit/ : nel mio caso sta dentro /home/asbesto/Desktop/src/pd/extract-cd/isolinux e si chiama ovviamente splash.png, 640x480. SISTEMATO, VEDIAMO SE VA. CI SONO ANCHE ALTRI SFONDI DA PROVARE LI DENTRO.

DESKTOP BACKGROUND, ICONE etc.
  • Desktop background: lo si configura nella dir /edit/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xls/ editando i file xfce4-desktop.xml e xfce4-session.xml. FATTO

  • C'e' una icona da sistemare qui: /etc/skel/.config/xfce4/panel/xfce4-menu-5.xml. FATTO

Varie

  • Sistemati gli help del boot, dentro /home/asbesto/Desktop/src/pd/extract-cd/isolinux", ci sono vari testi li' dentro. FATTI ma da verificare bene.

xxxxxxxxxxxxxxxxxxxxx

fruity/debian-live/remastering (last edited 2010-07-16 21:43:41 by asbesto)