Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Are there any errors in my Gentoo command list for my first
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
ArtificialAmateur
n00b
n00b


Joined: 05 Feb 2016
Posts: 2

PostPosted: Fri Feb 05, 2016 7:34 pm    Post subject: Are there any errors in my Gentoo command list for my first Reply with quote

Hello gentoomen, I am transitioning from Arch to Gentoo on my new rig and with the combination of systemd + LUKS/LVM, and being my first time, I knew this would get confusing so I spent some time trying to plan it out.

Now I ask of you to peer review it and help me ascend on my glorious journey, any suggestions or recommendations are welcome. Thank you.
___________________________________________________________________________
This is for: UEFI, Ethernet, Luks on LVM, and systemd.

Hardware:

  • Intel i7-6700k
  • Nvidia GTX 980TI
  • 16Gb RAM
  • Samsung 500Gb SSD
  • Western Digital 2Tb HDD

___________________________________________________________________________
Here is my game plan:

Device Graph: http://i.imgur.com/1neMLsH.png

Mount Graph: http://i.imgur.com/8g2vF6W.png

*Slightly different from pics (eg. /boot/efi)


  • Encrypted LVM vgs w/ keyfiles
  • SSH (or VNC)
  • Decrease boot time
  • Mail Server
  • Gaming Rig
  • Bitcoin mining
  • WM ricing


___________________________________________________________________________
Parts that I know are wrong and I need guidance for:


  • saving keyfiles
  • Installing systemd instead of OpenRC.


Edit: After adding in the systemd componenets I am 100% uncomfortable with how this is set as it feels mangled.

___________________________________________________________________________
Check Connection:

Code:
    # ping -c 3 gentoo.com


Check UEFI:

Code:
    # ls /sys/firmware/efi/efivars


Partitioning:

Code:
    # parted /dev/sda

    # (parted) mklabel gpt

    # (parted) mkpart ESP fat32 1MiB 513MiB

    # (parted) set 1 boot on

    # (parted) mkpart primary ext4 513MiB 100%

    # parted /dev/sdb

    # (parted) mkpart primary ext4 1MiB 100%


LVM:
Code:

    # vgcreate /dev/sda2 ssd

    # vgcreate /dev/sdb1 hdd

    # lvcreate -n virtualmachines -L 240G ssd

    # lvcreate -n games -l 100%FREE ssd

    # lvcreate -n root -L 5G hdd

    # lvcreate -n usr -L 15G hdd

    # lvcreate -n var -L 20G hdd 

    # lvcreate -n swap -L 8G hdd

    # lvcreate -n home -l 100%FREE hdd

    # dd if=/dev/urandom bs=32 count=4098 of=./home.key

    # !!- of=./virtualmachines.key

    # !!- of=./games.key

    # !!- of=./swap.key

    # !!- of=./usr.key

    # !!- of=./var.key

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./virtualmachines.key /dev/mapper/ssd-virtualmachines

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./home.key /dev/mapper/hdd-home

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./games.key /dev/mapper/ssd-games

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 /dev/mapper/hdd-root

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./swap.key /dev/mapper/hdd-swap

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./usr.key /dev/mapper/hdd-usr

    # cryptsetup luksFormat --cipher=serpent-xts-plain64:sha512 --hash=whirlpool --key-size=512 --key-file=./var.key /dev/mapper/hdd-var


Unlock:

Code:
    # cryptsetup luksOpen --key-file=./virtualmachines.key /dev/mapper/ssd-virtualmachines virtualmachines

    # cryptsetup luksOpen --key-file=./home.key /dev/mapper/hdd-home home

    # cryptsetup luksOpen --key-file=./games.key /dev/mapper/ssd-games games

    # cryptsetup luksOpen /dev/mapper/hdd-root root

    # cryptsetup luksOpen --key-file=./swap.key /dev/mapper/hdd-swap swap

    # cryptsetup luksOpen --key-file=./usr.key /dev/mapper/hdd-usr usr

    # cryptsetup luksOpen --key-file=./var.key /dev/mapper/hdd-var var 

    // Dont know how and where keyfiles should be saved.


Format:
Code:

    # dd if=/dev/zero of=/dev/sda1 bs=1M

    # mkfs.fat -F32 /dev/sda1

    # mkfs.btrfs /dev/mapper/{root,usr,var}

    # mkfs.xfs /dev/mapper/{games,home,virtualmachines}

    # mkswap /dev/mapper/swap

    # swapon /dev/mapper/swap

    // Not sure at what point /tmp should come in and be formatted as /tmpfs


Mount:

Code:
    # mount /dev/mapper/root /mnt/gentoo

    # mkdir -p /mnt/gentoo/boot; mount /dev/sda1 /mnt/gentoo/boot

    # mkdir -p /mnt/gentoo/usr; mount /dev/mapper/usr /mnt/gentoo/usr

    # mkdir -p /mnt/gentoo/var; mount /dev/mapper/var /mnt/gentoo/var

    # mkdir -p /mnt/gentoo/home/; mount /dev/mapper/home /mnt/gentoo/home

    # mkdir -p /mnt/gentoo/home/artificial/{virtualmachines,games}

    # mount /dev/mapper/virtualmachines /mnt/gentoo/home/artificial/VMs

    # mount /dev/mapper/games /mnt/gentoo/home/artificial/Games


Setting time and date:

Code:
    # date


Downloading the stage tarball:

Code:
    # cd /mnt/gentoo

    # links https://www.gentoo.org/downloads/mirrors/

    // ‘D’ to download tarball, ‘Q’ to quit


Unpacking the stage tarball:

Code:
    # tar xvjpf stage3*.tar.bz2 -xattrs


Configure compile options:
Code:

    # nano -w /mnt/gentoo/etc/portage/make.conf

>     CFLAGS=”-march=native -O2 -pipe”

>     CXXFLAGS=”${CFLAGS}”

>     MAKEOPTS="-j9"

>     VIDEO_CARDS="intel nvidia"


Selecting mirrors:

Code:
    # mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

    # mkdir /mnt/gentoo/etc/portage/repos.conf

    # cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

    # cat /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

>     [gentoo]

>     location = /usr/portage

>     sync-type = rsync

>     sync-uri = rsync://rsync.gentoo.org/gentoo-portage

>     auto-sync = yes


Copy DNS info:
Code:

    # cp -L /etc/resolv.conf /mnt/gentoo/etc


Mounting the necessary filesystems:
Code:

    # mount -t proc proc /mnt/gentoo/proc

    # mount --rbind /sys /mnt/gentoo/sys

    # mount --make-rslave /mnt/gentoo/sys

    # mount --rbind /dev /mnt/gentoo/dev

    # mount --make-rslave /mnt/gentoo/dev

Entering the new environment:
Code:

    # chroot /mnt/gentoo /bin/bash

    # source /etc/profile

    # export PS1=”(chroot) $PS1”


Installing a portage snapshot:

Code:
    # emerge-webrsync

    # emerge --sync


Reading news items:
Code:

    # eselect news list

    # eselect news read

    # eselect news purge


Choosing the right profile:

Code:
    # eselect profile list

    # eselect profile set <insert # here>

    // At this point it tells me to look at the systemd page, but its not a continuation of this guide so it confuses me somewhat.


Time:

Code:
    # echo “America/Los_Angeles” > /etc/timezone

    # emerge --config sys-libs/timezone-data


Locale:

Code:
    # nano -w /etc/locale.gen

    # locale-gen

    # locale -a

    # eselect locale list

    # eselect locale set <insert # here>

    # env-update && source /etc/profile && export PS1=”(chroot) $PS1”


Installing the sources:

Code:
    # emerge --ask sys-kernel/gentoo-sources

    # ls -l /usr/src/linux

    // I decided against the hardened kernel as it causes too many problems with Steam.


Intro to manual kernal configuration:
Code:

    # emerge --ask sys-apps/pciutils

    # cd /usr/src/linux

    # make menuconfig


Required options:

http://i.imgur.com/uTpSmdW.png

Architecture specific kernel configuration:

http://i.imgur.com/TwGDoM9.png

Systemd required kernel configuration:

http://i.imgur.com/jfE5l4b.png

http://cgit.freedesktop.org/systemd/systemd/tree/README#n36

Compiling and installing:
Code:

    # make -j9 && make modules_install -j9

    # make install

    # mkdir -p /boot/efi/boot

    # cp /boot/vmlinuz-* /boot/efi/bootx64.efi


