SLS Filesystem

This is the basic SLS system. To create it, I first started with a folder anywhere on my full Fedora system, this will hereby be called the "SLS" folder. This folder will serve as the root directory of the SLS filesystem. Then, I mounted the other Fedora system that I installed minimally. From here, I proceeded to copy first binaries, and then libraries and config files, from the minimal Fedora system into this folder I created. For some of the other files present, I copied files from the full Fedora installation; these things included the servers and such.

For modules and such, I had the option of either installing a kernel without module support, and be done with that problem, but I decided modules would always be beneficial, especially for a system like SLS, where loading dynamic modules might be a benifit towards the system. I created the folder SLS/lib/modules/2.6.9-small/ and in the next section on compiling the kernel, I installed all modulesto this folder.

For a complete list of all the files within my SLS, either download the system from sourceforge, at https://sourceforge.net/projects/smallnixserver. You can also find a complete file listing in the section called “File Listing of SLS Filesystem”.

To make this file listing, I did a lot of experimentation copying files from Fedora over. I used the command "ldd" to see what libraries each binary used. Much of the decisions to add libraries and or binaries need some prior knowledge of the linux system, which is beyond the scope of this howto. For a learning experiance, it would help greatly to start from scratch and copy basic directories and folders. If you get stuck, look at the file listing or compare it with the actual files from SLS.

For ease of creation, none of the configuration files within SLS were modified from the original fedora system. The exception to this rule are the configuration files for apache web servers and other such servers. Also, remember to modify networking scripts within the /etc/sysconfig/networking-scripts file to accomodate your computer.

Quick Testing

To test if the linux system is working without going through the later stages of creating an initrd or even rebooting, is using chroot. Try chrooting into the SLS directory. If that in itself works, then good job! Now try different commands to see if they work. Much of the time, starting out at first, many commands don't work. Use ldd to see what libraries are required, and try again.

After things start to look like they work, you can test to see if the system will boot or not. Chances are, it won't on first try. To test this, you will have to create a new partition. Place your complete filesystem onto that partition, and then in the grub menu, set root=/dev/hda2 or whatever the partition is. The quickest way to work a kernel now is to simply configure it to disable modules, and change nothing else. There should be various error messages for random things. I found the easiest way to debug this issue was to go inside /etc/rc.sysinit and place in the bash command "read" which pauses the system before it moves on. Use this to stop the boot-up process and view what the error messages are.