Ubuntu – How to customize the Ubuntu Live CD

custom-distributions

I would like to customize Ubuntu live CD by installing some additional packages. I have followed this but it doesn't seems to work. Can anyone provide clear instructions?

Note: I do not prefer Remastersys, manual way will be appreciated.

Customization

Packages that I want to install:

  • Thunderbird
  • Samba
  • SSH

Changes that I need:

  • Remove Games menu from the Application menu
  • Firefox shortcut on Desktop
  • Radiance as the default Theme
  • Different default Ubuntu Wallpaper

Configuration file changes

  • I want the panel to be placed at the bottom
  • I want to paste my Samba configuration file instead of default Samba configuration
  • I have few Firefox shortcuts and folders I would like to show that in Desktop
  • Also it will be nice if you say me how to change the icon sets

Recent Updates

  • I have customized Ubuntu 10.10 with Firefox shortcuts and few folders on desktops. Everything went smooth. But the installer gets crashes after choosing the timezone. How do i fix this issue?

  • Also setting wallpaper affects the login screen. The wallpaper which i set is displayed on the login screen also. I just want the default one for the login screen.

Best Answer

Note: The Ubuntu Builder project has been discontinued.

Creating a custom 12.04 CD with Gnome-Classic using Ubuntu-Builder

(for now, this is specific to Karthik's needs; I will update answer later with more general/Unity-specific stuff)

1. Get Ubuntu Builder and your source ISO

Ubuntu Builder automates many of the preliminary steps that had to be done by hand (mount ISO, extract squashfs, create chroot, etc.) It gives you Synaptic and a "graphical" chroot as well (Unity UI).

Add the PPA to install Ubuntu Builder:

sudo add-apt-repository ppa:kamilion/ubuntu-builder
sudo apt-get update
sudo apt-get install ubuntu-builder

Also download the Ubuntu Desktop ISO you're planning to work with.

2. Ubuntu Builder Basics

  • Start Ubuntu Builder from the Launcher. I recommend you set all three fields to "Ubuntu" (like the actual LiveCD), because setting custom fields led to Software Center crashing. When you install, you can choose your own username, machine name, etc. as always.

    enter image description here

  • Load your ISO; I loaded the 64-bit with the Local Disk option, although Ubuntu Builder should be able to download the ISO if you want it to.

  • The buttons on the right are self-explanatory. Console gives you a CLI chroot, while Desktop gives you a graphical one!, i.e. a LiveCD session itself (this one may take a while to load). Note that the Select DE/WM does an incomplete job sometimes, so it's better to install via apt-get/Synaptic.

3. Updating, adding Gnome Classic and other package management

Note: All this can also be done from Synaptic if you are more comfortable with that.

  • You can edit the sources.list with the button (or via the console) to add your own mirrors, ppas, etc.

Let's start with:

  • Remove the games
    apt-get remove --purge aisleriot gnome-games-data gnomine mahjongg -y
  • Do a general update and dist-upgrade to the latest stuff (optional, but recommended since the Gnome-classic and other packages you add will be the latest versions) -- on 12.04, this step also installs Thunderbird and the core Samba components. It will also save time on the actual install.
    apt-get update && apt-get dist-upgrade
  • Install Gnome Classic (gnome-shell to pull in indicators, etc.), Samba and SSH:
    apt-get install gnome-shell samba ssh

4. Customization 1: Files, configs and removing the top-panel

Note: All commands must be run from the chrooted console of Ubuntu Builder unless otherwise noted (usually when copying files from your own system). The absolute path of the chroot is /home/ubuntu-builder/FileSystem

  1. Replace Samba configuration file (from your own system terminal, i.e. outside chroot!)

    sudo cp /path/to/mysmb.conf /home/ubuntu-builder/FileSystem/etc/samba/smb.conf
  2. Put Firefox shortcut on desktop:

    mkdir -p /etc/skel/Desktop && cd /etc/skel/Desktop
    cp /usr/share/applications/firefox.desktop .
    chmod +x firefox.desktop
    
  3. Copy custom shortcuts and folders to Desktop (from outside chroot!)

    sudo cp -r /path/to/mydesktopitems/ /home/ubuntu-builder/FileSystem/etc/skel/Desktop/
  4. Set gnome-classic as the default shell:

    /usr/lib/lightdm/lightdm-set-defaults -s gnome-classic
  5. Remove the top Gnome-Classic panel and move top-items to the bottom-panel:

    • Open the default panel layout:
      nano /usr/share/gnome-panel/panel-default-layout.layout
    • Delete the top-panel, by removing lines 1-4:
      [Toplevel top-panel]
      expand=true
      orientation=top
      size=24
      
    • Move the Start Menu to the bottom left by modifying the bolded value for the italicized parameter as below:
      [Object menu-bar]
      object-iid=PanelInternalFactory::MenuBar
      toplevel-id=bottom-panel
      pack-index=0
      
    • Move the indicators to the bottom right, just to the left of the Workspace Switcher, by modifying the bolded value for the italicized parameters as below:

      [Object indicators]
      object-iid=IndicatorAppletCompleteFactory::IndicatorAppletComplete
      toplevel-id=bottom-panel
      pack-type=end
      pack-index=1
      
    • Remove the "Show Desktop" button from the bottom left; I prefer the Start Menu to be the first thing there, you can leave it or move it to the bottom right, etc. Delete these lines:

      [Object show-desktop]
      object-iid=WnckletFactory::ShowDesktopApplet
      toplevel-id=bottom-panel
      pack-index=0
      
    • Save and exit.

5. Customization 2: Backgrounds and Themes

Note: /usr/share/glib-2.0/schemas contains most of the default background/theme settings; I found it easier to directly modify those for a LiveCD instead of having to deal complicated stuff just to, for example, prevent the login screen background from being the same as the desktop background.

  1. Disable the login screen (lightdm) from "copying" the desktop background and other changes:

    • Open nano /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
    • You can change the login background from the default here if you want:
      <key name="background" type="s">
      <default>'/usr/share/backgrounds/warty-final-ubuntu.png'</default>
      
    • Disable "copying" the desktop background by setting this to false:
      <key name="draw-user-backgrounds" type="b">
      <default>false</default>
      
    • Set the login theme to Radiance:
        <key name="theme-name" type="s">
      <default>'Radiance'</default>
      
  2. Change the default wallpaper; here, we'll set it to the included "Tie My Boat" (/usr/share/backgrounds/Tie_My_Boat_by_Ray_García.jpg):

    • Open nano /usr/share/glib-2.0/schemas/10_gsettings-desktop-schemas.gschema.override, and change the below line to the path for your file:
    picture-uri='file:///usr/share/backgrounds/warty-final-ubuntu.png'
    
  3. Change the theme to Radiance

    • Open Ubuntu's theme override file ``nano /usr/share/glib-2.0/schemas/ubuntu-artwork.gschema.override`, and change the Ambiance below to Radiance:
      [org.gnome.desktop.interface]
      gtk-theme="Ambiance"
      ...
      [org.gnome.desktop.wm.preferences]
      theme="Ambiance"
      
  4. Important: Compile the modified schemas!

    • Now that we're done customizing, compile the modified schemas with:
      glib-compile-schemas /usr/share/glib-2.0/schemas 

6. Build, test and install!

  • Press the Build button in Ubuntu Builder to begin building the custom Live-CD ISO. UB automatically handles the cleanup, etc. that previously had to be done manually.

    enter image description here

  • The ISO can be found in /home/ubuntu-builder; you can test it using the built-in QEMU, or in another virtual machine.

  • My finished CD size was 778 MB (after removing the old .23 kernel), with Unity and Gnome 3D still available if the user wishes to, so that's pretty good for a customization! :)

The following should result:

  1. After bootup, you get the "Try Ubuntu" or "Install Ubuntu" option:

    enter image description here

  2. Clicking "Try" gets us our custom desktop!

    enter image description here

  3. And logging out (login with ubuntu, blank password) shows that the login wallpaper is kept at the default:

    enter image description here

  4. Installer does not crash upon Timezone selection:

    enter image description here

  5. Select username, etc. for install:

    enter image description here

  6. Installed login screen:

    enter image description here

  7. Installed desktop:

    enter image description here