Difference between revisions of "Make your own LiveCD using Funtoo Linux"
(→configure /etc/portage/make.conf) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 57: | Line 57: | ||
Get and extract stage3 (64bits) from https://www.funtoo.org/Generic_64 ː | Get and extract stage3 (64bits) from https://www.funtoo.org/Generic_64 ː | ||
{{console|body= | {{console|body= | ||
− | ###i## wget https://build.funtoo.org/1. | + | ###i## wget https://build.funtoo.org/1.4-release-std/x86-64bit/generic_64/stage3-latest.tar.xz -P /mnt/custom |
###i## mkdir -p /mnt/custom/customcd/files ; tar xpf /mnt/custom/stage3-latest.tar.xz -C /mnt/custom/customcd/files | ###i## mkdir -p /mnt/custom/customcd/files ; tar xpf /mnt/custom/stage3-latest.tar.xz -C /mnt/custom/customcd/files | ||
}} | }} | ||
Line 105: | Line 105: | ||
{{console|body= | {{console|body= | ||
− | |||
########################################################################### | ########################################################################### | ||
## ATTENTION: THIS IS THE MAKE.CONF ON THE LIVECD ## | ## ATTENTION: THIS IS THE MAKE.CONF ON THE LIVECD ## | ||
Line 219: | Line 218: | ||
Compile basic tools: | Compile basic tools: | ||
{{console|body= | {{console|body= | ||
− | ###i## emerge app-admin/cpulimit app-admin/hddtemp app-admin/ide-smart app-admin/lib_users app-admin/mcelog app-admin/passook app-admin/procinfo-ng app-admin/sudo app-admin/syslog-ng app-admin/sysstat app-admin/testdisk app-admin/whowatch app-arch/bzip2 app-arch/cabextract app-arch/cfv app-arch/cpio app-arch/dpkg app-arch/dump app-arch/gzip app-arch/lbzip2 app-arch/libarchive app-arch/lz4 app-arch/lzlib app-arch/lzop app-arch/mt-st app-arch/ncompress app-arch/p7zip app-arch/pigz app-arch/pixz app-arch/plzip app-arch/pxz app-arch/rpm2targz app-arch/rzip app-arch/sharutils app-arch/snappy | + | ###i## emerge app-admin/cpulimit app-admin/hddtemp app-admin/ide-smart app-admin/lib_users app-admin/mcelog app-admin/passook app-admin/procinfo-ng app-admin/sudo app-admin/syslog-ng app-admin/sysstat app-admin/testdisk app-admin/whowatch app-arch/bzip2 app-arch/cabextract app-arch/cfv app-arch/cpio app-arch/dpkg app-arch/dump app-arch/gzip app-arch/lbzip2 app-arch/libarchive app-arch/lz4 app-arch/lzlib app-arch/lzop app-arch/mt-st app-arch/ncompress app-arch/p7zip app-arch/pigz app-arch/pixz app-arch/plzip app-arch/pxz app-arch/rpm2targz app-arch/rzip app-arch/sharutils app-arch/snappy app-arch/tar app-arch/unrar app-arch/unshield app-arch/unzip app-arch/xz-utils app-arch/zip app-editors/hexcurse app-editors/hexedit app-editors/vim app-editors/zile app-forensics/foremost app-i18n/uchardet app-laptop/radeontool app-misc/screen app-pda/libimobiledevice app-pda/libplist app-pda/libusbmuxd app-portage/cpuid2cpuflags app-portage/foobashrc app-portage/genlop app-shells/zsh app-text/pastebinit app-text/tree app-text/wgetpaste media-sound/alsa-utils net-dns/bind net-dns/bind-tools net-misc/dhcp net-misc/dhcpcd net-misc/iputils net-misc/ntp net-misc/telnet-bsd net-wireless/iw sys-apps/dcfldd sys-apps/hdparm sys-apps/ipmitool sys-apps/ipmiutil sys-apps/iucode_tool sys-apps/lm_sensors sys-apps/lshw sys-apps/rescan-scsi-bus sys-block/mbuffer sys-block/nbd sys-block/open-isns sys-block/parted sys-block/thin-provisioning-tools sys-block/whdd sys-boot/gnu-efi sys-boot/grub:2 sys-boot/lilo sys-firmware/intel-microcode sys-fs/cryptsetup sys-fs/ddrescue sys-fs/fuse sys-fs/lvm2 sys-fs/mdadm sys-fs/ntfs3g sys-libs/gpm sys-power/acpi sys-process/acct sys-process/atop sys-process/audit sys-process/cronbase sys-process/glances sys-process/htop sys-process/iotop sys-process/lsof sys-process/nmon sys-process/vixie-cron net-analyzer/tcpdump net-fs/nfs-utils net-analyzer/netcat net-analyzer/nmap sys-block/partimage |
}} | }} | ||
Latest revision as of 20:52, December 12, 2019
This tutorial explains Howto build your own LiveCD Funtoo Linux using oficial stage3. After configure the new system using CHROOT, just burn the new ISO file, using the official Área31 Hackerspace tool.
The LiveCD Funtoo Linux, basically a system recovery disk, available as a bootable DVD or USB device to administer or repair your system after an accident. Your goal is to provide an easy way to perform administrative tasks on your computer, such as repairing, creating, and editing your hard disk partitions. It comes with a lot of Open Source software such as system tools (parted, partimage, photorec, foremost, dcfldd, ddrescue, hdparm, and others) and basic tools (editors, browsers, network tools). The LiveCD can be used for both Linux, Mac OS and Windows computers, as well as desktops or servers. This LiveCD does not require installation as it can be booted from a DVD drive or USB device. The kernel supports the most commonly used file systems (ext2 / ext3 / ext4, ReiserFS, Btrfs, XFS, JFS, VFAT, NTFS via ntfs-3g) as well as network file systems (Samba and NFS) encrypted (LUKS).
This LiveCD uses OverlayFS instead of AUFS, so it does not need specific patches and kernels, only sys-kernel/gentoo-sources
A virtual machine is strongly recommended for this procedure, including for security reasons
you need to boot with a 64bit kernel.
More infos:
https://area31.net.br/wiki/LiveCD_oficial
Source code:
https://github.com/area31/LiveCD-Funtoo
Construction of the environment Funtoo
Get the oficial LiveCD created by Área31 Hackerspace
http://area31.mchaves.com/funtoo-livecd-area31-5.1-beta.iso
https://datagate.com.br/area31/funtoo-livecd-area31-5.1-beta.iso
https://www.wickedlinux.com/files/funtoo-livecd-area31-5.1-beta.iso
http://midnightsystems.net/funtoo-livecd-area31-5.1-beta.iso
MD5: 3c30acbf12848c29681ef8c58f194d19
After boot using LiveCD created by Área31 Hackerspace, create and format all partitionsː
root # mkswap /dev/sda2 root # mkfs.ext4 /dev/sda1
Activate swap and mount /mnt/custom directoryː
root # swapon /dev/sda2 root # mkdir -p /mnt/custom ; mount /dev/sda1 /mnt/custom
Get and extract stage3 (64bits) from https://www.funtoo.org/Generic_64 ː
root # wget https://build.funtoo.org/1.4-release-std/x86-64bit/generic_64/stage3-latest.tar.xz -P /mnt/custom root # mkdir -p /mnt/custom/customcd/files ; tar xpf /mnt/custom/stage3-latest.tar.xz -C /mnt/custom/customcd/files
CHROOT
Configure network and use the chroot
root # cp /etc/resolv.conf /mnt/custom/customcd/files/etc/ root # mkdir -p /mnt/custom/customcd/files/var/cache/portage /mnt/custom/portage-chroot root # mount -o bind /mnt/custom/portage-chroot /mnt/custom/customcd/files/var/cache/portage root # mkdir -p /mnt/custom/meta-repo /mnt/custom/customcd/files/var/git root # mount -o bind /mnt/custom/meta-repo/ /mnt/custom/customcd/files/var/git root # cd /mnt/custom/customcd/files/ ; mount -o bind /proc/ proc ; mount -o bind /sys sys ; mount -o rbind /dev dev root # chroot /mnt/custom/customcd/files/ /bin/bash
LiveCD configuration into CHROOT
root # . /etc/profile ; cd ; export PS1="(chroot) $PS1"
Update portage tree
root # ego sync
Get Area31 overlay
Clone repo:
root # mkdir -p /etc/portage/localpatches /mnt/funtoo /var/overlay root # cd /var/overlay ; git clone https://github.com/area31/area31-ebuilds.git root # mv area31-ebuilds area31-hackerspace
Configure /etc/portage/repos.conf/overlay-area31-hackerspace.conf
[overlay-area31-hackerspace] location = /var/overlay/area31-hackerspace auto-sync = no priority = 10
configure /etc/portage/make.conf
root ########################################################################### ## ATTENTION: THIS IS THE MAKE.CONF ON THE LIVECD ## ## PLEASE EDIT /mnt/custom/customcd/files/etc/portage/make.conf INSTEAD ## ########################################################################### #MAKEOPTS="-j5" #PORTAGE_NICENESS="19" #USE="-elogind" ACCEPT_LICENSE="*" FEATURES="-pid-sandbox -network-sandbox -sandbox -usersandbox -ipc-sandbox -selinux -sesandbox -collision-detect -protect-owned assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" DISTDIR="/var/cache/portage/distfiles" PKGDIR="/var/cache/portage/packages" VIDEO_CARDS="i915 i965 vmware intel nouveau radeon vesa vmware apm ast cirrus dummy glint i128 i740 mach64 nv r128 rendition s3 savage siliconmotion sisusb tdfx trident via" INPUT_DEVICES="evdev keyboard mouse synaptics vmmouse" foobashrc_modules = "localpatch" LOCALPATCH_OVERLAY="/etc/portage/localpatches" PAX_MARKINGS="none" L10N="en"
Remove debian-sources and update world
root # emerge -C sys-kernel/debian-sources-lts root # emerge -uDN @world
Install app-portage/eix
root # emerge app-portage/eix root # eix-update
Install Area31 ebuild and dependencies to generate LiveCD
root # emerge sys-apps/sysresccd-area31 sys-kernel/linux-firmware root # rc-update add sysresccd default
Configure hostname
Edit /etc/conf.d/hostname and insert:
hostname="livecd.funtoo"
Configure livecd profile
Remove systemd:
root # epro mix-ins +no-systemd
Install dependencies
Configure useflags:
root # vi /etc/portage/package.use
net-misc/tigervnc drm nls pam server xorgmodule -dri3 -gnutls -java opengl -xinerama x11-base/xorg-server glamor ipv6 suid udev xorg xvfb media-sound/pulseaudio X alsa alsa-plugin asyncns bluetooth caps dbus equalizer gdbm glib gnome ipv6 orc qt4 ssl tcpd udev webrtc-aec -doc -gtk -jack -libressl -libsamplerate -lirc -native-headset -neon -ofono-headset -oss -realtime -selinux -sox -system-wide -systemd -test -zeroconf x11-libs/gtk+ X -abi_x86_32 abi_x86_64 -cups -abi_mips_n32 -abi_mips_n64 -abi_mips_o32 -abi_ppc_32 -abi_ppc_64 -abi_s390_32 -abi_s390_64 -abi_x86_64 -abi_x86_x32 -aqua -broadway -cloudprint -colord -examples -introspection -test -vim-syntax -wayland -xinerama >=app-text/poppler-0.57.0-r1 cairo sys-block/gparted btrfs dmraid f2fs fat hfs jfs mdadm ntfs policykit reiser4 reiserfs xfs udf cryptsetup sys-block/parted debug nls readline device-mapper dev-cpp/gtkmm X sys-boot/grub binfont device-mapper fonts grub_platforms_efi-64 grub_platforms_pc mount multislot nls themes grub_platforms_efi-32 >=dev-qt/qtgui-5.9.4-r3 egl www-client/w3m -X app-editors/vim -X net-misc/openssh -X sys-apps/groff -X sys-kernel/gentoo-sources symlink >=media-plugins/alsa-plugins-1.1.7-r1 pulseaudio sys-apps/smartmontools -daemon net-misc/ntp -zeroconf net-dns/bind -berkdb caps idn ipv6 -ldap python ssl threads urandom xml dlz -doc -filter-aaaa -geoip -gost -gssapi -mysql -odbc -postgres -rpz -rrl -sdbldap -static-libs sys-apps/util-linux tty-helpers x11-terms/rxvt-unicode blink fading-colors pixbuf unicode3 256-color
root # vi /etc/portage/package.keywords
=x11-terms/termite-9999 ** =x11-libs/vte-ng-0.48.2.9999 **
root # vi /etc/portage/package.unmask
=sys-auth/consolekit-1.2.1
Compile basic tools:
root # emerge app-admin/cpulimit app-admin/hddtemp app-admin/ide-smart app-admin/lib_users app-admin/mcelog app-admin/passook app-admin/procinfo-ng app-admin/sudo app-admin/syslog-ng app-admin/sysstat app-admin/testdisk app-admin/whowatch app-arch/bzip2 app-arch/cabextract app-arch/cfv app-arch/cpio app-arch/dpkg app-arch/dump app-arch/gzip app-arch/lbzip2 app-arch/libarchive app-arch/lz4 app-arch/lzlib app-arch/lzop app-arch/mt-st app-arch/ncompress app-arch/p7zip app-arch/pigz app-arch/pixz app-arch/plzip app-arch/pxz app-arch/rpm2targz app-arch/rzip app-arch/sharutils app-arch/snappy app-arch/tar app-arch/unrar app-arch/unshield app-arch/unzip app-arch/xz-utils app-arch/zip app-editors/hexcurse app-editors/hexedit app-editors/vim app-editors/zile app-forensics/foremost app-i18n/uchardet app-laptop/radeontool app-misc/screen app-pda/libimobiledevice app-pda/libplist app-pda/libusbmuxd app-portage/cpuid2cpuflags app-portage/foobashrc app-portage/genlop app-shells/zsh app-text/pastebinit app-text/tree app-text/wgetpaste media-sound/alsa-utils net-dns/bind net-dns/bind-tools net-misc/dhcp net-misc/dhcpcd net-misc/iputils net-misc/ntp net-misc/telnet-bsd net-wireless/iw sys-apps/dcfldd sys-apps/hdparm sys-apps/ipmitool sys-apps/ipmiutil sys-apps/iucode_tool sys-apps/lm_sensors sys-apps/lshw sys-apps/rescan-scsi-bus sys-block/mbuffer sys-block/nbd sys-block/open-isns sys-block/parted sys-block/thin-provisioning-tools sys-block/whdd sys-boot/gnu-efi sys-boot/grub:2 sys-boot/lilo sys-firmware/intel-microcode sys-fs/cryptsetup sys-fs/ddrescue sys-fs/fuse sys-fs/lvm2 sys-fs/mdadm sys-fs/ntfs3g sys-libs/gpm sys-power/acpi sys-process/acct sys-process/atop sys-process/audit sys-process/cronbase sys-process/glances sys-process/htop sys-process/iotop sys-process/lsof sys-process/nmon sys-process/vixie-cron net-analyzer/tcpdump net-fs/nfs-utils net-analyzer/netcat net-analyzer/nmap sys-block/partimage
Create tftpboot directory:
root # mkdir /tftpboot
Graphic interface
Enable X + audio:
root # epro mix-ins +X +audio
Compile graphic tools:
root # emerge -uDN @world x11-terms/termite xorg-server net-misc/tigervnc sys-auth/consolekit x11-base/xorg-x11 x11-misc/xvkbd net-ftp/filezilla net-wireless/spectools net-print/boomaga sys-block/gparted net-wireless/bluez x11-terms/xterm www-client/links net-wireless/wpa_supplicant net-misc/networkmanager-vpnc net-misc/networkmanager-openvpn net-misc/networkmanager net-misc/networkmanager-pptp net-wireless/crackle x11-wm/openbox x11-misc/rofi x11-misc/obconf x11-misc/hsetroot x11-misc/xcompmgr www-client/firefox-bin www-client/elinks x11-misc/urxvt-perls x11-terms/rxvt-unicode
Configure xinitrc:
root # cd /root ; ln -sf /etc/area31/xinitrc .xinitrc root # touch /etc/area31/xinitrc ; chmod +x /etc/area31/xinitrc root # vi /etc/area31/xinitrc
root #!/bin/bash if [ -f /etc/sysconfig/keyboard ] then source /etc/sysconfig/keyboard KEYMAP=${XKEYBOARD} # The keymap must be listed in the following file: # /usr/share/X11/xkb/rules/xorg.lst [ $KEYMAP = "azerty" -o $KEYMAP = "01" -o $KEYMAP = "1" ] && KEYMAP="azerty" [ $KEYMAP = "be" -o $KEYMAP = "02" -o $KEYMAP = "2" ] && KEYMAP="be" [ $KEYMAP = "bg" -o $KEYMAP = "03" -o $KEYMAP = "3" ] && KEYMAP="bg" [ $KEYMAP = "br-a" -o $KEYMAP = "04" -o $KEYMAP = "4" ] && KEYMAP="br" [ $KEYMAP = "br-abnt2" -o $KEYMAP = "04" -o $KEYMAP = "4" ] && KEYMAP="br" [ $KEYMAP = "br-l" -o $KEYMAP = "05" -o $KEYMAP = "5" ] && KEYMAP="br" [ $KEYMAP = "by" -o $KEYMAP = "06" -o $KEYMAP = "6" ] && KEYMAP="by" [ $KEYMAP = "cf" -o $KEYMAP = "07" -o $KEYMAP = "7" ] && KEYMAP="cf" [ $KEYMAP = "croat" -o $KEYMAP = "08" -o $KEYMAP = "8" ] && KEYMAP="hr" [ $KEYMAP = "cz" -o $KEYMAP = "09" -o $KEYMAP = "9" ] && KEYMAP="cz" [ $KEYMAP = "de" -o $KEYMAP = "10" ] && KEYMAP="de" [ $KEYMAP = "dk" -o $KEYMAP = "11" ] && KEYMAP="dk" [ $KEYMAP = "dvorak" -o $KEYMAP = "12" ] && KEYMAP="dvorak" [ $KEYMAP = "es" -o $KEYMAP = "13" ] && KEYMAP="es" [ $KEYMAP = "et" -o $KEYMAP = "14" ] && KEYMAP="et" [ $KEYMAP = "fi" -o $KEYMAP = "15" ] && KEYMAP="fi" [ $KEYMAP = "fr" -o $KEYMAP = "16" ] && KEYMAP="fr" [ $KEYMAP = "gr" -o $KEYMAP = "17" ] && KEYMAP="gr" [ $KEYMAP = "hu" -o $KEYMAP = "18" ] && KEYMAP="hu" [ $KEYMAP = "il" -o $KEYMAP = "19" ] && KEYMAP="il" [ $KEYMAP = "is" -o $KEYMAP = "20" ] && KEYMAP="is" [ $KEYMAP = "it" -o $KEYMAP = "21" ] && KEYMAP="it" [ $KEYMAP = "jp" -o $KEYMAP = "22" ] && KEYMAP="jp" [ $KEYMAP = "la" -o $KEYMAP = "23" ] && KEYMAP="latam" [ $KEYMAP = "lt" -o $KEYMAP = "24" ] && KEYMAP="lt" [ $KEYMAP = "mk" -o $KEYMAP = "25" ] && KEYMAP="mk" [ $KEYMAP = "nl" -o $KEYMAP = "26" ] && KEYMAP="nl" [ $KEYMAP = "no" -o $KEYMAP = "27" ] && KEYMAP="no" [ $KEYMAP = "pl" -o $KEYMAP = "28" ] && KEYMAP="pl" [ $KEYMAP = "pt" -o $KEYMAP = "29" ] && KEYMAP="pt" [ $KEYMAP = "ro" -o $KEYMAP = "30" ] && KEYMAP="ro" [ $KEYMAP = "ru" -o $KEYMAP = "31" ] && KEYMAP="us,ru(winkeys) -option grp:ctrl_shift_toggle,lctrl_shift_toggle" [ $KEYMAP = "se" -o $KEYMAP = "32" ] && KEYMAP="se" [ $KEYMAP = "sg" -o $KEYMAP = "33" ] && KEYMAP="sg" [ $KEYMAP = "sk-y" -o $KEYMAP = "34" ] && KEYMAP="sk" [ $KEYMAP = "sk-z" -o $KEYMAP = "35" ] && KEYMAP="sk" [ $KEYMAP = "slovene" -o $KEYMAP = "36" ] && KEYMAP="si" [ $KEYMAP = "trf" -o $KEYMAP = "37" ] && KEYMAP="tr" [ $KEYMAP = "trq" -o $KEYMAP = "38" ] && KEYMAP="tr" [ $KEYMAP = "ua" -o $KEYMAP = "39" ] && KEYMAP="ua" [ $KEYMAP = "uk" -o $KEYMAP = "40" ] && KEYMAP="gb" [ $KEYMAP = "us" -o $KEYMAP = "41" ] && KEYMAP="us" [ $KEYMAP = "wangbe" -o $KEYMAP = "42" ] && KEYMAP="wangbe" [ $KEYMAP = "fr_CH" -o $KEYMAP = "43" ] && KEYMAP="ch -variant fr" [ $KEYMAP = "speakup" -o $KEYMAP = "44" ] && KEYMAP="us" [ $KEYMAP = "cz" -o $KEYMAP = "45" ] && KEYMAP="cz" [ $KEYMAP = "de_CH" -o $KEYMAP = "46" ] && KEYMAP="ch" [ $KEYMAP = "sg-lat1" -o $KEYMAP = "47" ] && KEYMAP="ch" [ $KEYMAP = "fr-bepo" -o $KEYMAP = "48" ] && KEYMAP="fr bepo" [ $KEYMAP = "colemak" -o $KEYMAP = "49" ] && KEYMAP="us -variant colemak" [ $KEYMAP = "de_neo" -o $KEYMAP = "50" ] && KEYMAP="de -variant neo" echo "setxkbmap -layout $KEYMAP" > /var/log/xorg-keymap.log setxkbmap -layout $KEYMAP >> /var/log/xorg-keymap.log 2>&1 fi [ -f /usr/bin/xset ] && /usr/bin/xset s off >/dev/null 2>&1 & [ -f /usr/bin/xset ] && /usr/bin/xset r >/dev/null 2>&1 & if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then exec ck-launch-session dbus-launch --sh-syntax --exit-with-session startlxde else exec dbus-launch --exit-with-session startlxde fi
Adjust various services on boot
Just run:
root # bash /usr/sbin/sysresccd-area31-setservices
Use VIM instead VI:
root # mv /usr/bin/vi /usr/bin/vim-legacy ; ln -s /usr/bin/vim /usr/bin/vi
Enable Local Patches to Ebuilds:
root # ln -s /etc/portage/foobashrc.bashrc /etc/portage/bashrc
Compile kernel
Configure ebuild
root # echo "sys-kernel/gentoo-sources symlink" >> /etc/portage/package.use root # emerge sys-kernel/gentoo-sources
Configure kernel
root # wget https://area31.net.br/downloads/ebuilds/releases/config-4.20.4-rescuecd-funtoo-overlayfs-area31-5.0 -O /usr/src/linux/.config
Compile and install kernel and modules
root # cd /usr/src/linux ; make oldconfig && make && make install && make modules_install
ZFS support (OPTIONAL)
Configure useflags
root # echo "sys-fs/zfs -rootfs" >> /etc/portage/package.use
Compile ZFS ebuilds
root # emerge sys-kernel/spl sys-fs/zfs-kmod sys-fs/zfs
root # rc-update add zfs-import boot root # rc-update add zfs-mount boot root # rc-update add zfs-share default root # rc-update add zfs-zed default
Configure fstab
Clear fstab:
root # echo '# Funtoo LiveCD fstab' > /etc/fstab
Configure automatic login [RECOMMENDED]
Make script bashlogin
root # touch /bin/bashlogin ; chmod +x /bin/bashlogin ; vi /bin/bashlogin
With the following content:
root #!/bin/sh root # ============ ENV VARS ================================ cd /root export LANG=en_US.UTF-8 export HOME=/root export SHELL=/bin/bash export PATH=/sbin:/bin:/usr/sbin:/usr/bin export MAIL=/var/mail/root export USER=root source /etc/profile root # ============ PRINT MESSAGE =========================== lc1='\e[01;31m' # light red dc1='\e[00;31m' # dark red lc2='\e[01;37m' # white dc2='\e[00;37m' # gray root # fix broken console with utf8 in the alternative-kernels echo -n -e '\033%G' kbd_mode -u LINES=$(stty size
Configure inittab
root # vi /etc/inittab
Change the lines below the comment '# TERMINALS' 'to the following pattern:
root # TERMINALS c1:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty1 linux c2:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty2 linux c3:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty3 linux c4:12345:respawn:/sbin/agetty --noclear 38400 tty4 linux c5:2345:respawn:/sbin/agetty 38400 tty5 linux c6:2345:respawn:/sbin/agetty 38400 tty6 linux
That way we will automatically log in to TTY's from 1 to 3.
Configure Time Zone
/etc/localtime is used to specify the timezone that your machine is in, and defaults to UTC. If you would like your Funtoo Linux system to use local time, you should replace /etc/localtime with a symbolic link to the timezone that you wish to use.
Configure to UTCː
root # ln -sf /usr/share/zoneinfo/UTC /etc/localtime
Check using date commandː
root # date -R
Sat, 26 Jan 2019 04:45:28 +0000
Or configure other Time Zoneː
root # ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
Make automatic post-login banner [OPTIONAL]
Include banner on /etc/bash/bashrc:
root # echo '/bin/bashlogin-banner' >> /etc/bash/bashrc
Create the script with the following content:
root # touch /bin/bashlogin-banner ; chmod +x /bin/bashlogin-banner ; vi /bin/bashlogin-banner
root #!/bin/sh root # ============ ENV VARS ================================ cd /root export LANG=en_US.UTF-8 export HOME=/root export SHELL=/bin/bash export PATH=/sbin:/bin:/usr/sbin:/usr/bin export MAIL=/var/mail/root export USER=root source /etc/profile root # ============ PRINT MESSAGE =========================== lc1='\e[01;31m' # light red dc1='\e[00;94m' # light blue lc2='\e[01;37m' # white dc2='\e[00;37m' # gray root # fix broken console with utf8 in the alternative-kernels echo -n -e '\033%G' kbd_mode -u LINES=$(stty size
Install aditional locales [OPTIONAL]
root # echo 'pt_BR.UTF-8 UTF-8' >> /etc/locale.gen root # locale-gen
Enable date and time on history
Add these lines on /etc/profile
export HISTTIMEFORMAT="%h/%d %H:%M:%S " export HISTFILESIZE="1000000" export HISTSIZE="1000000"
Exit from CHROOT
root # exit
Prepare the iso environment (Kernel + GRUB)
Download and extract the required files:
root # cd /mnt/custom/customcd root # wget https://area31.net.br/downloads/ebuilds/releases/isoroot-livecd-funtoo-area31-5.0.tar.bz2 root # tar xjpf isoroot-livecd-funtoo-area31-5.0.tar.bz2 -C /mnt/custom/customcd
Prepare initram
Make backup:
root # cd /mnt/custom/customcd root # tar cpf isoroot-bkp.tar isoroot
Configure initram created by Área31 Hackerspace
Get latest initram from Área31 Hackerspace:
root # mkdir -p /usr/src/initramfs root # cd /usr/src/initramfs root # rm /mnt/custom/customcd/isoroot/isolinux/initram.igz root # wget https://area31.net.br/downloads/releases/initram-ara31-overlayfs-5.0.igz -O /usr/src/initram.igz
Unpack initram created by Área31 Hackerspace:
root # cat /usr/src/initram.igz | xz -d | cpio -id
Or unpack initram from LiveCD:
root # cat /livemnt/boot/isolinux/initram.igz | xz -d | cpio -id
Copy modules from kernel to initram
root # cp -rp /mnt/custom/customcd/files/lib/modules/* lib/modules
Repack initram
root # rm -f /usr/src/initram.igz root # cd /usr/src/initramfs
root # find . | cpio -H newc -o | xz --check=crc32 --x86 --lzma2 > /usr/src/initram.igz
Copy new initram and kernel to isoroot dir
root # cp /usr/src/initram.igz /mnt/custom/customcd/isoroot/isolinux/initram.igz root # cp /mnt/custom/customcd/files/boot/vmlinuz-*gentoo* /mnt/custom/customcd/isoroot/isolinux/rescue64 root # mkdir -p /mnt/custom/customcd/isoroot/boot/EFI/BOOT /mnt/custom/customcd/isoroot/efi/boot root # cp /mnt/custom/customcd/isoroot/efi/bootx64.efi /mnt/custom/customcd/isoroot/boot/EFI/BOOT/bootx64.efi root # cp /mnt/custom/customcd/isoroot/efi/bootx64.efi /mnt/custom/customcd/isoroot/efi/boot
Remove temporary files and umount /proc, /dev, /sys
root # rm -rf /mnt/custom/customcd/files/usr/src/* /mnt/custom/customcd/files/var/tmp/portage root # cd / ; umount /mnt/custom/customcd/files/var/cache/portage /mnt/custom/customcd/files/var/git root # cd /mnt/custom/customcd/files/ ; umount proc sys root # umount -l dev ; cd
Make iso file
root # sh /usr/share/sysresccd-area31/sysresccd-area31-targets make-iso
Get new iso funtoo
ISOs are always generated in the same directory:
/mnt/custom/customcd/isofile
How to install Livecd on USB-Stick
You first have to mount the ISO image (or a media where you have burned it). You just need an empty directory on your system on which the ISO image can be mounted. We will use /tmp/cdrom
in this example but you can use any directory such as /mnt/cdrom
:
Mount the ISO image
root # mkdir -p /tmp/cdrom root # mount -o loop,exec funtoo-livecd-area31-*.iso /tmp/cdrom
Plug in the USB stick
Just make sure the USB stick has been plugged in, and wait a few seconds to be sure the device has been detected by the system.
Execute the installer
Now you just have to execute the installation script which is at the root of the CD-ROM. This script requires several commands to run but it won't be a problem. To be sure the script will always work, these commands are part of the CD-ROM:
root # cd /tmp/cdrom root # bash ./usb_inst.sh
Unmount the ISO image
Now you can unmount the ISO image
root # cd ~ root # umount /tmp/cdrom