Downloads | ChangeLog | Home

Last Update: 2011-11-05

I am including the INSTALL file on this site to allow translation of the INSTALL file with google_translate for non-English users.


1. ISO Install to USB
2. ISO Install to Hard-Drive
3. Manual Install to Hard-Drive
4. LILO Usage
5. In RO-FS Mode
6. Locale Note

This is the INSTALL file for the Cheix LongLife USB.

This INSTALL file is posted on so that you
can translate it with online translation services.

NOTE: Cheix uses an unaltered Slackware installer iso. The Cheix files
      are added to the initrd but nothing in the initrd is altered.

NOTE: All installation is performed as "root".

NOTE: Be aware that your BIOS may change the boot order if you use more
      one USB.

ISO Install to USB

The USB install which creates a bootable USB is identical to the ISO
Install to Hard-Drive except for what follows. You might read the
hard-drive bit first and then come back here to see the differences.

The USB Device

My USB comes up as /dev/sdb. If yours is different, you can run

  tail -f /var/log/messages

and then plug in your USB. The output will show you what device is

Partitioning the USB

  cfdisk /dev/sdb

The minimums are:  

    /            370          sdb1
    /boot         20          sdb2
    /storage     remainder    sdb3


When inititalizing the partitions in the Slackware installer, use ext3
in case we need syslinux's extlinux or similar down the line.

I am booting with the generic kernel and an initrd. To create an initrd.gz
in /boot from the installer, boot back into the regular box after finishing
the Cheix install.  Then do the following:

   mkdir -p /mnt/usb
   mount /dev/sdb1 /mnt/usb
   mount /dev/sdb2 /mnt/usb/boot
   mount -o bind /proc /mnt/usb/proc
   chroot /mnt/usb
   cd /boot
   mkinitrd -c -m usbcore:ehci-hcd:uhci-hcd:ohci-hcd:usb-storage:ext3 -f ext3 -r /dev/sdb1 -w 5
   rm -r initrd-tree/

NOTE: You may need to add "-k [kernel version] to the mkinitrd line.

