Как установить Arch Linux с полным шифрованием диска
На этой странице
- Ссылки
В сегодняшнем уроке мы собираемся установить Arch Linux с полным шифрованием диска.
Прежде чем мы продолжим, я хочу, чтобы вы сделали резервную копию существующих данных.
В предыдущем уроке мы узнали, что такое dm-crypt и LUKS и как зашифровать один раздел диска. В то время как в сегодняшнем посте мы будем использовать немного другой подход, чтобы зашифровать весь диск с помощью dm-crypt LUKS и установить на него Archlinux.
Начнем с очистки диска. Запустите lsblk, чтобы найти основной диск и заменить /dev/sda
там, где это необходимо:
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda
Я выполнил указанную выше команду с параметром --iterations=15 на своем твердотельном накопителе емкостью 120 ГБ и завершил ее через 7 часов.
После этого разделите диск. Если ваша материнская плата не использует прошивку UEFI, обязательно выберите метку dos (msdos), в противном случае используйте gpt при вводе:
cfdisk /dev/sda
После этого создайте раздел загрузчика:
New-> Partition Size: 100M -> primary -> Bootable
Последним будет корневой раздел. Размер раздела должен быть автоматически установлен на оставшееся свободное место.
New-> Partition Size: xxxGB -> primary
Запишите изменения и выйдите из cfdisk.
Чтобы загрузить ваш зашифрованный корневой раздел, раздел загрузчика /dev/sda1
, который будет смонтирован в /boot, не будет зашифрован. В конце этого поста я размещу пару ссылок, которые помогут вам зашифровать и даже переместить загрузочный раздел на CD/DVD/USB.
Создайте устройство сопоставления криптографических устройств в режиме шифрования LUKS:
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
Создайте загрузочную и корневую файловые системы:
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
Раскомментируйте локаль 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
Установите аппаратные часы на UTC:
hwclock --systohc --utc
Установите желаемое имя хоста:
echo CookieMonster > /etc/hostname
Установите пароль root:
passwd
Добавьте системного пользователя:
useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash username
Установите пароль пользователя системы:
passwd username
Установите sudo (base-devel) и загрузчик grub и os-prober:
pacman -S sudo grub-bios os-prober
Разрешить системному пользователю использовать sudo и запускать команды (временно) от имени пользователя root:
EDITOR=nano visudo
Нажмите CTRL + W и введите колесо, затем раскомментируйте следующую строку:
Добавьте следующий параметр ядра, чтобы иметь возможность разблокировать зашифрованный корневой раздел LUKS во время запуска системы:
Добавьте хук шифрования:
Так как мы добавили новый хук в конфигурационный файл mkinitcpio, мы должны повторно сгенерировать наш образ initrams (ramdisk):
mkinitcpio -p linux
Установите grub и сохраните его файл конфигурации:
grub-install --recheck /dev/sda
grub-mkconfig --output /boot/grub/grub.cfg
Выходим из chroot, размонтируем разделы, закрываем устройство и перезагружаемся (извлекаем установочный носитель):
exit
umount -R /mnt/boot
umount -R /mnt
cryptsetup close cryptroot
systemctl reboot
Как только вы введете свой пароль и войдете в систему как системный пользователь, запустите dhcpcd.
sudo systemctl start dhcpcd
ping -c2 youtube.com
Установите Xorg и скопируйте .xinitrc в каталог $HOME:
sudo pacman -S xorg-server xorg-server-utils xorg-xinit mesa xterm xorg-twm xorg-xclock
cp /etc/X11/xinit/xinitrc ~/.xinitrc
Существует специальная вики-страница, содержащая полезную информацию о драйверах графического процессора, проверьте ее https://wiki.archlinux.org/index.php/xorg#Driver_installation и, если это произойдет, ваш бренд графического процессора будет amd/ati, intel или nvidia устанавливает соответствующие драйверы, перечисленные там.
Введите startx
, и вы должны увидеть пару терминалов рядом, теперь введите exit
Прокомментируйте следующие строки в .xinitrc и добавьте некоторые, чтобы указать, что мы хотим, чтобы среда рабочего стола xfce запускалась после успешного входа в систему:
Установите xfce, внешний дисплейный менеджер и сетевой менеджер:
sudo pacman -S slim archlinux-themes-slim xfce4 networkmanager network-manager-applet
Замените тонкую тему по умолчанию:
Остановить dhcpcd, включить slim, включить NetworkManager, startx:
sudo systemctl stop dhcpcd
sudo systemctl enable NetworkManager
sudo systemctl enable slim
startx
Вот и все, надеюсь, вам понравился этот пост.
Если вам когда-нибудь удастся испортить вашу систему и вам придется использовать 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
Ссылки
Обещанные ссылки, читайте внимательно 8-ю и 9-ю ссылки, если у вас есть SSD:
- ссылка 1
- ссылка 2
- ссылка 3
- ссылка 4
- ссылка 5
- ссылка 6
- ссылка 7
- ссылка 8
- ссылка 9
- ссылка 10