Тут после старта систему лучше всего установить пароль
root@sysresccd /root % passwd
Changing password for root
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lowe rcase letters and numbers
New password:
Re-enter new password:
passwd: password changed.
Посмотреть текущий ip адрес
root@sysresccd /root % ip a | grep inet
И продолжить установку уже через ssh
user@localhost $ ssh root@IP_АДРЕС
root@sysresccd /root % parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) mkpart
Partition name? []? EFI
File system type? [ext2]? fat32
Start? 0%
End? 257MB
(parted) mkpart
Partition name? []? GNU
File system type? [ext2]? ext4
Start? 257MB
End? 100%
(parted) quit
Information: You may need to update /etc/fstab.
root@sysresccd /root % mkfs.vfat -F32 /dev/sda1
mkfs.fat 3.0.28 (2015-05-16)
root@sysresccd /root % cryptsetup luksFormat /dev/sda2
WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
root@sysresccd /root % cryptsetup luksOpen /dev/sda2 root
Enter passphrase for /dev/sda2:
root@sysresccd /root % mkfs.ext4 /dev/mapper/root
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 122033408 4k blocks and 30515200 inodes
Filesystem UUID: a8d86052-be2a-42bf-8ac9-e36dfa395177
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
root@sysresccd /root % mount /dev/mapper/root /mnt/gentoo
root@sysresccd /root % mkdir -p /mnt/gentoo/boot/efi
root@sysresccd /root % mount /dev/sda1 /mnt/gentoo/boot/efi
root@sysresccd /root % curl http://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3-amd64-hardened.txt
# Latest as of Sat, 11 Nov 2017 06:30:01 +0000
# ts=1510381801
20171109/hardened/stage3-amd64-hardened-20171109.tar.bz2 238549073
Далее вместо YYYYMMDD использовать полученную дату
root@sysresccd /root % wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64/hardened/stage3-amd64-hardened-YYYYMMDD.tar.bz2
root@sysresccd /root % wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64/hardened/stage3-amd64-hardened-20171109.tar.bz2.DIGESTS.asc
root@sysresccd /root % gpg --keyserver pool.sks-keyservers.net --recv-key 2D182910
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: requesting key 2D182910 from hkp server pool.sks-keyservers.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
root@sysresccd /root % gpg --verify stage3-amd64-*.tar.bz2.DIGESTS.asc
gpg: Signature made Fri Nov 10 07:55:07 2017 UTC using RSA key ID 2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD B1BA BB57 2E0E 2D18 2910
root@sysresccd /root % cd /mnt/gentoo
root@sysresccd /mnt/gentoo % tar xf /root/stage3-amd64-hardened-*.tar.bz2
root@sysresccd /mnt/gentoo % mount --bind /sys sys && mount --bind /dev dev && mount --bind /proc proc && cp /etc/resolv.conf etc/ && chroot . /bin/bash
CFLAGS="-O2 -pipe -march=native"
MAKEOPTS="-j9"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"
USE="bindist cryptsetup device-mapper"
PORTAGE_TMPDIR="/tmp"
EMERGE_DEFAULT_OPTS="--quiet-build"
sysresccd / # mkdir /usr/portage && emerge --sync
sysresccd / # eselect locale list | grep ru_RU
[602] ru_RU
[603] ru_RU.iso88595
[604] ru_RU.koi8r
[605] ru_RU.utf8
sysresccd / # eselect locale set 605
Setting LANG to ru_RU.utf8 ...
Run ". /etc/profile" to update the variable in your shell.
sysresccd / # . /etc/profile
sysresccd / # emerge sys-kernel/gentoo-sources sys-boot/grub net-misc/dhcpcd sys-fs/cryptsetup sys-kernel/genkernel sys-kernel/linux-firmware
sysresccd / # passwd
New password:
Retype new password:
passwd: password updated successfully
Сначала необходимо запустить blkid для того, чтобы посмотреть идентификаторы
sysresccd / # blkid
/dev/loop0: TYPE="squashfs"
/dev/sda1: UUID="2352-115B" TYPE="vfat" PARTLABEL="EFI" PARTUUID="402f385f-4adb-470f-94e6-0fcb4f37d2fe"
/dev/sda2: UUID="2e13277f-544d-4d6d-871f-1ea04495fea7" TYPE="crypto_LUKS" PARTLABEL="GNU" PARTUUID="a701cfac-dd62-4925-b3e7-e64af9f3f6bc"
/dev/sdb1: UUID="2016-10-02-07-25-26-00" LABEL="sysrcd-4.8.3" TYPE="iso9660" PTUUID="4b7ef199" PTTYPE="dos" PARTUUID="4b7ef199-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="6312-E402" TYPE="vfat" PARTUUID="4b7ef199-02"
/dev/mapper/root: UUID="a8d86052-be2a-42bf-8ac9-e36dfa395177" TYPE="ext4"
После чего непосредственно править fstab
sysresccd / # nano /etc/fstab
У меня на ноутбуке получается таким образом. Нужно обратить внимание на то, что UUID для корневого раздела должен быть от /dev/mapper/root, а также на размер (и необходимость) tmpfs в зависимости от текущей системы.
UUID="2352-115B" /boot/efi vfat defaults 0 2
UUID="a8d86052-be2a-42bf-8ac9-e36dfa395177" / ext4 defaults,discard,noatime 0 1
tmpfs /tmp tmpfs noatime,nodiratime,size=12G 0 0
sysresccd / # nano /etc/conf.d/hostname
sysresccd / # ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
sysresccd / # rc-config add sshd
Конфигурация ядра не является тривиальной, поэтому с этим нужно быть осторожным. Главное – включить сетевую карту и не забыть про шифрование :)
sysresccd / # mkdir /usr/src/local
sysresccd / # lspci -nnk | grep 'Ethernet controller' -A2
lspci: Unable to load libkmod resources: error -12
02:00.0 Ethernet controller [0200]: Qualcomm Atheros QCA8172 Fast Ethernet [1969:10a0] (rev 10)
Subsystem: Lenovo QCA8172 Fast Ethernet [17aa:3802]
Kernel driver in use: alx
И не забываем добавить его поддержку далее (если вдруг опция окажется не такой, то использовать make nconfig и поиск по F8)
sysresccd / # nano /usr/src/local/Kconfig
config SWEET_GENTOO
bool "Sweet gentoo"
default y
# crypto
select DM_CRYPT
select CRYPTO_AES_NI_INTEL
select CRYPTO_USER_API_SKCIPHER
# ethernet
select ALX
CRYPTO_AES_NI_INTEL может и не быть, смотрите на поддержку инструкций в вашем процессоре.
sysresccd / # echo 'source "../local/Kconfig"' >> /usr/src/linux/Kconfig
sysresccd / # cd /usr/src/linux
sysresccd /usr/src/linux # make defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'x86_64_defconfig'
#
# configuration written to .config
#
make -j$(nproc) && make install
Подробнее о том, как работать с подобным способом конфигурации ядра при обновлениях описано в https://dumpstack.io/1504674078_how_build_kernel.html
sysresccd / # genkernel --luks initramfs
Исправить в /etc/default/grub GRUB_CMDLINE_LINUX=“crypt_root=/dev/sda2 root_trim=yes”, а также добавить строку GRUB_ENABLE_CRYPTODISK=y
root_trim=yes необходимо в том случае, если используется SSD
sysresccd / # nano /etc/defaut/grub
sysresccd / # grub-install --efi-directory=/boot/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.
sysresccd / # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.12.12-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-4.12.12-gentoo
done
Установка базовой системы завершена. Можно перекрестить пальцы и перезагрузиться.
В случае каких-то проблем нужно загрузиться в sysresccd и проделать следующиее:
root@sysresccd /root % cryptsetup luksOpen /dev/sda2 root
root@sysresccd /root % mount /dev/mapper/root /mnt/gentoo
root@sysresccd /root % mount /dev/sda1 /mnt/gentoo/boot/efi
root@sysresccd /root % cd /mnt/gentoo
root@sysresccd /mnt/gentoo % mount --bind /sys sys && mount --bind /dev dev && mount --bind /proc proc && cp /etc/resolv.conf etc/ && chroot . /bin/bash
После этого неплохо было бы еще настроить Secure Boot и подписать grub, но это уже за рамками данного.