View previous topic :: View next topic |
Author |
Message |
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-05 19:21 Post subject: live-helper create image and customize environment howto! |
|
|
CREATE A LIVE IMAGE USING LIVE-HELPER
software required
live-helper - recent version
basic commands
lh_config - creates the
configuration file, this is where you specify desktop, architecture,
extra software, include installer, and so forth.
lh_build - command to start the build
other important commands
lh_clean --binary use this to clean things up before building another image using the same config
lh_clean use this to clean things up before building another image when the config has changed
lh_clean --purge use this to do a super-clean, this will purge all packages from the cache
some lh_config options
-p use a package list from /usr/share/live-helper/lists or specify your own file
-d specify the distribution (etch/lenny/sid)
-a specify the architecture (i386/amd64/?)
--debian-installer=businesscard include the business card installer
--debian-installer=enabled include the installer
--packages specify packages you want to include
examples
example 1 - to build a sid live image for i386 with the gnome-core predefined package list and medit
mkdir livebuild
cd livebuild
su
lh_config -d sid -a i386 -p gnome-core --packages medit
lh_build
when it is done, look in the livebuild folder for the binary.iso
example 2 - to build a lenny live image for amd64 with kde predefined package list, audacious and the debian installer
mkdir livebuild
cd livebuild
su
lh_config -d lenny -a amd64 -p kde --packages audacious --debian-installer=enabled
lh_build
when it is done, look in the livebuild folder for the binary.iso
example 3 - to build a sid live image for i386 with studio-xfce predefined package list, cowsay and the debian installer
mkdir livebuild
cd livebuild
su
lh_config -d sid -a i386 -p studio-xfce --packages cowsay --debian-installer=enabled
lh_build
when it is done, look in the livebuild folder for the binary.iso
example 4 - to build a lenny live image for i386 with myfavs package list and the debian installer
mkdir livebuild
cd livebuild
su
lh_config -d lenny -a i386 -p myfavs --debian-installer=enabled
lh_build
when it is done, look in the livebuild folder for the binary.iso
fyi
fyi - a basic GUI called live-magic is available in lenny/sid for building live images
fyi - you can also just download a prebuilt image from http://live.debian.net/cdimage/
fyi - The above method does not even scratch the surface of what
you can do with live-helper. As far as I know you can configure
live-helper to inject custom files, use local packages, even open a
chroot shell during the build process. Using live-helper to customize
the build would would probably eliminate the need to customize the ISO
manually. I am not familiar with doing this but you can get more info
at the debian live project homepage or the wiki
fyi - personally I build a standard base image only, then I customize
it manually. That way I can reuse it with different software without
having to build a new base image.
fyi - you can test the image without burning it to a disk by using qemu
fyi - The wiki and mailing list provides plenty more info...
.
Last edited by MeanDean on 2008-04-22 18:50; edited 42 times in total |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-05 19:24 Post subject: |
|
|
CURRENTLY BEING TESTED - USE AT YOUR OWN RISK
METHODS TO CUSTOMIZE THE ISO
First, you do not have to to customize manually. The ISO you built
in the previous step is perfectly usable as is. You may want to
customize the ISO manually if you want to add some software, configure
the environment, edit configuration files and so forth...
software required
squashfs-tools
squashfs-modules
xnest - if you are going to use xnest
qemu - if you want to use qemu to test the ISO
method 1- customize via the command line.
change to root since some of the commands require root privys
su
unpack the ISO
mkdir iso
mkdir temp
mount binary.iso -o loop temp/
cp -a temp/* iso/
umount temp/
Unpack the squash file system. This is the actual filesystem that is run when you use the livecd.
mount -t squashfs -o loop iso/live/filesystem.squashfs temp/
mkdir fs
cp -a temp/* fs/
umount temp/
rm -rf temp/
remove the old squash from the iso since we will build a new one with our changes
rm iso/live/filesystem.squashfs
copy a couple of files from our system to the extracted filesystem, if needed
cp /etc/hosts fs/etc/
cp /etc/resolv.conf fs/etc/
need to mount a few things in the extracted filesystem so the system is usable
chroot fs mount -t proc none /proc
chroot fs mount -t sysfs none /sys
chroot fs mount -t devpts none /dev/pts
change root to the extracted filesystem so we can work in it
chroot fs
export our locale thingy so we dont get irritating messages when we install software
export LC_ALL=C
You are now using the CLI in the system you want to customize.
You are root. You can su to other users if needed.
You can add/remove software, add users, set passwords, edit files, etc...
exit the chroot back to our system
exit
unmount a few things in the extracted filesystem
chroot fs umount /proc
chroot fs umount /sys
chroot fs umount /dev/pts
chroot fs rm -rf /tmp/*
remove those files we copied over and create new empty ones, if desired
rm fs/etc/resolv.conf
rm fs/etc/hosts
touch fs/etc/resolv.conf
touch fs/etc/hosts
make the new squash filesystem from the folder we have been making changes to
mksquashfs fs/ iso/live/filesystem.squashfs
make the new ISO
mkisofs -r -V "cd" -cache-inodes -J -l -o newcd.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table iso/
if you copy/paste the above commands be sure not to have a space after the \
newcd.iso should be on your desktop, it is owned by root so we need to chown/chgrp it
chgrp YourUserName newcd.iso
chown YourUserName newcd.iso
you can test newcd.iso using qemu
qemu -cdrom newcd.iso
If you aren't happy with the newcd (forgot to include something or
forgot to tweak something) delete newcd.iso and you can keep the work
you have done so far by starting back to rm
iso/live/filesystem.squashfs
otherwise remove the following folders
rm -rf fs/
rm -rf iso/
exit
All done!
method 2- customize via the
command line and use a xnest session (separate graphical environment in
a window) to make changes to a particular users environment or simply
to check and verify your CLI tweaks.
change to root since some of the commands require root privys
su
unpack the ISO
mkdir iso
mkdir temp
mount binary.iso -o loop temp/
cp -a temp/* iso/
umount temp/
Unpack the squash file system. This is the actual filesystem that is run when you use the livecd.
mount -t squashfs -o loop iso/live/filesystem.squashfs temp/
mkdir fs
cp -a temp/* fs/
umount temp/
rm -rf temp/
remove the old squash from the iso since we will build a new one with our changes
rm iso/live/filesystem.squashfs
start a xnest (separate graphical screen inside a window) session to be used later
Xnest -ac :2 &
if :2 does not work then use a different number, just be sure to use the same number later also
copy a couple of files from our system to the extracted filesystem, if needed
cp /etc/hosts fs/etc/
cp /etc/resolv.conf fs/etc/
need to mount a few things in the extracted filesystem so the system is usable
chroot fs mount -t proc none /proc
chroot fs mount -t sysfs none /sys
chroot fs mount -t devpts none /dev/pts
change root to the extracted filesystem so we can work in it
chroot fs
export our locale thingy so we dont get irritating messages when we install software
export LC_ALL=C
You are now using the CLI in the system you want to customize.
You are root. You can su to other users if needed.
You can add/remove software, add users, set passwords, edit files, etc...
switch to the user whose environment you want to customize
*if you want to customize the root account then skip this step
su username
Now you can start the graphical environment in the xnest window.
if you have e17 installed then start it with the following command
env DISPLAY=":2" enlightenment_start &
or if you have icewm installed then start it with the following command
env DISPLAY=":2" icewm-session &
or if you have fluxbox installed then start it with the following command
env DISPLAY=":2" startfluxbox &
or if you have a environment that is very 'component-ized' then you probably need to startup the seperate components
env DISPLAY=":2" sawfish &
env DISPLAY=":2" pypanel &
You should see the environment startup in the xnest window.
Make whatever changes you wish then logout of environment.
Close the xnest window.
exit the user su
*if you are customizing the root account then skip this step
exit
exit the chroot back to our system
exit
unmount a few things in the extracted filesystem
chroot fs umount /proc
chroot fs umount /sys
chroot fs umount /dev/pts
chroot fs rm -rf /tmp/*
remove those files we copied over and create new empty ones, if desired
rm fs/etc/resolv.conf
rm fs/etc/hosts
touch fs/etc/resolv.conf
touch fs/etc/hosts
make the new squash filesystem from the folder we have been making changes to
mksquashfs fs/ iso/live/filesystem.squashfs
make the new ISO
mkisofs -r -V "cd" -cache-inodes -J -l -o newcd.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table iso/
if you copy/paste the above commands be sure not to have a space after the \
newcd.iso should be on your desktop, it is owned by root so we need to chown/chgrp it
chgrp YourUserName newcd.iso
chown YourUserName newcd.iso
you can test newcd.iso using qemu
qemu -cdrom newcd.iso
If you aren't happy with the newcd (forgot to include something or
forgot to tweak something) delete newcd.iso and you can keep the work
you have done so far by starting back to rm
iso/live/filesystem.squashfs
otherwise remove the following folders
rm -rf fs/
rm -rf iso/
exit
All done!
fyi
fyi - The file fs/etc/inittab is setup to automatically login the
'user' user when running live. Edit the file if that is not the desired
behavior. You can edit inside the chroot or outside - but you need to
have root privys
fyi - you can open a filemanager as root and move custom content from your system to the fs/ folder at any time
fyi - you can reuse the xnest window for other users, when you Make whatever changes you wish then logout of environment.
dont close the xnest window, exit the current user su, then su username
to the next user you want to configure and startup the environment
again
fyi - One easy way to customize the user(s) environment using your
currently installed system is to create a new user on your current
system. Login as that user. Customize anything you wish. Save the
config files that are created in /home/username. Now follow method 1 or
2 and sometime after you unpack the squashfs move those config files to
the fs/home/username folder and that user will have those configs - be
sure to have proper ownership/permissions on them. You could also put
those files in /etc/skel/ and then while in the chroot create users and
they will automatically inherit those config files.
fyi - you can test the image without burning it to a disk by using qemu
.
Last edited by MeanDean on 2008-04-23 09:52; edited 48 times in total |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-05 19:32 Post subject: |
|
|
reserved for a actual walkthru of the customization process....
hopefully can create a recordmydesktop video of the process...
Last edited by MeanDean on 2008-04-22 20:34; edited 37 times in total |
|
Back to top |
|
|
Bro.Tiag
Joined: 02 Jun 2007 Posts: 530
|
Posted: 2008-04-05 19:45 Post subject: |
|
|
Well
I can confirm that at least the binary.iso was built in the time it
tock you to make this post. Now as to whether it's bootable, I'll let
ya know once my cd-rw is finished writing & I've tested it.
Cheers |
|
Back to top |
|
|
Bro.Tiag
Joined: 02 Jun 2007 Posts: 530
|
Posted: 2008-04-05 19:55 Post subject: |
|
|
Bro.Tiag wrote: | Well
I can confirm that at least the binary.iso was built in the time it
tock you to make this post. Now as to whether it's bootable, I'll let
ya know once my cd-rw is finished writing & I've tested it.
Cheers |
You've got to be kidding! I'm back & can confirm that it does
make a LiveCD that quickly. I'd like to say I'm posting from said
LiveCD, but I figured the 19 sec reboot to sid would be faster then my
sorting out links to post a reply.
Well done Dean, Well Done!
Cheers |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-05 20:46 Post subject: |
|
|
Now that you have the basic idea, some great examples are listed here
http://wiki.debian.org/DebianLive/Examples
I test the images using qemu
qemu -cdrom binary.iso
The guy to thank is Daniel Baumann for his awesome work! live-helper is amazing IMO, as simple or as complex as you want to make it.
The debian live mailing list is a superb mailing list to subscribe to! |
|
Back to top |
|
|
Bro.Tiag
Joined: 02 Jun 2007 Posts: 530
|
Posted: 2008-04-05 21:01 Post subject: |
|
|
MeanDean wrote: | Now that you have the basic idea, some great examples are listed here
http://wiki.debian.org/DebianLive/Examples
I test the images using qemu
qemu -cdrom binary.iso
The guy to thank is Daniel Baumann for his awesome work! live-helper is amazing IMO, as simple or as complex as you want to make it.
The debian live mailing list is a superb mailing list to subscribe to! |
Go on dean, you did the second hardest part, reading. Thanks.
I'm working through a package list I want to include. That seems to
be the long part right now. Should have a nice new LiveCD tonight,
least I run out of beer.
Cheers |
|
Back to top |
|
|
Bro.Tiag
Joined: 02 Jun 2007 Posts: 530
|
Posted: 2008-04-06 00:33 Post subject: |
|
|
Hum, things seemed to work OK. But somehow I wound up with a gnome desktop & not e17. Me thinks you tricked me. I'll sort it out tomorrow.
Cheers
ps - this time I am posting from said LiveCD. |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-06 00:59 Post subject: |
|
|
Bro.Tiag wrote: | But somehow I wound up with a gnome desktop & not e17. |
too much beer? |
|
Back to top |
|
|
Noven
Joined: 17 Mar 2007 Posts: 189
|
Posted: 2008-04-06 01:38 Post subject: |
|
|
How
would I make a Lenny livecd with openbox and that uses gdm? I know I
can add packages with --packages, but how do I have those packages
automatically configured, IE: pypanel is installed, but configured to
start when openbox starts, or tilda is installed, but has a certain
configuration and starts upon login. _________________
|
|
Back to top |
|
|
Bro.Tiag
Joined: 02 Jun 2007 Posts: 530
|
Posted: 2008-04-06 06:14 Post subject: |
|
|
MeanDean wrote: | Bro.Tiag wrote: | But somehow I wound up with a gnome desktop & not e17. |
too much beer? |
Is there such a thing?
Actually, I used the package list from yur sid-e17 LiveCD, but must have missed removing something gnome related.
Cheers |
|
Back to top |
|
|
ingo
Joined: 15 Apr 2007 Posts: 181 Location: capital of beer
|
Posted: 2008-04-07 14:47 Post subject: |
|
|
Yeah,
live-helper is nice but I am not sure to what extend I can customise my
live CD with it. I am not saying that it isn't possible, but I can't
see the wood for all the trees at the mo...
You see, I've got a splashy theme (I know...), a kdm theme, a
ksplash theme, a totally different looking kde desktop not using any of
the menus out there but my own and I only know how to do that by
mounting the squashfs from a normal live CD (building as I type),
chrooting into it and doing it all from there.
Having said that - I am not sure how to pack the squashfs into the new iso again, but that cannot be too difficult
Anyway, thank you MeanDean for getting this rolling!
Hm, just read that lh_config starts a proper config file. One
should be able to do a fair amount of tweaking there... Got to look
into it. _________________ AMD Athlon XP 2600+ - nVidia GeForce FX 5200 - 1024MB Ram on Debian Lenny / T41 on Kubuntu 7.10 |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-08 08:54 Post subject: |
|
|
part2 is done...I think...
feel free to ask any questions (even i f I do crack a joke about your sweaty little hand)
need any or all the sections explained then just let me know but don't forget that man is your friend too and is always there to help you
_________________ How to ask questions the smart way! |
|
Back to top |
|
|
MeanDean
Joined: 31 Aug 2007 Posts: 1221
|
Posted: 2008-04-08 09:01 Post subject: |
|
|
ingo wrote: |
You see, I've got a splashy theme (I know...), a kdm theme, a ksplash
theme, a totally different looking kde desktop not using any of the
menus out there but my own and I only know how to do that by mounting
the squashfs from a normal live CD (building as I type), chrooting into
it and doing it all from there.
Having said that - I am not sure how to pack the squashfs into the new iso again, but that cannot be too difficult
|
part2 is where I would probably start integrating my custom stuff and then I would finish it up in part3 if I needed to do more
extract the filesystem contained within the squash to folderX, move
the stuff in, chroot in, configure and tweak, exit chroot, then simply
squash folderX again with mksquashfs folderX/ path/to/filesystem.squashfs
hope this helps....always welcome... _________________ How to ask questions the smart way! |
|
Back to top |
|
|
ingo
Joined: 15 Apr 2007 Posts: 181 Location: capital of beer
|
Posted: 2008-04-08 09:03 Post subject: |
|
|
Funny you should say that
I made myself a basic lenny kde cd last night (weyhey!), so far so
good. I checked the man pages and found them to be either non-existent
or just as helpful - but that is just me, my brain is not sufficiently
geeky to make sense of ANY man pages (I can just about make sense of
the flags...).
Anyway, I have a working system to play with. Aim is to mount the
squashfs, chroot into it, mount proc and sys, get on the net and do
what a man has got to do - no sweat.
If you could now supply me with the proper mkisofs command to tie my
work up and pack it into a nice iso I'd be more than grateful!!! I'd
like to extract it from live-helper but that is a closed book as far as
I am concerned...
Right, time to crack your jokes _________________ AMD Athlon XP 2600+ - nVidia GeForce FX 5200 - 1024MB Ram on Debian Lenny / T41 on Kubuntu 7.10 |
|
Back to top |
|
|
|
Stop watching this topic
|
You can post new topics in this forum You can reply to topics in this forum You can edit your posts in this forum You can delete your posts in this forum You can vote in polls in this forum
|
Powered by phpBB 2.0.21-6fdn4 (Debian) © 2001, 2005 phpBB Group
|