Installing CRUX
Supported Hardware / Requirements
Packages on the official CRUX ISO image are compiled with optimization for x86-64 (AMD Athlon 64, Intel Core, Intel Atom) or newer processors. Do not try to install it on an i686 (Pentium-Pro, Celeron, Pentium-III) or lower processor, since it simply will not work.
A minimum of 768MB system memory is required to install CRUX from a CD-ROM or removable flash drive. It is possible to perform a custom chroot installation with only 16MB of RAM.
The kernel used during installation, i.e. when booting from the CRUX ISO image (El Torito), is compiled with the following disk controllers and USB support:.
Subsystem | Driver(s) included in bootkernel |
PATA/IDE | ALi, AMD/Nvidia, ARTOP 6210/6260, ATI, CMD64x, CS5510/30/35/36, Cypress CY82C693, EFAR SLC90E66, HPT 34x/36x/37x, ITE 8211/12/13, JMicron, Marvell, NETCELL Revolution, Ninja32/Delkin, Nat Semi NS8741x, Intel PIIX/SCH/MPIIX, OPTI FireStar/621x, Promise, RADISYS 82600, SC1200, SERVERWORKS OSB4/CSB5/CSB6/HT1000, CMD / Silicon Image 680, SiS, Compaq Triflex, VIA, Winbond SL82C105, ISA Plug & Play, PC Tech RZ1000, Generic |
SATA | AHCI, Intel ESB/ICH/PIIX, Initio 162x, Silicon Image/Silicon Image 31xx, Pacific Digital ADMA/QStor, Promise SX4/TX2/TX4, Marvell, Nvidia, SiS 180/96x, Broadcom/ServerWorks/Apple K2, ULi, VIA, Vitesse VSC7174/Intel 31244 |
SCSI/SAS | 3Ware 5/6/7/8/9xxx, HP Smart Array, 7000FASST, ACARD, Adaptec AHA15xx/28xx, Adaptec AACRAID, Adaptec AIC7xxx/79xx/94xx, Adaptec I20, Marvell 88SE64xx/94xx, Advansys, Always IN2000, ARECA 11xx/12xx/13xx/16xx, LSI Logic New/Legacy/MegaRAID/MPT, HighPoint RocketRAID 3xxx/4xxx, BusLogic, VMware PVSCSI, DMX3191D, DTC 3x80, EATA, Future Domain 16xx/Adaptec AHA2920A, Intel/ICP, IBM ServeRAID/Power Linux, Initio 9100U/INI-A100U2W, NCR53c406a, Promise SuperTrak EX, SYM53C8xx, PAS16, Qlogic FAS, Qlogic QLA 1xxxx/2xxx, Qlogic ISP 4xxx/82xx, Emulex LightPulse FC, Symbios 53c416, Tekram DCxxx, Trantor Txxx, UltraStor, UltraStor 14F/34F |
USB | EHCI HCD (USB 2.0) support, UHCI (Intel PIIX4, VIA, ...) support, OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support, USB Mass Storage support, USB Human Interface Device (full HID) support, HID input layer support |
In order to install CRUX, your disk controller must be present in the list above. If your hardware is not supported or you have other problems installing CRUX, you might find a solution in the CRUX wiki.
Installing From CD-ROM or removable flash drive
Download the CRUX ISO image (crux-3.6.iso). To ensure that the download was successful, examine its checksum using md5sum.
$ md5sum crux-3.6.iso
Compare the output with the file crux-3.6.md5, which can be found in the same directory as the ISO image on the download site. If the checksums match, the download was successful and you can continue by burning the ISO image to a CD or writing it to a removable flash drive.
- The ISO image is bootable, just insert the newly-written CD or removable flash drive and reboot your computer. Press
Enter
at the boot prompt (you might have to adjust the root=
parameter, depending on your hardware configuration).
- You will be logged in as root on tty1 (root has no password set).
- Create (if necessary) and format the partition(s) you want CRUX to be installed on.
$ fdisk /dev/sd?
$ mkfs.???? /dev/sd??
$ mkswap /dev/sd??
Note
Please keep in mind that SATA harddisks are usually detected as SCSI devices. The first SATA disk is called /dev/sda instead of /dev/hda. For more information about harddisk naming conventions please refer to the Linux Partition HOWTO.
The amount of disk space required depends on how many packages are selected to install. It is recommended to have at least a 1G root partition (CRUX will use about 200MB-500MB, depending on your configuration).
Note: UEFI
For UEFI installation a GPT disklabel and an EFI system partition (ESP) are required in most cases. The ESP does not need to be very large (100MiB for example) and should be formatted with a FAT32 filesystem and flagged as bootable. When using UEFI the boot loader/manager will be installed in the ESP rather than the traditional method of installation into the Master Boot Record (MBR).
CRUX supports all the filesystems supported as root filesystems by the Linux kernel: btrfs, ext2, ext3, ext4, JFS, reiserfs and XFS.
Further, it is highly recommended to separate the system data from user data, i.e. use a separate partition for /home (and possibly /var) since that will make your life a lot easier the day you want to upgrade, reinstall or remove your system.
Note
Make sure the appropriate userspace filesystem tools are installed. xfsprogs, btrfs-progs, jfsutils and reiserfsprogs can be found in the opt repository.
Note
Make sure that any BIOS Virus Protection option is DISABLED as this option may prevent fdisk from writing new partitions correctly.
- Mount the partition on which you want to install this distribution.
$ mount /dev/sd?? /mnt
If you want the installation to span more than one partition, mount those partitions as well. For example, if you want to have a different partition for /home or /var, then do:
$ mkdir /mnt/var
$ mount /dev/sd?? /mnt/var
- Activate your swap partition(s).
$ swapon /dev/sd??
- Type setup to start the package installation script. The script will ask where you mounted your new root partition and which packages you want to install. Select the packages you wish to install; it is recommended to install all the packages from core.
Note: UEFI
If installing a UEFI system make sure to select the efibootmgr and grub2-efi packages from the opt collection during the package selection phase.
After the packages have finished installing, the setup script will display an installation log. Make sure the last line in the log says “0 error(s)”
.
If you missed or forgot to install certain packages, you can just mount the CRUX installation medium and use pkgadd to install them.
Screenshots of setup
- Now it's time to compile your kernel and do basic system configuration. The kernel compilation requires that you “chroot” into your new CRUX installation.
Note
There is a shortcut command for creating the chroot environment: setup-chroot. This will execute all these steps at once.
$ mount --bind /dev /mnt/dev
$ mount --bind /tmp /mnt/tmp
$ mount --bind /run /mnt/run
$ mount -t proc proc /mnt/proc
$ mount -t sysfs none /mnt/sys
$ mount -t devpts -o noexec,nosuid,gid=tty,mode=0620 devpts /mnt/dev/pts
(UEFI only) $ mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
$ chroot /mnt /bin/bash
$ passwd
- Edit /etc/fstab to configure your filesystem(s). Editors vim and nano are available.
- Edit /etc/rc.conf to configure font, keyboard, timezone, hostname and services. See Section "Configuration Variables in /etc/rc.conf" for details about /etc/rc.conf.
- Generate locales for your system. See section "Generating locales" for more information.
- Edit /etc/rc.d/net, /etc/hosts and /etc/resolv.conf to configure your network (ip-address/gateway/hostname/domain/dns).
- Go to /usr/src/linux-5.4.x, configure and compile a new kernel.
Note
Make sure to include drivers needed to bring up your root filesystem! Such as "SCSI disk support", filesystem and disk controller. For example:
- CONFIG_SATA_AHCI=y
- CONFIG_BLK_DEV_SD=y
- CONFIG_EXT4_FS=y
Note
The setup program installs a configuration file /usr/src/linux-5.4.x/.config which is a good starting point for a custom kernel, because all needed options, like CONFIG_DEVTMPFS, are enabled.
$ cd /usr/src/linux-5.4.x
$ make menuconfig
$ make all
$ make modules_install
$ cp arch/x86/boot/bzImage /boot/vmlinuz
$ cp System.map /boot
- If installing a BIOS-based system:
- Edit /etc/lilo.conf to boot the kernel you just compiled and run lilo to make the new system bootable.
If you plan to use GRUB (which is included in the ISO) make sure you read the
installation notes in the appendix of this document.
- If installing a UEFI-based system:
- Install grub2 into the ESP using the command grub-install /boot/efi.
- Generate a grub2 configuration file using the command grub-mkconfig -o /boot/grub/grub.cfg.
Replace
/boot/efi with the location of the mounted ESP. If
efibootmgr was selected during the package selection phase grub-install will automatically create a boot entry and make it active.
More information about UEFI and other boot loader/manager options can be found in the CRUX wiki at
https://crux.nu/Wiki/UEFI.
- Remove the CRUX installation media from your computer and reboot from harddisk.
Upgrading From CD-ROM or removable flash drive
Download the CRUX ISO image (crux-3.6.iso). To ensure that the download was successful, examine its checksum using md5sum.
$ md5sum crux-3.6.iso
Compare the output with the file crux-3.6.md5, which can be found in the same directory as the ISO image on the download site. If the checksums match, the download was successful and you can continue by burning the ISO image to a CD or writing it to a removable flash drive.
- The ISO image is bootable, just insert the newly-written CD or removable flash drive and reboot your computer. Press
Enter
at the boot prompt (you might have to adjust the root=
parameter, depending on your hardware configuration).
- You will be logged in as root on tty1 (root has no password set).
- Mount your CRUX root partition.
$ mount /dev/sd?? /mnt
If your installation spans over more than one partition, mount these partitions as well. For example, if you have a different partition for /var, then do:
$ mount /dev/sd?? /mnt/var
- Activate your swap partition(s).
$ swapon /dev/sd??
- Type setup to start the package installation script. The script will ask you where you mounted your root partition and which packages you want to upgrade. To avoid running into trouble (e.g. a new version of some library isn't 100% backwards compatible), it is a good idea to upgrade all packages.
Note
The setup script uses the /etc/pkgadd.conf of the target system to determine which files to upgrade, and which files not to upgrade. The files that are not upgraded are put in /var/lib/pkg/rejected/ (Section "Upgrading a Package").
When the setup script has upgraded the selected packages an upgrade log will be displayed. Make sure the last line in the log says “0 error(s)”
. If you missed/forgot to install certain packages, you can just mount the CRUX installation media and use pkgadd to install them (e.g. pkgadd /mnt/crux/opt/package#1.0-1.pkg.tar.gz).
- Now it's time to compile your kernel. The kernel compilation requires that you “chroot” into your CRUX installation.
Note
There is a shortcut command for creating the chroot environment: setup-chroot. This will execute all these steps at once.
$ mount --bind /dev /mnt/dev
$ mount --bind /tmp /mnt/tmp
$ mount --bind /run /mnt/run
$ mount -t proc proc /mnt/proc
$ mount -t sysfs none /mnt/sys
$ mount -t devpts -o noexec,nosuid,gid=tty,mode=0620 devpts /mnt/dev/pts
(UEFI only) $ mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
$ chroot /mnt /bin/bash
- Generate locales for your system. See section "Generating locales" for more information.
- Go to /usr/src/linux-5.4.x, configure and compile a new kernel.
- Adjust /etc/fstab if needed.
udev reads files in /sys/* and /proc/*.
Make sure that those pseudo filesystems are enabled in your kernel configuration and available during system-startup. Also note that udev doesn't automatically mount /dev/pts.
Terminal applications such as xterm(1) will not work if you forget to mount it. We highly recommend you check your
fstab file:''
# <dev> <dir> <type> <options> <dump> <pass>
[..]
devpts /dev/pts devpts noexec,nosuid,gid=tty,mode=0620 0 0
- If installing a BIOS-based system:
- Edit /etc/lilo.conf to boot the kernel you just compiled and run lilo to make the new system bootable.
If you plan to use GRUB (which is included in the ISO) make sure you read the
installation notes in the appendix of this document.
- If installing a UEFI-based system:
- Install grub2 into the ESP using the command grub-install /boot/efi.
- Generate a grub2 configuration file using the command grub-mkconfig -o /boot/grub/grub.cfg.
Replace
/boot/efi with the location of the mounted ESP. If
efibootmgr was selected during the package selection phase grub-install will automatically create a boot entry and make it active.
More information about UEFI and other boot loader/manager options can be found in the CRUX wiki at
https://crux.nu/Wiki/UEFI.
- Remove the CRUX CD-ROM from your drive and reboot from harddisk.