Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230

 

 

 

DIY Distro - Debian Live-Build

Share your HowTo, Documentation, Tips and Tricks. Not for support questions!.
Post Reply
Message
Author
User avatar
ozi
Posts: 7
Joined: 2012-01-09 03:18

DIY Distro - Debian Live-Build

#1 Post by ozi »

I've created a live-build development environment for those interested in how to make there own distro using Debian Live-Build.

Live-Build 4.x has been used, which supports Debian Jessie.

The first place to start is with the manual and the manpages. I suggest that the manpages lb_config.1.txt and lb_clean.1.txt, should be looked at first, after reading the manual.

I've also used live-boot.7.txt if using -bootappend-live in lb config.

https://debian-live.alioth.debian.org/live-manual/html/live-manual.en.html
http://manpages.debian.org/cgi-bin/man.cgi?query=live-config
http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot
http://manpages.debian.org/cgi-bin/man.cgi?query=live-tools

http://manpages.ubuntu.com/manpages/oneiric/lb_clean.1..html

Overview

This Debian Live-Build demonstration will endeavor to provide the reader with the basics of Live-Build and some essential commands necessary to use it to create an installable/live iso.

For the purposes of this demonstration and to keep it simple, the target desktop environment will be: Requirements

This example uses Debian Jessie as the build environment

Step 1. Install live-build on Star or Debian Jessie

Code: Select all

sudo apt-get install live-build live-manual

/usr/share/doc/live-manual/
Step 2. Setup

Open a terminal window in your home directory and run the following commands:

Code: Select all

wget -c "http://sourceforge.net/projects/linnix/files/diy-debian.tar.gz"
tar -zxvf diy-debian.tar.gz
cd diy-distro
sudo ./menu
Main directory structure
diy-distro
├── diy-build
└── diy-source
Sub-directories
diy-build
├── auto
├── config
└── local
diy-source
├── auto <--------- build, clean, config scripts
└── config
├── apt
├── archives
├── bootloaders
│ └── isolinux
├── hooks
├── includes.binary
├── includes.chroot
│ ├── etc
│ │ ├── dpkg
│ │ ├── lightdm
│ │ ├── live <--------- live user setup
│ │ └── skel <--------- skeleton /home directory
│ └── usr
│ ├── bin
│ ├── lib
│ ├── local
│ └── share
├── includes.installer <--------- installer preseed.cfg file and logo/theme update for the graphical installer
└── package-lists <--------- lists of packages to be installed
└── packages.chroot <--------- packages to be installed
packages.chroot: Packages that are inside this
directory will be automatically installed into the live system during
build - you do not need to specify them elsewhere.


DIY Menu

~~~~~~~~~~~~~~~~~~~~~
M A I N - M E N U
~~~~~~~~~~~~~~~~~~~~~ Build version [8.2]

s. Setup
r. Remove
u. Update
b. Build
p. Purge

q. Quit

Enter choice or q :
Build version [8.2]:
This the current debian version number. See Update below.

Setup:
creates a clean diy-build directory and all the directories required for live-build.
Copies the default: build, clean and config files into the auto directory.

WARNING: diy-build directory is deleted in the process, if it exists.

NOTE : The diy-build diectory is owned by root. If the permissions in the build folder
aren't root the build will fail or be corrupt.

Remove:
Removes the diy-build directory.

N.B. if Build has been run, then Purge should be done before Remove.

Update:
Copies contents of diy-source into diy-build, and updates the files with version number inside
that are in /config/includes.chroot/etc/

See _VERSION=8.2 in the menu script, change this to suit.

I find it easier to work with files/directories I own, which are in the diy-source directory.
It's up to you whether you do it my way or not.

Build:
Runs the build script in diy-build, which runs lb clean, lb config and lb build.

The build can be run in a separate terminal window, see build() in the script.

Purge:
removes everything, including all caches. The config directory is kept.

sudo lb clean --purge

lb clean, is responsible for cleaning up after a system is built. It
removes the build directories, and removes some other files including
stage files, and any detritus left behind by other live-build commands.



Important
It is important to check the build log after the build, which can be found in diy-build.
This will help in resolving any build errors.

Squashfs - better compression:
http://www.tldp.org/HOWTO/html_single/S ... TO/#whatis
http://www.tldp.org/HOWTO/html_single/S ... sqoverview

auto/build
Add this line before the lb build in the build script.

export MKSQUASHFS_OPTIONS=" -no-recovery -always-use-fragments -b 1048576"


auto/config
Add --chroot-filesystem squashfs to lb config


/usr/lib/live/build/binary_rootfs
I changed the live containg -comp xz to -comp xz -Xbcj x86 -Xdict-size 75%
about line 357

from
MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -comp xz"

to
MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -comp xz -Xbcj x86 -Xdict-size 75%"



diy-debian iso

Disclaimer: This is not intended as a clone of VSIDO and is only intended as an example of Debian Live-Build.

Tips:
  • These hooks: 990-cleanup.chroot, 300-localepurge.chroot, are used to remove and resize files to make the image smaller.
  • Setup-user script is run on login from /etc/light/lightdm.conf - session-setup-script=/usr/share/diy/setup-user.
  • Installer preseed used to pre-answer install questions is in /config/includes.installer. The update script copies preseed.cfg to /config/includes.binary/install so the live install can use it. Also see live-build config --bootappend-live.
  • Setup session-manager, there is a hook session-manager_alternative.chroot and 2 files in /config/includes.chroot/usr/share/xsessions jwm.desktop, lightdm-xsession.desktop.
References:
25-06-2015 : LightDM Default Session and x-session-manager setup

Star website
Zephyr Linux

The Debian Administrator's Handbook
Installing, Step by Step

Last updated: 1 February 2016

Post Reply