Hi!
I posted this message to the mailing list, and wrote email to the author, but have recieved 0% responce (?) can someone please acknowledge the accuracy or not and help with the questions?
[POSTED 5/13/02 to virtual-linux-support mailing list]
--------------------------------------------------------------------------------------------------
Hi Everyone! (Mrten especially!)
I have been following this project since the release of VL10devrelease1.iso
I have to say, that I have found this project to very interesting. I have also seen other CDROM based distribution like knoppix (http://www.knopper.net/knoppix) that can boot from cdrom into a stand alone Linux environment. However, this project's approach is much closer to a REAL Linux install.
Now, onto what I started to write ... How It All Works.
In a nut shell the filesystem is abstracted into two parts; the static files, and the dynamic files. The static files are stored on the cdrom in a compressed loopback file (cloop) mounted in the root of the ramdisk. The dynamic files are in the initrd that get loaded at boot time and stored in the ramdisk (ram0). Additionally, files saved to disk during previous runs are loaded into the ramdisk over writing what was loaded by the initrd. In addition to the dynamic files, there are symbolic links that point to every static file in the .virtual_root folder. The system is essentially a standard Mandrake install except for some small parts in the startup and shutdown. Here is what I have been able to determine;
(please correct me or fill in where I'm wrong or missing something)
OPERATION:
->power
->bios
->cdrom boot
->isolinux (see isolinux.cfg)
->load Linux kernel (vmlinux)
->load initrd (initrd.gz)
[KERNEL STARTS - with initrd.gz loaded into ram0 as root]
->/bin/init (init 3 or init 5 from the isolinux.cfg. 3 being multiuser and 5 being x11)
->/etc/rc.d/rc.sysinit
->/bin/findcd
(umount /initrd)
(compress ramdisk)(new ... nice!)
(make /.virtual_root directory)
(mount /proc)
(load scsi module)
(loops through cdrom drives looking for virtual Linux cdrom)
[CDROM FOUND]
(load cloop kernel driver (pointing to found iso.compressed image)
(mount cloop (device) image to /.virtual_root)
(mount devfs)
(mount devpts)
(exit (return) to rc.sysinit)
[CDROM NOT FOUND]
(bombs out waiting for user to reboot)
[VARIOUS OTHER INIT STUFF] (setting clock, keymap, ect.)
->/bin/vlutil swap
(creates a list of known swap partitions and dumps them into /etc/fstab)
(turns swap on)
(exit (return) to rc.sysinit)
[FSCK removed]
[MTAB clear removed]
[VARIOUS OTHER INIT STUFF] (setting hdparam, modules, devfsd.)
->/bin/vlutil locate
(creates a list of known hard disk)
(tries to mount all known hard disk and puts links onto /root/Desktop/...)
(exit (return) to rc.sysinit)
->/bin/vlutil settings
[checks /proc/cmdline for clean=]
(if yes, clear the virt_linux folder off hard disk)
(if no, load saved files over-writing initrd)(root.tgz, etc.tgz, update.tgz, etc.)
(exit (return) to rc.sysinit)
[VARIOUS OTHER INIT STUFF] (/etc/init.d/mandrake_everytime, etc.)
[init level 3 (multiuser) or 5 (X11) called by init](see isolinux.cfg)
[** SYSTEM IS UP AND RUNNING **]
[LOGIN](root account)
->.bashrc
(checks to see if /etc/.configure is present)
(if yes -> normal login)
(if no -> runs drakeconf in a loop until user cancels -> then normal login)
[SHUTDOWN REQUESTED (init 6)]
->/bin/init 6
->/etc/rc.d/init.d/halt
[VARIOUS OTHER INIT STUFF]
->/bin/vlutil umount
saves /etc & /root as tar gzip archives to the virt_linux folder
unmounts all mounted filesystems
[** SYSTEM REBOOTS **]
FILES REFERENCED:
/etc/rc.d/rc.sysinit (modified)
/etc/rc.d/init.d/halt (modified)
/bin/findcd (added)
/bin/vlutil (added)
/etc/.configure (used)
$vfat/virtual_root (added, used for storage & settings)
QUESTIONS:
A few questions I have are;
1) Does the cdrom really need to have the (initrd?) filesystem present. If the files are being
loaded from the initrd.gz and the virt_linux/*.tgz files, why are they also present on the root of the cdrom?
2) Is there a linuxrc step missing, or is this a leftover from previous versions? (in the isolinux.cfg it refers to init=/linuxrc)
3) Are there any other files, packages, and etc. that have been modified for this project?
(anything not noticeable from the surface?)
Scott Franzyshen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well , thanks for your very accurate disection of Virtual Linux !
Hmm , mailed me and got no answer ... strange ,, i normally answer all mail no matter what ....
Sorry, must have missed it :(
Answers :
1 : Yes, it must be in /isolinux directory,because isolinux loads it during boot, it is not hidden somewhere as with other boot loaders .
should not be present in / of cdrom ??
2 . i was lazy and created a little /initrd script in the previous small initrd .
i had severe problems with my smaller initrds and decided to go back to one big 20 mb initrd instead, did a quickhack to test, forgot to remove it after .
3 . Well, i have poked a bit here and there, removed some lines in drakxconf and kudzu startup that i don't use, modified rights and ownerships for things to work properly , made a very custom kernel with e2compr and so on, but i have not modified any sourcecode besides drakxconf and kudzu .
I am trying to use everything as is, that is one of the goals for this project .
Do you have any ideas, feel that things should be done different or so ?
I am open for all ideas, and need more people for redoing /bin/vlutil and such, theses scripts look more of a disaster for every release .
Should be trashed and rewritten .
My time is quite limited, i work as remote admin
about 12 hrs /day :(
p,s sorry for my gobbladegook english, not my language really ..
Mrten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well , thanks for your very accurate disection of Virtual Linux !
Hmm , mailed me and got no answer ... strange ,, i normally answer all mail no matter what ....
Sorry, must have missed it :(
Answers :
1 : Yes, it must be in /isolinux directory,because isolinux loads it during boot, it is not hidden somewhere as with other boot loaders .
should not be present in / of cdrom ??
2 . i was lazy and created a little /initrd script in the previous small initrd .
i had severe problems with my smaller initrds and decided to go back to one big 20 mb initrd instead, did a quickhack to test, forgot to remove it after .
3 . Well, i have poked a bit here and there, removed some lines in drakxconf and kudzu startup that i don't use, modified rights and ownerships for things to work properly , made a very custom kernel with e2compr and so on, but i have not modified any sourcecode besides drakxconf and kudzu .
I am trying to use everything as is, that is one of the goals for this project .
Do you have any ideas, feel that things should be done different or so ?
I am open for all ideas, and need more people for redoing /bin/vlutil and such, theses scripts look more of a disaster for every release .
Should be trashed and rewritten .
My time is quite limited, i work as remote admin
about 12 hrs /day :(
p,s sorry for my gobbladegook english, not my language really ..
Mrten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
yes this has to be the best thing since sliced butter. I used an iso editor and added some files to the iso but it has problems booting now. I would like to know how to add custom files and programs to the iso. I would like to add firestarter firewall program that i like to use. This is very slick idea and good luck. If there is anything I may do to help please let me know?
-Rich
fadestyle@hotmail.com
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Requires a folder named /root/test, and that you have loopdevices etc .
Add whatever you like to the /root/test folder, i.e the image .
Unmount and recompress, make a new cd .
2.
A tip might be to download the update.tgz from sourceforge, can be found under the 1.0 release
it contains a script 'xmenu' that were created to assist people modify v.l .
It may work for 1.1 aswell, i dont remeber without checking what names i used for images etc .
it is however very easy to edit .
Everything is well explained inside .
Happy hacking !
p.s , adding more adwanced things that have to be in /usr subfolders and so on is a bit more tricky, the whole system have to be 'UnClooped'
That takes much Ram or swapspace and 1.7 gb free diskspace and so on so forth, mail me if you would like to get more info about that ..
Marten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anyone knows how to make a ISO file?
I have a Redhat linux installed on my machine and I'd like to add my applicatio to the ISO and it will be nice to do a linux demo CD-rom?
Could you help me? Thanks!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi!
I posted this message to the mailing list, and wrote email to the author, but have recieved 0% responce (?) can someone please acknowledge the accuracy or not and help with the questions?
[POSTED 5/13/02 to virtual-linux-support mailing list]
--------------------------------------------------------------------------------------------------
Hi Everyone! (Mrten especially!)
I have been following this project since the release of VL10devrelease1.iso
I have to say, that I have found this project to very interesting. I have also seen other CDROM based distribution like knoppix (http://www.knopper.net/knoppix) that can boot from cdrom into a stand alone Linux environment. However, this project's approach is much closer to a REAL Linux install.
Now, onto what I started to write ... How It All Works.
In a nut shell the filesystem is abstracted into two parts; the static files, and the dynamic files. The static files are stored on the cdrom in a compressed loopback file (cloop) mounted in the root of the ramdisk. The dynamic files are in the initrd that get loaded at boot time and stored in the ramdisk (ram0). Additionally, files saved to disk during previous runs are loaded into the ramdisk over writing what was loaded by the initrd. In addition to the dynamic files, there are symbolic links that point to every static file in the .virtual_root folder. The system is essentially a standard Mandrake install except for some small parts in the startup and shutdown. Here is what I have been able to determine;
(please correct me or fill in where I'm wrong or missing something)
OPERATION:
->power
->bios
->cdrom boot
->isolinux (see isolinux.cfg)
->load Linux kernel (vmlinux)
->load initrd (initrd.gz)
[KERNEL STARTS - with initrd.gz loaded into ram0 as root]
->/bin/init (init 3 or init 5 from the isolinux.cfg. 3 being multiuser and 5 being x11)
->/etc/rc.d/rc.sysinit
->/bin/findcd
(umount /initrd)
(compress ramdisk)(new ... nice!)
(make /.virtual_root directory)
(mount /proc)
(load scsi module)
(loops through cdrom drives looking for virtual Linux cdrom)
[CDROM FOUND]
(load cloop kernel driver (pointing to found iso.compressed image)
(mount cloop (device) image to /.virtual_root)
(mount devfs)
(mount devpts)
(exit (return) to rc.sysinit)
[CDROM NOT FOUND]
(bombs out waiting for user to reboot)
[VARIOUS OTHER INIT STUFF] (setting clock, keymap, ect.)
->/bin/vlutil swap
(creates a list of known swap partitions and dumps them into /etc/fstab)
(turns swap on)
(exit (return) to rc.sysinit)
[FSCK removed]
[MTAB clear removed]
[VARIOUS OTHER INIT STUFF] (setting hdparam, modules, devfsd.)
->/bin/vlutil locate
(creates a list of known hard disk)
(tries to mount all known hard disk and puts links onto /root/Desktop/...)
(exit (return) to rc.sysinit)
->/bin/vlutil settings
[checks /proc/cmdline for clean=]
(if yes, clear the virt_linux folder off hard disk)
(if no, load saved files over-writing initrd)(root.tgz, etc.tgz, update.tgz, etc.)
(exit (return) to rc.sysinit)
[VARIOUS OTHER INIT STUFF] (/etc/init.d/mandrake_everytime, etc.)
[init level 3 (multiuser) or 5 (X11) called by init](see isolinux.cfg)
[** SYSTEM IS UP AND RUNNING **]
[LOGIN](root account)
->.bashrc
(checks to see if /etc/.configure is present)
(if yes -> normal login)
(if no -> runs drakeconf in a loop until user cancels -> then normal login)
[SHUTDOWN REQUESTED (init 6)]
->/bin/init 6
->/etc/rc.d/init.d/halt
[VARIOUS OTHER INIT STUFF]
->/bin/vlutil umount
saves /etc & /root as tar gzip archives to the virt_linux folder
unmounts all mounted filesystems
[** SYSTEM REBOOTS **]
FILES REFERENCED:
/etc/rc.d/rc.sysinit (modified)
/etc/rc.d/init.d/halt (modified)
/bin/findcd (added)
/bin/vlutil (added)
/etc/.configure (used)
$vfat/virtual_root (added, used for storage & settings)
QUESTIONS:
A few questions I have are;
1) Does the cdrom really need to have the (initrd?) filesystem present. If the files are being
loaded from the initrd.gz and the virt_linux/*.tgz files, why are they also present on the root of the cdrom?
2) Is there a linuxrc step missing, or is this a leftover from previous versions? (in the isolinux.cfg it refers to init=/linuxrc)
3) Are there any other files, packages, and etc. that have been modified for this project?
(anything not noticeable from the surface?)
Scott Franzyshen
Well , thanks for your very accurate disection of Virtual Linux !
Hmm , mailed me and got no answer ... strange ,, i normally answer all mail no matter what ....
Sorry, must have missed it :(
Answers :
1 : Yes, it must be in /isolinux directory,because isolinux loads it during boot, it is not hidden somewhere as with other boot loaders .
should not be present in / of cdrom ??
2 . i was lazy and created a little /initrd script in the previous small initrd .
i had severe problems with my smaller initrds and decided to go back to one big 20 mb initrd instead, did a quickhack to test, forgot to remove it after .
3 . Well, i have poked a bit here and there, removed some lines in drakxconf and kudzu startup that i don't use, modified rights and ownerships for things to work properly , made a very custom kernel with e2compr and so on, but i have not modified any sourcecode besides drakxconf and kudzu .
I am trying to use everything as is, that is one of the goals for this project .
Do you have any ideas, feel that things should be done different or so ?
I am open for all ideas, and need more people for redoing /bin/vlutil and such, theses scripts look more of a disaster for every release .
Should be trashed and rewritten .
My time is quite limited, i work as remote admin
about 12 hrs /day :(
p,s sorry for my gobbladegook english, not my language really ..
Mrten
Well , thanks for your very accurate disection of Virtual Linux !
Hmm , mailed me and got no answer ... strange ,, i normally answer all mail no matter what ....
Sorry, must have missed it :(
Answers :
1 : Yes, it must be in /isolinux directory,because isolinux loads it during boot, it is not hidden somewhere as with other boot loaders .
should not be present in / of cdrom ??
2 . i was lazy and created a little /initrd script in the previous small initrd .
i had severe problems with my smaller initrds and decided to go back to one big 20 mb initrd instead, did a quickhack to test, forgot to remove it after .
3 . Well, i have poked a bit here and there, removed some lines in drakxconf and kudzu startup that i don't use, modified rights and ownerships for things to work properly , made a very custom kernel with e2compr and so on, but i have not modified any sourcecode besides drakxconf and kudzu .
I am trying to use everything as is, that is one of the goals for this project .
Do you have any ideas, feel that things should be done different or so ?
I am open for all ideas, and need more people for redoing /bin/vlutil and such, theses scripts look more of a disaster for every release .
Should be trashed and rewritten .
My time is quite limited, i work as remote admin
about 12 hrs /day :(
p,s sorry for my gobbladegook english, not my language really ..
Mrten
How do I login? Virtual linux booted from the cd and then got to the login prompt. What should I use for a login id and password? Thanks
Hi !
You log in as Root
No password needed .
This info can be found in the boot menu .
Marten
yes this has to be the best thing since sliced butter. I used an iso editor and added some files to the iso but it has problems booting now. I would like to know how to add custom files and programs to the iso. I would like to add firestarter firewall program that i like to use. This is very slick idea and good luck. If there is anything I may do to help please let me know?
-Rich
fadestyle@hotmail.com
Hi Rich !
Well , there are a few approaches to choose from .
If you have some LinuxKnowledge, the steps named here is trivial, otherwise it might be a start .
1 . copy the following from a vl cdrom :
/isolinux /images .
put them in a new folder on a ext2 or other linux partition ( rights and premissions) .
Open the initrd image found in /isolinux .
i.e
Gunzip initrd.gz
Loopmount it
'mount -o loop -t ext2 initrd /root/test'
Requires a folder named /root/test, and that you have loopdevices etc .
Add whatever you like to the /root/test folder, i.e the image .
Unmount and recompress, make a new cd .
2.
A tip might be to download the update.tgz from sourceforge, can be found under the 1.0 release
it contains a script 'xmenu' that were created to assist people modify v.l .
It may work for 1.1 aswell, i dont remeber without checking what names i used for images etc .
it is however very easy to edit .
Everything is well explained inside .
Happy hacking !
p.s , adding more adwanced things that have to be in /usr subfolders and so on is a bit more tricky, the whole system have to be 'UnClooped'
That takes much Ram or swapspace and 1.7 gb free diskspace and so on so forth, mail me if you would like to get more info about that ..
Marten
Anyone knows how to make a ISO file?
I have a Redhat linux installed on my machine and I'd like to add my applicatio to the ISO and it will be nice to do a linux demo CD-rom?
Could you help me? Thanks!
Hi !
To make a iso in Linux, use mkisofs, is a commandline program found in most distributions .
Requires some switches to work, type "man mkisofs | more" in a console to see the manpages for it .
I have created a howto that will be released soon, it describes the steps needed to add software to VL .
Marten
The Howto that Crixz is refering to in the above post is now online......