Установка Arch Linux с полным шифрованием диска (dm-crypt / LUKS)
Введение
В этом руководстве показано, как установить Arch Linux на весь диск с полным шифрованием через dm-crypt и LUKS. Если у вас уже есть важные данные — сделайте резервную копию перед началом. В предыдущих материалах обсуждались основы dm-crypt и LUKS; здесь мы применим их к шифрованию всего диска и установке системы поверх зашифрованного контейнера.
Важно: все команды следует выполнять осторожно. Замените в примерах /dev/sda на устройство, соответствующее вашему диску.
Подготовка диска: стирание и разметка
- Найдите диск для установки:
lsblk- (Опционально) Полное стирание содержимого диска для безопасности или если хотите «чистый» диск:
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sdaПримечание: автор заметил, что запуск с –iterations=15 на 120 ГБ SSD занял около 7 часов; это пример из практики, не обязательный параметр для всех случаев.
- Разметка диска:
cfdisk /dev/sda- Если ваша материнская плата не использует UEFI, выберите метку тома dos (msdos); иначе выберите gpt.
- Создайте загрузочный раздел (~100M), пометьте его как primary и bootable. Это будет /dev/sda1 и монтироваться как /boot — он НЕ будет зашифрован.
- Создайте второй раздел, занимающий оставшееся пространство — это будет /dev/sda2 и пойдёт под LUKS-контейнер.
Пример действий в cfdisk:
New -> Partition Size: 100M -> primary -> Bootable
New -> Partition Size: <оставшееся пространство> -> primary
Write -> Quit
Важно: загрузочный раздел /boot остаётся открытым, чтобы GRUB мог загрузиться и получить initramfs. В конце статьи приведены ссылки и варианты, как перетащить /boot на внешнее носитель или зашифровать его особым способом.
Создание LUKS-контейнера и файловых систем
Создаём LUKS на разделе /dev/sda2 (замените параметры шифрования при необходимости):
cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda2Откройте контейнер и присвойте ему имя cryptroot:
cryptsetup open --type luks /dev/sda2 cryptrootСоздайте файловые системы для /boot и корня системы внутри контейнера:
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/mapper/cryptrootСмонтируйте их для установки:
mount -t ext4 /dev/mapper/cryptroot /mnt
mkdir -p /mnt/boot
mount -t ext4 /dev/sda1 /mnt/bootУстановка базовой системы
Установите базовые пакеты:
pacstrap -i /mnt base base-develСгенерируйте fstab:
genfstab -U -p /mnt >> /mnt/etc/fstabChroot для дальнейшей настройки:
arch-chroot /mntЛокаль, часовой пояс, хостнейм, пользователи
- Раскомментируйте локаль en_US и сгенерируйте локали:
sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8- Часовой пояс и аппаратные часы:
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc --utc- Установите hostname и пароль root:
echo CookieMonster > /etc/hostname
passwd- Создайте системного пользователя и задайте пароль:
useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash username
passwd usernameУстановка загрузчика и sudo
Установите sudo, GRUB и os-prober:
pacman -S sudo grub-bios os-proberРазрешите пользователю из группы wheel использовать sudo:
EDITOR=nano visudoНайдите строку с wheel и раскомментируйте её.
Настройка загрузки LUKS: kernel parameters и hooks
- Добавьте параметр к ядру, чтобы initramfs знал, где искать шифрованный root. В конфигурации GRUB (обычно /etc/default/grub) добавьте в GRUB_CMDLINE_LINUX или аналогичную строку параметр вида:
cryptdevice=/dev/sda2:cryptroot root=/dev/mapper/cryptroot- В /etc/mkinitcpio.conf добавьте в HOOKS перед filesystems хук encrypt, например:
HOOKS=(base udev autodetect modconf block encrypt filesystems keyboard fsck)- После правок пересоберите initramfs:
mkinitcpio -p linux- Установите GRUB на диск и сгенерируйте конфигурацию:
grub-install --recheck /dev/sda
grub-mkconfig --output /boot/grub/grub.cfgЗавершение установки и перезагрузка
Выйдите из chroot, размонтируйте, закройте LUKS-контейнер и перезагрузите:
exit
umount -R /mnt/boot
umount -R /mnt
cryptsetup close cryptroot
systemctl rebootНе забудьте извлечь установочный носитель.
Первоначальная настройка рабочего окружения
После загрузки и входа под созданным пользователем, запустите сеть (если используется dhcpcd):
sudo systemctl start dhcpcd
ping -c2 youtube.comУстановите Xorg и скопируйте шаблон .xinitrc:
sudo pacman -S xorg-server xorg-server-utils xorg-xinit mesa xterm xorg-twm xorg-xclock
cp /etc/X11/xinit/xinitrc ~/.xinitrcПроверьте соответствующие драйверы GPU на вики Arch: https://wiki.archlinux.org/index.php/xorg#Driver_installation
Запустите X:
startxЕсли всё нормально, установите xfce, дисплей-менеджер и NetworkManager:
sudo pacman -S slim archlinux-themes-slim xfce4 networkmanager network-manager-appletНастройте тему SLiM и включите сервисы:
sudo systemctl stop dhcpcd
sudo systemctl enable NetworkManager
sudo systemctl enable slim
startx
Восстановление системы из-под Live (чroot при сбое)
Если система не загружается и нужно chroot-ать с установочного носителя, порядок действий:
cryptsetup open --type luks /dev/sda2 cryptroot
mount -t ext4 /dev/mapper/cryptroot /mnt
mount -t ext4 /dev/sda1 /mnt/boot
arch-chroot /mntЧтобы выйти и корректно размонтировать:
umount -R /mnt/boot
umount -R /mnt
cryptsetup close cryptroot
Критерии приёмки
- При загрузке GRUB запрашивает passphrase для LUKS и система загружается до логина.
- /boot доступен и содержит grub.cfg и initramfs.
- После входа сеть доступна и X/DE запускается корректно.
Частые проблемы и руководство по устранению (runbook)
GRUB не запрашивает пароль LUKS/зависает:
- Проверьте, что в GRUB_CMDLINE_LINUX указан параметр cryptdevice=/dev/sda2:cryptroot.
- Убедитесь, что в initramfs есть хук encrypt и вы пересобрали mkinitcpio.
Не виден /dev/mapper/cryptroot при загрузке:
- Проверьте правильность метки раздела и UUID в конфигурации.
- Попробуйте загрузиться с Live и выполнить шаги восстановления (см. выше).
Отсутствует сеть после установке:
- Проверьте, включён ли NetworkManager systemctl enable –now NetworkManager.
- Для DHCP используйте dhcpcd или NetworkManager в зависимости от конфигурации.
Проблемы с GPU/драйверами:
- Загляните в вики Arch по секции драйверов Xorg и установите соответствующие пакеты.
Альтернативные подходы и когда их выбрать
- LVM поверх LUKS — полезно, если хотите гибко управлять логическими томами (снимки, изменение размеров). Подойдёт при необходимости /home на отдельном LV.
- ZFS/ Btrfs+шифрование — если нужны возможности дедупликации, снимков или встроенной компрессии; требуют отдельной настройки и понимания.
- Отдельный зашифрованный /home — упрощённый вариант, если не хотите шифровать систему целиком.
Когда это не подходит:
- Если вам нужна возможность восстановления системы без ввода пароля (например, автоматический reboot в серверной установке), полное шифрование root усложнит автологирование.
Мини-методология: как планировать установку
- Подготовка: резервная копия, список необходимых пакетов, знание, UEFI или BIOS.
- Тестирование: попробуйте процедуру в виртуальной машине или на ненужном диске.
- Документирование: записывайте UUID разделов и параметры шифрования.
- Проверка: после установки проверить загрузку, восстановление из Live и доступ к сети.
Контрольный чек-лист для установки (роль: Инсталлятор)
- Сохранил резервные копии важных данных
- Определил правильный диск (/dev/sda и т. п.)
- Провёл разметку: /boot и LUKS root
- Создал LUKS-контейнер и открыл его как cryptroot
- Создал файловые системы и примонтировал
- Установил base и base-devel
- Настроил локаль, часовой пояс и hostname
- Установил GRUB, добавил cryptdevice в параметры ядра
- Добавил encrypt в HOOKS и пересобрал mkinitcpio
- Протестировал загрузку и вход в систему
Краткий глоссарий (1 строка)
- LUKS — стандартный формат контейнеров шифрования дисков в Linux.
- dm-crypt — подсистема ядра для шифрования блочных устройств.
- initramfs — ранний образ файловой системы, используемый при загрузке.
- GRUB — загрузчик, который обеспечивает выбор ОС и передачу параметров ядру.
Ссылки
Ниже — исходные и полезные ссылки (из оригинального поста):
- link 1
- link 2
- link 3
- link 4
- link 5
- link 6
- link 7
- link 8
- link 9
- link 10
Итог
Установка Arch Linux с полным шифрованием диска даёт надёжную защиту данных при условии корректной настройки initramfs и загрузчика. В этом руководстве приведён воспроизводимый набор шагов и рекомендации по восстановлению. Если нужно, используйте варианты с LVM или переносом /boot на внешний носитель для более сложных сценариев.
Важное: проверяйте конфигурации перед перезагрузкой, сохраняйте ключи/пароли и держите резервные носители для аварийного восстановления.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента