Customizing Bluewhite64: Part 2
Bluewhite64 is best when it has your own settings and preferences loaded during start-up. It is automatic when the persistent changes feature is enabled, and can be adapted to optical disc or USB versions by combining all changes into a single loadable module. In fact, the base modules of Bluewhite64 can be rebuilt to incorporate user preferences and software updates.
Creating numerous configuration modules eventually will use a lot of system resources, slow down the boot process, and consume an inordinate amount of drive space. A more efficient way to manage the customized configuration modules in Bluewhite64 is to use the second option of this article: combine them into a single module providing all of the desired changes from the basic set-up. There are scripts on the internet that do this automatically, but the essence of the procedure will be covered here. At the heart of the processs are two operations: extracting module components into an existing folder via the "lzm2dir" command and building a module from a folder via the "dir2lzm" command. What is special about module extraction is that multiple modules can be extracted to the same folder, and files are written on a one for one basis.
For example, /root and /usr are extracted from a module, and are written as subfolders into a folder called "NEWCONFIG", which will take data from the user\'s dozens of config modules. Files in /root and /usr will be untouched unless a subsequent config module contains files with identical names in its versions of /root and /usr. If the user has the latest version of Firefox, with all of his favorite plug-ins, only the last extracted versions of particular files will remain. After some basic file pruning, a new module is then created with all prior changes incorporated. Below is a procedure for combining numerous customized Bluewhite64 configuration modules into one:
- On a hard drive or flash memory device, create a folder named NEWCONFIG (for example, /mnt/sda1/NEWCONFIG/).
- Navigate to the /slax/modules folder, and open a console window.
- In sequence, from oldest to newest, extract files from all config modules into the new folder (lzm2dir slaxconf1 /mnt/sda1/NEWCONFIG/)
- Close the console window.
- Navigate to the NEWCONFIG folder and examine its contents; there should be a series of folders resembling the Linux file system.
- Remove anything not intended to go into the new configuration module, or edit files you want to start clean.
- Navigate up one level, to the folder containing "NEWCONFIG" and open a new console window.
- Execute the command "dir2lzm NEWCONFIG slaxconf_all.lzm" to create a customized Bluewhite64 configuration module.
- Close the console window, and move the new module into the /slax/modules folder.
- Move all of the old modules to a safe location, or append "~" to their filenames to prevent loading at next start-up.
- Reboot into Bluewhite64 and verify that the new module properly incorporates the Bluewhite64 customization from old configuration modules.
Making small changes to the module is simple, and can be done on the desktop. Simply copy the module onto the desktop, extract the contents into a folder, then make the desired file and folder changes. Execute a dir2lzm command on the folder, and place the new module into the /modules directory. Reboot and test.
Now consider the third option for customizing Bluewhite64: remaking the base modules. This technique consumes the least drive space and the least resources overall, though it must be re-accomplished after any upgrades to Bluewhite64 are published. In other words, if you have Bluewhite64 version 12.2 and download version 12.4, the changes for the base modules must be saved and re-written onto the new system. Otherwise, the procedure is similar to creating a unified Bluewhite64 configuration module:
- On a hard drive or flash memory device, create a folder named NEWBASE (for example, /mnt/sda1/NEWBASE/).
- Within NEWBASE, create subfolders for each Bluewhite64 base module (bin, etc, home, lib32, lib64, and so forth).
- Navigate to the /Bluewhite64/base/ folder, and open a console window.
- Extract files from the module "bin.lzm" into the NEWBASE/bin folder (lzm2dir bin.lzm /mnt/sda1/NEWBASE/bin)
- Extract files from the other base modules into their respective NEWBASE subfolders
- Close the console window.
- Move the old base modules to a safe place, or change their extensions from lzm to lzm~
- Navigate to the NEWBASE folder and examine its contents; there should be a series of folders with Bluewhite64 core files.
- Navigate in the subfolders, removing anything not intended to go into the new base module, or edit files you want to start clean.
- Copy files from your /changes folder or config modules, if used, into their respective base subfolders
- Navigate to the NEWBASE folder and open a new console window.
- Execute the command "dir2lzm bin bin.lzm" to create a customized "bin" base module.
- Create a new module for each of the other subfolders: etc, home, lib32, and so forth.
- Close the console window, and move the new modules into the /Bluewhite64/base folder.
- Reboot into Bluewhite64 and verify that the new core modules properly load and incorporate your Bluewhite64 customizations.
In conclusion, there are a number of ways to accomplish Bluewhite64 customization as well as the implementation of persistent changes for specific things the user intends to retain after system reboots. When incorporated into modules, a Bluewhite64 customization may edited to suit the user, stored for safekeeping, and shared with others who want the same operating charachteristics. These ideas are not strictly limited to customizing Bluewhite64, and may be applied to other similar Linux distributions. For example, Backtrack uses a similar modular format, and though it has a long upgrade cycle, it is easily customized and numerous special versions exist. Puppy Linux also comes to mind representing a modular Debian based distribution. Go ahead and imagine what your favorite distro could be, and then customize it until it is perfect for your needs!