SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Установка Gentoo


Метки: [gentoo]; [/etc/portage/make.conf]; [/boot]; [sgdisk]; [mount]; [lvcreate];

--- install.sh
--- two.sh
install.sh Скачать
#!/bin/bash

drive="/dev/sda"

# Destroy all data
sgdisk --zap-all ${drive}
dd if=/dev/zero of=${drive} bs=256k

vgname="server_vg"

# GPT
sgdisk --clear ${drive}

sgdisk -a 4096 -n 1:0:+512M --typecode=1:ef00 ${drive}
sgdisk -a 4096 --largest-new=2 --typecode=2:8e00 ${drive}

pvcreate ${drive}2

vgcreate ${vgname} ${drive}2

lvcreate -C y -L 4G ${vgname} -n swap0
lvcreate -l +100%FREE ${vgname} -n root0

mkfs.vfat ${drive}1
mkfs.xfs -f /dev/${vgname}/root0

mount /dev/${vgname}/root0 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount ${drive}1 /mnt/gentoo/boot

cd /mnt/gentoo

stagefile=`curl https://mirror.yandex.ru/gentoo-distfiles/releases/amd64/autobuilds/latest-stage3-amd64.txt | grep stage3 | awk '{print $1}'`

wget http://mirror.yandex.ru/gentoo-distfiles/releases/amd64/autobuilds/${stagefile}

tar xpvf data/stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

mount --types 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
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run

BOOTUUID=`blkid -s UUID -o value ${drive}1`
cat << EOF > etc/fstab
UUID=$BOOTUUID /boot vfat noauto,noatime 0 2
/dev/mapper/"${vgname}"-root0     /       xfs     defaults        0       1
/dev/mapper/"${vgname}"-swap0     none    swap    sw              0       0
EOF

cat << EOF >> etc/portage/make.conf
LINGUAS="ru"
# GRUB
GRUB_PLATFORMS="efi-64"
EOF

cat >> etc/locale.gen << EOF
ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOF

cp /etc/resolv.conf etc

wget https://specialistoff.net/snippet/30/inode/40/raw -O /two.sh
chmod +x /two.sh

chroot /mnt/gentoo /two.sh
two.sh Скачать
#!/bin/bash

set -e
set -x

env-update && source /etc/profile

emerge --sync

# eselect profile set 6

echo "Europe/Moscow" > /etc/timezone

emerge --config sys-libs/timezone-data

locale-gen

# System
emerge -v sys-kernel/gentoo-sources sys-kernel/genkernel
emerge -v sys-fs/lvm2 sys-fs/mdadm sys-fs/cryptsetup python
emerge -v sys-apps/busybox app-shells/bash app-shells/tcsh

genkernel --dmraid --lvm --luks --splash=emergence all

# Standart
emerge -v udev syslog-ng
emerge -v Locale-gettext
emerge -v sys-boot/grub sys-boot/os-prober sys-boot/efibootmgr
emerge -v dhcpcd pam vixie-cron
emerge -v app-admin/pwgen
emerge -v net-misc/wget net-misc/rsync
emerge -v sys-apps/net-tools
emerge -v app-editors/nano

# Devel
emerge -v dev-vcs/git

systemd-machine-id-setup
systemctl enable sshd

##
# GRUB2
##
# LVM
echo "GRUB_PRELOAD_MODULES=lvm" >> /etc/default/grub
echo 'GRUB_CMDLINE_LINUX="dolvm"' >> /etc/default/grub
# LUKS
echo "GRUB_CRYPTODISK_ENABLE=y" >> /etc/default/grub
# grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=x86_64-efi --recheck --modules="configfile linux search_fs_uuid luks lvm ext2 part_gpt" --efi-directory /boot
grub-mkconfig -o /boot/grub/grub.cfg

# Root password
echo "root:root" | chpasswd