While still chrooted in the USB image, put the following into
/etc/lilo.conf  (See example in dist's /root/install/)

Up at the top enter:
  boot = /dev/sdb
For booting:  

image = /boot/vmlinuz
  initrd = /boot/initrd.gz
  root = /dev/sdb1
  label = Linux

/boot/vmlinuz is a link to the generic kernel.  Then run:
lilo -v -b /dev/sdb
When I run this with both the generic and the huge wired in, I get 11
warnings but it works just fine.

ISO Install to Hard-Drive

Download the Cheix ISO from and burn to CD

    cdrecord -v /path/to/cheix_filename.iso

Place the CD in the target machine and boot the CD. So that Cheix can
run on older machines as well as newer ones, Cheix uses non-smp kernels
and modules. So at the syslinux boot prompt you MUST enter:

    boot: huge.s    

Choose your keyboard and hit [enter] at the Slackware login prompt. We
are going to use multiple terminals in the installer. So in this first
terminal, tty1, enter:

    less INSTALL.cheix

The hit ALT-F2 and enter to get a second terminal, tty2. (ALT-F1 will
bring you back here.) In this terminal we first need to partition the
disk. I put my Cheix HD install on three partitions at the end of the
hard-disk. You can actually run only Cheix on a box if you want. Cheix
is intended to install on a minimum of a 500Mb USB. So the minimum
partitions are:

    /root      370Mb
    /boot       20Mb
    /storage   100Mb    

In Cheix, /home is transient in tmpfs. All permanent, non-system files
(ie your files) will go in the /storage partition. At the tty2 prompt,


Use cfdisk to create the three Cheix partitions. Cfdisk will round your
sizes up or down. Just make sure you have at least the 370 for / and 20
for /boot. Write down the sda/hda numbers so you don't forget what is
what. Use cfdisk to "Write" the changes to the partition table and exit
cfdisk. Then enter the Slackware install in tty2 by entering:


Set your KEYMAP if you need to. Because Cheix is intended to be a secure
symbiotic image operating within another running OS, Cheix does not use
swap. Set up your TARGET partitions, using the results from cfdisk. For
HD install, you can use ext4 or any other fs of your choice for all


    4  Install from FTP/HTTP server

and plug in your ethernet cable. The Slackware installer should
initialize your eth0 interface using the next dialog box. Now hit ALT-F3
for a tty3 and enter:

    cat ftp.infos

Use that information back in tty2 to set up your connection to a
repository. Add "/slackware" to the end of the ftp's directory path if
it doesn't end that way already. These FTP/HTTP dialog boxes are a bit
confusing. Read them slowly or you will think you don't have a
repository online when you actually do have one.

In PACKAGE SERIES SELECTION, de-select everything except A, AP, L, and N.

In SELECT PROMPTING MODE, choose "tagpath" and enter "/gust" in the
dialog (without the quotes, silly.)  You can use GUST to build your
own tagfiles, if you wish to alter the packages.

At this point the installation will start over the Net from the FTP/HTTP
repository. I have tested this install many times. Sometimes you will
get a download failure. For most of these, you can simply install it
later from inside Cheix. And some of the failures aren't actually
failures. If an important package does not download, you can download it
on another connection to a USB and install it by hand before rebooting
into Cheix. So far, I have never had to re-run the entire networked
installation.  But I have had to be creative.

When the install over the net is done, skip the USB Boot option. If
Cheix is the only image on the box, let LILO install automatically.
Otherwise, see LILO Usage below. I would go ahead and configure your
network's eth0 connection. The add the sasl daemon to the default
STARTUP SERVICES. Set a password and you are done with Slackware's

Then run


to complete the Cheix install. This script is only run from the CD, not
for hand installs.

Manual Install to Hard-Drive

To install Cheix:
    a usb device
    a cdrw drive to burn an ISO to CD
    GUST installed on your normal machine (see links on freshmeat)

Download the Cheix tarball, and the packages: boypages, clex, nvi, and
rho from the cheix site. Unpack the beta tarball onto the usb which will
create a /root/ directory there. Copy the packages onto the usb.

In the sm-[ver]-cheix.gust file, if you are installing to a box that
already has lilo, delete the following lines:

Assuming your usb is at /mnt/usb run:

    gust /mnt/usb/root/install/sm-13.37-cheix.gust destdir=/mnt/usb/chxtags

This will create your tagfiles.  Run:


This creates sous-marin.iso in /tmp.  As root, burn this to cd with:

    cdrecord -v /tmp/sous-marin.iso


After the ISO install instructions are followed, we start the Cheix
install. First enter

  cp cheix-beta-nn.tar.bz2 /mnt/storage/chxrt.tar.bz2

where nn is the version number.  The cheix packages are in /chx-pkgs.
To install them:

  cd /mnt
  ROOT=/mnt removepkg elvis
  installpkg --root . ../chx-pkgs/*.tgz
  cd usr/bin
  rm vi
  ln -s nvi vi

Now we fix /etc/fstab.

  vi (or nano) /mnt/etc/fstab

Your three cheix partitions need their settings changed.  / and /boot
should end in

  defaults,ro   0  0

and /storage should end in

  defaults      0  0

save and exit the editor.  Now for the final bit.

  cd /mnt
  tar xjf /cheix-beta-nn.tar.bz2
  chroot . root/install/

Remove the installer CD and reboot the box.

LILO Usage

We have two boot cases:

ONE: machine with previous Slackware installation and lilo

    Log in as root in original installation. Mount the cheix /boot
    partition (ie /dev/sda6) and cp cheix's generic kernel to the normal
    installation's /boot dir.

        ln -s [that new kernel] vmlinuzCHX
    Create an initrd.gz (assumes cheix root is sda5)

        cd /lib/modules
        ln -s /mnt/hd/lib/modules/[kernel version on cheix]
        mkinitrd -c -m ext4 -k [kernel version on cheix] -r /dev/sda5

    Add a lilo.conf entry:

        image = /boot/vmlinuzCHX
        root = /dev/sda5
        initrd = /boot/initrd.gz
        label = cheix

    Run `lilo` and reboot into cheix.    

TWO: machine with cheix only

    Reboot into the installation.  cd into /boot and
    create an initrd and lilo.conf entry as above.
    Skip -r and -k options in this case.
    Run `lilo` and reboot into cheix.  Once you
    know you can boot into it run removepkg on the
    kernel-huge package.
NOTE: mkinitrd package requires cpio and findutils. 

REBOOT the machine into the new Cheix USB install and you will be in
ro-fs mode.

In RO-FS Mode 


Read the admin docs linked into the lynx bookmark page before doing any
admin on cheix. You must know how to use cheix_admin to preserve the

The /root Directory

With every shutdown /root is archived to /storage/chxrt.tar.bz2 and with
every boot it is loaded from that file. ALL /root FILES ARE PRESERVED.
You can delete the cheix tarball's contents whenever you are done fiddling
with them.

User Space

Log in as "user". This will give you a terminal, clex, and lynx's
homepage with the Cheix docs. Remember that if you want to change
.screenrc or clex's config permanently, the changes have to be stored in
/storage/skel (see user docs).  To save clex's config, copy ~/.config
to skel.

We want a user's home directory that keeps no files, but that is loaded
with selected files (dot-files, etc) and has access to permanent
storage. The cheix_home|storage|secure are used for this.

What we have, if you look at the new run-control scripts, are three
mounted partitions: / /boot /storage. The first two are read-only,
/storage is read-write. And /home is mounted in tmpfs. In it is
/home/user with a link to storage in user. All the files in
/storage/skel have been copied to /home/user.

When you shutdown, everything in /home/user goes away. So if you want a
file loaded into /home/user on boot it must be saved to /storage/skel.
As user you can save anything to /storage. 

See Cheix's user docs for more info.

Locale Note

I use Cheix in Slackware's default en_US locale. So I am locale-stupid.
Choosing your keyboard in the installer will do some locale things
for you.  A friend of mine who does his locale settings by hand
sends this note from France:


You just have to put the locale fr_FR in the /etc/profile.d/
Here is mine:

  export LANG=fr_FR.utf8
    export LC_COLLATE=C
# EoF

After, some programs may mess with utf8, or not handle the locale
correctly, but there is almost nothing you can do beneath hacking
their codes. In case cheix would become graphic, some environments
like KDE has their own locale tweaking and... oh yes, X has also his
one for the keyboard. Create the
/etc/X11/xorg.conf.d/90-keyboard-layout.conf file with this content:

  Section "InputClass"
  Identifier "keyboard-all"
  MatchIsKeyboard "on"
  MatchDevicePath "/dev/input/event*"
  Driver "evdev"
  Option "XkbLayout" "fr"
  Option "XkbVariant" "latin9"
  Option "XkbOptions" "terminate:ctrl_alt_bksp"

I think that's it. It's really not a big affair.

If you find you have to do more or something different, write Cheix
and let us know.


author's home page (off-site link)