The /etc/mtab:

Code:
    # ln -sf /proc/self/mounts /etc/mtab


Initramfs:

Code:
    # emerge --ask sys-kernel/genkernel-next

    # nano /etc/genkernel.conf

>     UDEV="yes"

    # genkernel --install initramfs

    # genkernel --install all

    # genkernel --udev --lvm --luks --disklabel initramfs

    **// systemd page says 'genkernel --install all', but is that necessary?**

Configuring the modules:

Code:
    // Replace <kernel version> w/ version.

    # find /lib/modules/<kernel version>/ -type f -iname ‘*.o’ -or -iname ‘*.ko’ | less

    # nano -w /etc/conf.d/modules

    *modules=”<insert necessary module here>”*

    # emerge –ask sys-kernel/linux-firmware


Starting lvmetad daemon:

Code:
    # nano /etc/lvm/lvm.conf

>     use_lvmetad = 1


Systemd installation:

Code:
    # eselect profile list

    # emerge -avDN @world

    # emerge --deselect sys-fs/udev


Fstab:

Code:
    # blkid

    // Any reccomended options?

    # nano -w /etc/fstab


Fstab Table: http://i.imgur.com/DeBcBmf.png

Code:
    //Again not sure about /tmp, doesnt have partuuid what do I do?


Homenamectl:

Code:
    # hostnamectl set-hostname tundra


The hosts file:
Code:

    # nano -w /etc/hosts

    127.0.0.1    tundra.localhost    tundra    localhost


Systemd-networkd:
Code:

    # nano /etc/systemd/network/50-dhcp.network

>     [Match]
>     Name=enp0s31f6
>     
>     [Network]
>     DHCP=yes

    # ln -snf /run/systemd/resolve/resolve.conf /etc/resolv.conf

    # systemctl enable systemd-resolved.service

    # systemctl start systemd-resolved.service


File indexing:

Code:
    # emerge --ask sys-apps/mlocate


Filesystem tools:

Code:
    # emerge --ask sys-fs/e2fsprogs sys-fs/xfsprogs sys-fs/dosfstools


Networking tools:

Code:
    # emerge –ask net-misc/dhcpcd


Installing GRUB2:

Code:
    # echo GRUB_PLATFORMS=”efi-64” >> /etc/portage/make.conf

    # emerge --ask sys-boot/grub


Configuring GRUB2:

Code:
    # grub2-install --target=x86_64-efi –efi-directory=/boot

    # grub2-mkconfig -o /boot/grub/grub.cfg

    // Output must say that at least one Linux image is found.

    # nano /etc/default/grub

>     GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"


Crypttab:

Code:
    # nano /etc/crypttab


Crypttab table: http://i.imgur.com/cJla1ks.png

Rebooting the system:

Code:
    # exit

    # cd

    # umount -l /mnt/gentoo/dev{/shm,/pts,}

    # umount /mnt/gentoo{/boot,/sys,/proc,}

    # reboot

    # pray


User administration:

Code:
    # useradd -m -G users,wheel,audio,games,portage,usb,video,wheel -s /bin/bash artificial

    # passwd artificial


Disk cleanup:

Code:
    # rm /stage3-*.tar.bz2


Homenamectl:

Code:
    # hostnamectl set-hostname tundra


Systemd-networkd:
Code:

    # nano /etc/systemd/network/50-dhcp.network

>     [Match]
>     Name=enp0s31f6
>     
>     [Network]
>     DHCP=yes

    # ln -snf /run/systemd/resolve/resolve.conf /etc/resolv.conf

    # systemctl enable systemd-resolved.service

    # systemctl start systemd-resolved.service


Activating lvm

Code:
    # systemctl enable lvm2-monitor.service

___________________________________________________________________________

Edit: Added tmp to fstab, added systemd kernel config, changed initramfs, added LVM daemon, added systemd to GRUB2 config, added root & user passwd, added hostnamectl commands, added systemd installation, added systemd-networkd, removed /tmp as systemd automatically sets it, added Activating lvm, added updated systemd requirements, added VIDEO_CARDS variable to make.conf, removed init & boot configuration, system logger, and cron daemon section, switched networking and hostname commands for systemd counterparts.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum