[Fedora-livecd-list] wiki page updated

Dirk Westfal dirk.westfal at frankfurter-verein.de
Sat Jul 16 04:17:54 UTC 2005

Hi, gentlemen!

On Friday 15 July 2005 12:37, Darko Ilic wrote:
> OK people,

Some first suggestions/notes/comments ...   

>The application should be able to assume (because of the compression, we are 
>not able to tell the exact value) the size of the image so the user could 
>nclude/exclude packages in order to fit the desired media. This could be 
>realized reusing diskspace-calculation function of anaconda, and teaching it 
>about squashfs. 

At least the (intermediate) compression ratio should be known: eg. for zisofs 
it is ~ 1/3 of the original space required, so i think a static divisor 
(perhaps with an additional failsafe 'minus 50 Mb' or somewhat else) should 
work here. 

>(big step!) modifications (Modifications would be scripted, and would include 
> all changes that should be made to system to make it able to run from cd.

All modifications made to the system should be made via rpm packages that 
allow install/uninstall (imho). 
This way it is muchmore easier to 'root out' errors, as well as keeping the 
system clean: the only difference between harddisk and livecd system would be 
the presence of these rpms (imho :)

If these packages are in the repo, the only thing to take care of would be to 
make sure they` re always installed last.  
(Either as last packages to be installed (eg. autoadded to the package list by 
the installer) or via some postinstall function. 

> User should be able to add his scripts to be executed in this step. 
This could be done with an additional rpm package that uses scripts in 
eg. /etc/sysconfig/fedora-livecd/ (or somewhere else) and runs them in a 
somehow defined order. Ideally, these scripts would have an install and 
uninstall section also. 

> Additionally, user should be able to chroot to system and to do some custom 
Perhaps toggleable by an config file option (like: usermodify=true ) ??

> compression and iso image creation 
and of course setting up the isolinux bootloader (config, kernel, initrd) 
The most worriesome part (imho): I`m currently experimenting with creating an 
isolinux compliant initrd inside the image (by an mklivecdinitrd - rpm) and 
then moving the initrd + kernel to the isolinux folder by the installer. 

>List of system modifications
>init modifications 
That`s one hard thing: I use the approach to check the default rc.sysinit file 
of the distri and ifdeffing out all parts writing to / by checking for the 
existence of the livecd 'tag' file. 
Setup of tmpfs and other stuff like initial hw detection is (now) done via an 
rc.livecd script executed before the rc.sysinit script. 
This works fine, however it requires to check each modifiaction to rc.sysinit 
for changes ...

>overlay file system or a tmpfs for all directories that are writable, 
In my  expirience, the best way to populate it at runtime is to use a tar.gz : 
a ~64Mb tree compresses to ~8Mb and is extracted in ~4-6 seconds. 
However my approach to move and re-symlink all runtimewritable parts currently 
wrecks selinux :( though it is very easy to handle (just one archive for ALL 
runtime writable directories)  

> A2: Stripping out languages (what else can be deleted?) 
Perhaps a good part of /usr/share/doc - at least on a gui livecd.
It is also possible to remove /var/lib/rpm (though i prefer to move/re-symlink 
that to a read-only dir, eg /usr/local/rpm) 
>Q: how to handle multiple repositories? Do all rpms need to be on the machine 
before installation? 

> Q: multiple kernels? 
That would be great! I always used the 'last-known-good' (=tested on as many 
systems from livecd as possible) + 'latest' approach to provide fallback.  

> Q: system installer (app that would be able to install OS on HDD from 
LiveCD) yes or no? 
Would be great to have ! If the only difference between livecd and harddisk is 
the presence of special rpms and/or a special 'tag' file, it would be easy to 
just copy the whole livecd to the traget partition(s), uninstalling the 
special rpms and removing the tag file (and then calling firstboot ...). 

>Q: Shutdown, how do we export data on the way down? 
Via usb: user home + etc
Via floppy: just changed files in /etc 

>Q: Should the CD automatically look at floppy, usb or hdd for saved 
session/override data? 
Imho: yes - one of the functions most requested by my users: if a usb device 
with an file like 'livecd-<usrname>' is present, it should be extracted just 
after login in. (and revers on logoff) 

> Q: Besides exporting data, does it really need to do anything on the way 
After saving user session data, there is no need to do a 'full flavored 
shutdown'. I think a 'forced halt/reboot' is then sufficient. 

> Build config file (holding information related to the building process) 
>test drive 
>test mountpoint 
+ where to store temp data  ? 

>CD Config file (holding information related to the distro) 
>list of packages 
+ repositorys  ?
>max image size 
+ image type (CDROM: ->700Mb/DVD ->3,8Gb) ? 
> file system to be used (ext2/ext3..) (do we really need this?) 
Could be usefulll to perform 'sanity checks' - with zisofs compressed images i 
can do a full filechek of the compressed image even on harddisk - is the same 
true for sqashfs ? 

> wether to use a swapfile or not 
I currently use an rc service to setup a swapfile on the first partition of 
usable type and sufficient size - but only if the user by himself starts it. 
Imho is anything accessing the users harddisk a big red line to step over, but 
swapping might be necessary  (eg. if using oo and a lot of other apps at the 
same time) Wihtout one, the session normally gets restarted (at leasdt with 
kde) loosing all/most changes. 

>maximum size of runtime writable space 
Perhaps include some warning mech that informs the user if reaching some fill 
level ?

> Darko Ilic

Dirk Westfal

Dirk Westfal /Admin/RHCE/QAR
Frankfurter Verein / Edv Abteilung / Netzwerkverwaltung
Fon: + 49 69 79405 447  Fax: + 49 69 79405 301
'Protego et servio' 

More information about the Fedora-livecd-list mailing list