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
modifications.)
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
down?
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'