Skip to content

Instantly share code, notes, and snippets.

@SiggyF
Last active December 23, 2015 00:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SiggyF/6552572 to your computer and use it in GitHub Desktop.
Save SiggyF/6552572 to your computer and use it in GitHub Desktop.
Setup of gentoo system
# mount
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
# mount
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
# Download this file as
# http://git.io/zVfECg
# wget -O - $url | bash
# partition the disks
# parted -s /dev/sda mklabel gpt
parted -s /dev/sda mklabel msdos
parted -s /dev/sda mkpart primary ext2 0% 512mb
parted -s /dev/sda mkpart primary linux-swap 512mb 1024mb
parted -s /dev/sda mkpart primary ext4 1024mb 100%
parted -s /dev/sda set 1 boot on
# format
mkfs.ext2 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
# mount
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
# get the stage 3
cd /mnt/gentoo
mirror=http://ftp.snt.utwente.nl/pub/os/linux/gentoo
wget -c $mirror/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20130822.tar.bz2
# unpack
tar xvjpf stage3-*.tar.bz2
# set make options
sed -i 's/CFLAGS=.*/CFLAGS="-march=core2 -O2 -pipe"/' /mnt/gentoo/etc/portage/make.conf
echo 'MAKEOPTS="-j3"' >> /mnt/gentoo/etc/portage/make.conf
echo 'ACCEPT_KEYWORDS="~amd64"' >> /mnt/gentoo/etc/portage/make.conf
# choose mirrors
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
# copy dns info
cp -L /etc/resolv.conf /mnt/gentoo/etc/
# mount
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
cp /etc/kernels/kernel-config-x86_64-3.8.13-gentoo /mnt/gentoo/tmp
parted -s /dev/sdb mklabel gpt
parted -s /dev/sdb mkpart esi fat32 0% 500m
parted -s /dev/sdb set 1 boot on
mkfs.vfat -F 32 /dev/sdb1
#chroot
chroot /mnt/gentoo /bin/bash
# Download this file at
# http://git.io/r9kr6A
source /etc/profile
export PS1="(chroot) $PS1"
emerge-webrsync
emerge --sync
eselect profile set 2
cp /usr/share/zoneinfo/UTC /etc/localtime
echo "UTC" > /etc/timezone
emerge --oneshot portage
emerge gentoo-sources
cd /usr/src/linux
cp /tmp/kernel-config-x86_64-3.8.13-gentoo .config
make menuconfig
cd /usr/src/linux
make && make modules_install
mkdir -p /boot/efi/boot
cp arch/x86_64/boot/bzImage /boot/kernel-3.11.0-gentoo
cp arch/x86_64/boot/bzImage /boot/efi/boot/bootx64.efi
cat > /etc/fstab <<EOF
/dev/sda1 /boot ext2 defaults,noatime 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext4 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
EOF
emerge openrc
emerge kmod
rc-update add kmod-static-nodes sysinit
emerge efibootmgr
mkdir /mnt/tmp && mount /dev/sdb1 /mnt/tmp
mkdir -p /mnt/tmp/efi/boot
cp arch/x86/boot/bzImage /mnt/tmp/efi/boot/bootx64.efi
umount /mnt/tmp
echo 'hostname="tux"' > /etc/conf.d/hostname
echo 'config_eth0="dhcp"' > /etc/conf.d/net
cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default
cat > /etc/locale.gen <<EOF
en_US ISO-8859-1
en_US.UTF-8 UTF-8
EOF
locale-gen
env-update && source /etc/profile
emerge syslog-ng
rc-update add syslog-ng default
emerge vixie-cron
rc-update add vixie-cron default
emerge mlocate
emerge dhcpcd
emerge grub:2
grub2-install /dev/sda
mkdir /boot/grub2
grub2-mkconfig -o /boot/grub2/grub.cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment