Участник:DamyrKhann/Установка ALT Linux P10 методом chroot
Это руководство детально описывает процесс ручной установки ALT Linux P10 методом chroot на архитектуру PC x86_64. Предполагается, что вы уже знакомы с системой GNU/Linux, но не обязательно с установкой системы GNU/Linux методом chroot. Автор снимает с себя всякую ответственность за любой ущерб, причинённый вследствие использования данного руководства. Предполагается, что данная методика будет использована опытным пользователем с полным осознанием процесса установки.
Причина, по которой было написано данное руководство, это отсутствие возможности у штатного инсталлятора установки системы на уже существующую разметку диска, которая предполагает наряду с полным шифрованием разделов системы GNU/Linux (LVM on LUKS) также наличие разделов с установленной системой Microsoft Windows 11.
Вводные данные
- Ноутбук Thinkpad X220 (Intel Core i7)
- Samsung SSD 860 EVO 1TB
- Накопитель USB с Simply Linux P9.1 Live ISO
- Режим загрузки системы UEFI
- Интернет соединение
- Разметка диска
# fdisk --list /dev/sda —bytes Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: Samsung SSD 860 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 09920250-CD30-4802-85DE-EE050BF1FB21
Device Start End Sectors Size Type /dev/sda1 2048 206847 204800 104857600 EFI System /dev/sda2 206848 239615 32768 16777216 Microsoft reserved /dev/sda3 239616 209954815 209715200 107374182400 Microsoft basic data /dev/sda4 209954816 210978815 1024000 524288000 Windows recovery environment /dev/sda5 210978816 212002815 1024000 524288000 Linux filesystem /dev/sda6 212002816 1953525134 1741522319 891659427328 Linux filesystem
- Структура диска
# lsblk --bytes --tree --output NAME,PATH,SIZE,TYPE,FSTYPE NAME PATH SIZE TYPE FSTYPE sda /dev/sda 1000204886016 disk ├─sda1 /dev/sda1 104857600 part vfat ├─sda2 /dev/sda2 16777216 part ├─sda3 /dev/sda3 107374182400 part ntfs ├─sda4 /dev/sda4 524288000 part ntfs ├─sda5 /dev/sda5 524288000 part crypto_LUKS │ └─sda5-luks /dev/mapper/sda5-luks 522190848 crypt ext2 └─sda6 /dev/sda6 891659427328 part crypto_LUKS └─sda6-luks /dev/mapper/sda6-luks 891642650112 crypt LVM2_member ├─linux-root /dev/mapper/linux-root 21474836480 lvm ext4 ├─linux-swap /dev/mapper/linux-swap 11169431552 lvm swap └─linux-home /dev/mapper/linux-home 858993459200 lvm ext4
Конфигурирование
Скачиваем Live ISO-образ Simply Linux P9.1 и записываем его на накопитель USB. Загружаемся с USB в LIVE-систему, устанавливаем интернет соединение.
Расшифровываем разделы LUKS:
# cryptsetup luksOpen /dev/sda5 sda5-luks # cryptsetup luksOpen /dev/sda6 sda6-luks
Активируем логические тома LVM:
# vgchange --activate y 3 logical volume(s) in volume group "linux" now active
Монтируем логический том c корнем (/) системы:
# mount /dev/linux/root /mnt # cd /mnt
Скачиваем архив rootfs и разворачиваем его в корне:
# wget https://mirror.yandex.ru/altlinux/p10/images/cloud/alt-p10-rootfs-systemd-x86_64.tar.xz # tar -xf alt-p10-rootfs-systemd-x86_64.tar.xz # rm alt-p10-rootfs-systemd-x86_64.tar.xz
Монтируем остальные разделы и тома:
# mount /dev/mapper/boot /mnt/boot # mkdir /mnt/boot/efi # mount /dev/sda1 /mnt/boot/efi # mount /dev/linux/home /mnt/home
Монтируем псевдо-файловые системы необходимые для chroot:
# mount --rbind /sys /mnt/sys && mount --make-rslave /mnt/sys # mount --rbind /dev /mnt/dev && mount --make-rslave /mnt/dev # mount --rbind /proc /mnt/proc && mount --make-rslave /mnt/proc
Подгружаем модуль efivars, он понадобиться при установке загрузчика:
# modprobe efivars
Переходим в chroot:
# PS1='(chroot) # ' chroot /mnt/ /bin/bash
Установка
Обновляем систему:
# apt-get update # apt-get dist-upgrade # apt-get install update-kernel # update-kernel
Устанавливаем модули ядра и прошивки:
# apt-get install kernel-modules-drm-un-def # apt-get install firmware-linux # apt-get install firmware-intel-ucode
Устанавливаем утилиты для работы с LUKS и LVM:
# apt-get install cryptsetup # apt-get install lvm2
Устанавливаем дополнительные пакеты для initrd:
# apt-get install make-initrd-luks # apt-get install make-initrd-lvm # apt-get install make-initrd-ucode
Устанавливаем утилиты для работы с файловыми системами:
# apt-get install dosfstools # apt-get install ntfs-3g
Устанавливаем пароль пользователя root:
# passwd
Устанавливаем божественный VIM :) или любой другой редактор:
# apt-get install vim-console
Задаём локаль системы:
# vim /etc/sysconfig/i18n LANG=ru_RU.UTF-8 SUPPORTED=ru_RU.UTF-8
# vim /etc/locale.conf LANG=ru_RU.UTF-8
Наполняем файл /etc/fstab данными:
# blkid | grep 'sda1\|linux-' | perl -pe 's/^(.*):.*UUID="([^"]*).*" TYPE="([^"]*).*"/sprintf "# %s\nUUID=%s <mount_point>\t%s\tdefaults\t0\t0", $1,$2,$3/e' >> /etc/fstab
Правим файл /etc/fstab и приводим его к следующему виду:
# <file system> <dir> <type> <options> <dump> <pass> # /dev/mapper/linux-root UUID=de1f16a5-3ed4-4d33-b1b1-f649f8eeed5b / ext4 rw,relatime 0 1 # /dev/mapper/sda5-luks UUID=932cb2aa-e00a-4431-9c73-c04abb738641 /boot ext2 rw,relatime 0 2 # /dev/sda1 UUID=5E9D-1B2A /boot/efi vfat rw,relatime 0 2 # /dev/mapper/linux-home UUID=0501d28b-9878-402a-9618-174b28375c66 /home ext4 rw,relatime 0 2 # proc proc /proc proc nosuid,noexec,gid=proc 0 0 # devpts devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0 # tmpfs tmpfs /tmp tmpfs nosuid 0 0 # /dev/mapper/linux-swap UUID=11527a6f-4781-4cb5-b4a3-97008506a5c0 swap swap rw,noatime 0 0
Наполняем файл /etc/crypttab данными:
# blkid | grep '/dev/sda5\|/dev/sda6' | perl -pe 's/^(.*):.*UUID="([^"]*).*"/sprintf "# %s\n<volume-name>\tUUID=%s\tnone\tluks,discard", $1,$2/e' >> /etc/crypttab
Правим файл /etc/crypttab и приводим его к следующему виду:
# /dev/sda5 sda5-luks UUID=cba24890-59c9-d049-8385-2d6097febd7c none luks,discard # /dev/sda6 sda6-luks UUID=a2c0bb11-bea7-8543-b785-146a2dda0355 none luks,discard
Создаём ключ шифрования для разделов LUKS один для всех разделов. Автор не смог сделать так, чтобы система загружалась с разными ключами для каждого раздела. Прошу помощи в решении данного вопроса:
# mkdir /etc/cryptsetup-keys.d # dd if=/dev/random of=/etc/cryptsetup-keys.d/luks.key bs=512 count=4 # chmod 0700 /etc/cryptsetup-keys.d # chmod 0600 /etc/cryptsetup-keys.d/luks.key # cryptsetup luksAddKey /dev/sda5 /etc/cryptsetup-keys.d/luks.key # cryptsetup luksAddKey /dev/sda6 /etc/cryptsetup-keys.d/luks.key
Устанавливаем утилиты для работы с загрузчиком системы:
# apt-get install efivar # apt-get install efibootmgr # apt-get install grub # apt-get install grub-efi
Правим файл /etc/sysconfig/grub2:
# vim /etc/sysconfig/grub2 GRUB_CMDLINE_LINUX_DEFAULT='panic=30 nosplash i915.modeset=1 luks-key=/etc/cryptsetup-keys.d/luks.key' # This defines /boot/efi/EFI subdir name GRUB_BOOTLOADER_ID="ALTLinux" # Uncomment to enable booting from LUKS encrypted devices GRUB_ENABLE_CRYPTODISK=y
Правим файл /etc/luks.keys:
# vim /etc/luks.keys /etc/cryptsetup-keys.d/luks.key
Правим файл /etc/initrd.mk:
# vim /etc/initrd.mk PUT_FILES += \ /etc/cryptsetup-keys.d/luks.key \ /etc/luks.keys \ /etc/crypttab
Доустанавливаем некоторые пакеты, которые могут пригодиться после установки:
# apt-get install x11presetdrv # apt-get install NetworkManager # apt-get install fdisk
Собираем initrd и устанавливаем загрузчик:
# make-initrd -k 5.14.8-un-def-alt1 # update-grub # grub-efi-autoupdate
Выходим из окружения chroot, размонтируем все смонтированные файловые системы и перезагружаемся:
# exit # umount -R /mnt # reboot
Если всё сделано правильно, то после ввода пароля от раздела /dev/sda5 мы загрузимся в систему!