FsOS without X11: Difference between revisions

From LFScript
Line 160: Line 160:


         # (Re)generate SSH keys for security
         # (Re)generate SSH keys for security
         if [ "$(which ssh-keygen)" != "" ]; then
         if [ "\$(which ssh-keygen)" != "" ]; then
             for algo in rsa dsa ecdsa ed25519; do
             for algo in rsa dsa ecdsa ed25519; do
                 yes | ssh-keygen -N "" -t ${algo} -f /etc/ssh/ssh_host_${algo}_key
                 yes | ssh-keygen -N "" -t \${algo} -f /etc/ssh/ssh_host_\${algo}_key
             done
             done
         fi
         fi

Revision as of 22:26, 15 April 2017

This package lists all software to be included in the fsOS distribution as a dependency, with the exception of graphical software. It further contains the instructions that configure and brand the distribution.

LFScript can find this software under the name fsos-nox.

Sources


MD5 Checksums:

f7828ddf8eef71a2d269462d9cef3a03  fsos_boot.png
4ad62706f96d28304a501b96ecd107a7  MnmKr16-IBMPC.psf.gz

The file fsos_boot.png is used as background image for the isolinux boot menu on the Live CD. MnmKr16-IBMPC.psf.gz is a custom font which is heavily based on the font presented on http://powerman.name/config/font.html.

Dependencies

File systems:

  • btrfs-progs
  • ntfs-3g

Tools:

  • cpio
  • nano
  • postlfs
  • screen
  • unrar
  • which

Sound:

  • alsa-utils

Networking:

  • dhcpcd
  • networkmanager
  • nmap
  • openssh
  • rsync
  • traceroute
  • wget
  • whois
  • wpa_supplicant

Installation and Live CD:

Installation

As the root user:

# Install the custom font
mkdir -pv /usr/share/consolefonts
mkdir -pv /etc/sysconfig

cat MnmKr16-IBMPC.psf.gz > /usr/share/consolefonts/MnmKr16-IBMPC.psf.gz

cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

FONT="MnmKr16-IBMPC -m 8859-1"

# End /etc/sysconfig/console
EOF

As the root user:

# Prepare a LiveCD configuration with a graphical boot menu
local LIVEDIR="usr/share/live"

mkdir -pv /${LIVEDIR}/medium/boot/isolinux
cat fsos_boot.png > /${LIVEDIR}/medium/boot/isolinux/fsos_boot.png 

cat > /${LIVEDIR}/medium/boot/isolinux/isolinux.cfg << "EOF"
DEFAULT vesamenu.c32
PROMPT 0
TIMEOUT 300

MENU BACKGROUND fsos_boot.png

MENU COLOR border 0 #00000000 #00000000 none
MENU COLOR title  0 #00000000 #00000000 none
MENU COLOR tabmsg 0 #00000000 #00000000 none
MENU COLOR unsel  0 #FFFFFFFF #00000000 none
MENU COLOR hotkey 0 #FFFFFFFF #00000000 none
MENU COLOR sel    0 #FF006080 #FFFFFFFF none
MENU COLOR hotsel 0 #FF006080 #FFFFFFFF none

MENU VSHIFT 15
MENU MARGIN 22
MENU ROWS 4
MENU TIMEOUTROW -1
MENU CMDLINEROW -1

INCLUDE i486.cfg
INCLUDE i586.cfg
INCLUDE i686.cfg
INCLUDE x86_64.cfg
INCLUDE memtest86plus.cfg

LABEL harddisk
    MENU LABEL Boot from first ^Hard disk
    LOCALBOOT 0x80

EOF

cat > /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfg << "EOF"
LABEL system_<ARCH>
    MENU LABEL ^Boot fsOS (<ARCH>, default)
    KERNEL /boot/<ARCH>/vmlinuz
    APPEND initrd=/boot/<ARCH>/initram.fs quiet

LABEL system_<ARCH>_force_vga
    MENU LABEL ^Boot fsOS (<ARCH>, 1024x768)
    KERNEL /boot/<ARCH>/vmlinuz
    APPEND initrd=/boot/<ARCH>/initram.fs quiet vga=792
EOF
sed -i "s/<ARCH>/$(uname -m)/g" /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfg

As the root user:

# If this system is to be used as a Live CD, configure it as such
cat > /${LIVEDIR}/sec_init.sh << EndOfFile
#!/bin/busybox sh

# This script modifies the system at boot time, but only if it is started from
# a Live CD. This way, the system image remains clean of any Live CD specific
# settings, and can be installed to harddisk as a normal OS.

# Print a welcome message before login
b="\033[1;34m" # Light Blue
c="\033[0;1m"  # Bright White
d="\033[1;33m" # Bright Yellow
e="\033[1;31m" # Bright Red

(/bin/busybox clear;
 echo -en "\${b}______________________________________________________________";
 echo -e "___";
 echo -e "";
 echo -e "\${c}  Welcome to the 'From Script' Live OS! ";
 echo -e "";
 echo -e "\${b}    Created on \${d}_DATE_STAMP_\${b}.";
 echo -e "\${b}    Created with an \${e}$(uname -m)\${b} processor.";
 echo -e "\${b}    You are now using an \${e}\\m\${b} processor.";
 echo -e "";
 echo -e "\${c}  Login instructions:";
 echo -e "\${b}    In addition to the 'root' account, an unpriviledged account";
 echo -e "\${b}    called 'user' is also available. There is no password set";
 echo -e "\${b}    for either account.";
 echo -en "\${b}______________________________________________________________";
 echo -e "___";
 echo -e "\033[0m") > \${ROOT}/etc/issue

# Configure users
cat > \${ROOT}/etc/rc.d/rcS.d/S80livesetup << "EOF"
#!/bin/sh

case "\${1}" in
    start)
        # Add a normal user with sound card privileges
        groupadd user
        useradd -m user -g user -G audio

        # Remove passwords for LiveCD users
        echo "user:" | chpasswd
        echo "root:" | chpasswd

        # (Re)generate SSH keys for security
        if [ "\$(which ssh-keygen)" != "" ]; then
            for algo in rsa dsa ecdsa ed25519; do
                yes | ssh-keygen -N "" -t \${algo} -f /etc/ssh/ssh_host_\${algo}_key
            done
        fi
        ;;
    *)
        echo "Usage: \${0} {start}"
        exit 1
        ;;
esac
EOF
chmod 755 \${ROOT}/etc/rc.d/rcS.d/S80livesetup

EndOfFile
chmod +x /${LIVEDIR}/sec_init.sh

Post-installation

Note: Post-installation of this software should be performed after all other software has been installed.

local LIVEBOOT="/usr/share/live/medium/boot"
# Slightly change the colors of the "OK" messages on boot
sed -i 's@#BRACKET="\\\\033\[1;34m" # Blue@BRACKET="\\\\033\[0;34m"@g' \
        /etc/sysconfig/rc.site
sed -i 's@#SUCCESS="\\\\033\[1;32m" # Green@SUCCESS="\\\\033\[1;34m"@g' \
        /etc/sysconfig/rc.site
# Apply a datestamp
local DATESTAMP="$(date +%B\ %d,\ %C%y)"
sed -i "s@_DATE_STAMP_@${DATESTAMP}@g" /usr/share/live/sec_init.sh
# Ensure the installed version of syslinux' vesamenu is copied to the live cd
cp -v /usr/share/syslinux/vesamenu.c32 ${LIVEBOOT}/isolinux
cp -v /usr/share/syslinux/libcom32.c32 ${LIVEBOOT}/isolinux
cp -v /usr/share/syslinux/libutil.c32  ${LIVEBOOT}/isolinux
# If memtest has been installed, make it available in the live cd boot menu
[ ! -r /boot/memtest86plus ] ||
cp -v /boot/memtest86plus ${LIVEBOOT}

[ ! -r /boot/memtest86plus ] ||
cat > ${LIVEBOOT}/isolinux/memtest86plus.cfg << "EOF"
LABEL memtest86plus
    MENU LABEL ^Memory test (Memtest86+)
    KERNEL /boot/memtest86plus
EOF
# Set distribution codename
sed 's/<your name here>/fsOS (LFScript 4)/g' -i /etc/lsb-release