Гид по технологиям

Установка Arch Linux с полным шифрованием диска (dm-crypt / LUKS)

• 6 min read • Linux • Обновлено 23 Nov 2025
Arch Linux: полное шифрование диска (LUKS)
Arch Linux: полное шифрование диска (LUKS)

Введение

В этом руководстве показано, как установить Arch Linux на весь диск с полным шифрованием через dm-crypt и LUKS. Если у вас уже есть важные данные — сделайте резервную копию перед началом. В предыдущих материалах обсуждались основы dm-crypt и LUKS; здесь мы применим их к шифрованию всего диска и установке системы поверх зашифрованного контейнера.

Важно: все команды следует выполнять осторожно. Замените в примерах /dev/sda на устройство, соответствующее вашему диску.

Подготовка диска: стирание и разметка

  1. Найдите диск для установки:
lsblk
  1. (Опционально) Полное стирание содержимого диска для безопасности или если хотите «чистый» диск:
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda

Примечание: автор заметил, что запуск с –iterations=15 на 120 ГБ SSD занял около 7 часов; это пример из практики, не обязательный параметр для всех случаев.

  1. Разметка диска:
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/fstab

Chroot для дальнейшей настройки:

arch-chroot /mnt

Локаль, часовой пояс, хостнейм, пользователи

  1. Раскомментируйте локаль 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
  1. Часовой пояс и аппаратные часы:
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc --utc
  1. Установите hostname и пароль root:
echo CookieMonster > /etc/hostname
passwd
  1. Создайте системного пользователя и задайте пароль:
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

  1. Добавьте параметр к ядру, чтобы initramfs знал, где искать шифрованный root. В конфигурации GRUB (обычно /etc/default/grub) добавьте в GRUB_CMDLINE_LINUX или аналогичную строку параметр вида:
cryptdevice=/dev/sda2:cryptroot root=/dev/mapper/cryptroot
  1. В /etc/mkinitcpio.conf добавьте в HOOKS перед filesystems хук encrypt, например:
HOOKS=(base udev autodetect modconf block encrypt filesystems keyboard fsck)
  1. После правок пересоберите initramfs:
mkinitcpio -p linux
  1. Установите 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

Скриншот запуска X и терминалов

Восстановление системы из-под 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)

  1. GRUB не запрашивает пароль LUKS/зависает:

    • Проверьте, что в GRUB_CMDLINE_LINUX указан параметр cryptdevice=/dev/sda2:cryptroot.
    • Убедитесь, что в initramfs есть хук encrypt и вы пересобрали mkinitcpio.
  2. Не виден /dev/mapper/cryptroot при загрузке:

    • Проверьте правильность метки раздела и UUID в конфигурации.
    • Попробуйте загрузиться с Live и выполнить шаги восстановления (см. выше).
  3. Отсутствует сеть после установке:

    • Проверьте, включён ли NetworkManager systemctl enable –now NetworkManager.
    • Для DHCP используйте dhcpcd или NetworkManager в зависимости от конфигурации.
  4. Проблемы с GPU/драйверами:

    • Загляните в вики Arch по секции драйверов Xorg и установите соответствующие пакеты.

Альтернативные подходы и когда их выбрать

  • LVM поверх LUKS — полезно, если хотите гибко управлять логическими томами (снимки, изменение размеров). Подойдёт при необходимости /home на отдельном LV.
  • ZFS/ Btrfs+шифрование — если нужны возможности дедупликации, снимков или встроенной компрессии; требуют отдельной настройки и понимания.
  • Отдельный зашифрованный /home — упрощённый вариант, если не хотите шифровать систему целиком.

Когда это не подходит:

  • Если вам нужна возможность восстановления системы без ввода пароля (например, автоматический reboot в серверной установке), полное шифрование root усложнит автологирование.

Мини-методология: как планировать установку

  1. Подготовка: резервная копия, список необходимых пакетов, знание, UEFI или BIOS.
  2. Тестирование: попробуйте процедуру в виртуальной машине или на ненужном диске.
  3. Документирование: записывайте UUID разделов и параметры шифрования.
  4. Проверка: после установки проверить загрузку, восстановление из 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 на внешний носитель для более сложных сценариев.

Важное: проверяйте конфигурации перед перезагрузкой, сохраняйте ключи/пароли и держите резервные носители для аварийного восстановления.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро