[[ Шифрование корневого раздела на Ubuntu 11.04 (пароль) ]]

Ubuntu

Шифрование корневого раздела на Ubuntu 11.04 (пароль)

Модуль dm-crypt включен в ядро >=2.6.4

Статья рассматривает перенос Ubuntu на новый диск с зашифрованным корнем.

Дано:

  • /dev/sda - текущей диск на котором установлена Ubuntu.
  • /dev/sdb - новый чистый диск, который только что воткнули.
  • Ввод пароля будет осуществятся с клавиатуры при включении компьютера.

Так же к ознакомлению : Шифрование разделов dm-crypt Ubuntu 8.04

Подготовка

Диск

Разобьем диск следующим образом:

Имя    Флаги        Тип раздела  Тип ФС    [Метка]  Размер (МБ)
----------------------------------------------------------------
sdb1   Загрузочный  Основной     Linux              509,97      # Загрузочный ext2
sdb2                Основной     Linux              3997,49     # Зашифрованный SWAP
sdb3                Основной     Linux              100002,96   # Зашифрованный корень
sdb4                Основной     Linux              395597,46   # Не зашифрованный раздел для файл помойки

Утилиты и модули

Понадобятся cryptsetup

sudo apt-get install cryptsetup

Модуль dm_crypt

sudo modprobe dm_crypt

Форматирование

Создание шифрованного раздела ROOT

sudo cryptsetup luksFormat /dev/sdb3

Для тех кто не силен в английском

A you sure? (Type uppercase yes):

правильный ответ большими буквами: YES

Задать пароль

Введите пароль для LUKS: 
Verify passphrase: 

Подключение

sudo cryptsetup luksOpen /dev/sdb3 root

Форматирование

sudo mkfs.ext2 /dev/sdb1
sudo mkfs.ext4 -j /dev/mapper/root

Перенос системы

Монтирование

sudo mkdir /tmp/root
sudo mount /dev/mapper/root /tmp/root/
sudo mkdir /tmp/root/boot
sudo mount /dev/sdb1 /tmp/root/boot/

Копирование

Скопировать корень системы на новый диск

sudo rsync -AaHSxv / /tmp/root/

Команда rsync скопирует данные с сохранением всех прав.
Копирование с ключом x, это значит, содержимое каталогов примантированных в текущей момент к корню не будет скопировано в корень новой системы.
Будьте внимательны если /boot, /usr, /home и т.п. каталоги у вас примантированны с других разделов.

Папка /tmp/root/dev/ сейчас пуста, создать устройства

sudo mknod /tmp/root/dev/console -m 0600 c 5 1
sudo mknod /tmp/root/dev/null -m 0666 c 1 5



FSTAB

<note warning > Переход в окружение новой системы

sudo mount -t proc none /tmp/root/proc/
sudo mount -o bind /dev/ /tmp/root/dev/
sudo mount -o bind /sys/ /tmp/root/sys/
sudo chroot /tmp/root/ /bin/bash

</WRAP>

Посмотрим UUID

root@ubuntu-11-04:/# sudo blkid 
/dev/sda1: UUID="527bc30d-0b20-44cd-8f4c-e12a6fbecb4d" TYPE="ext4" 
/dev/sda5: UUID="eb993171-e029-468a-9ae7-eddec8c75fa3" TYPE="swap" 
/dev/sdb1: UUID="179dde80-2397-49ab-afd1-a156e2d8d3c2" TYPE="ext2" 
/dev/sdb2: UUID="14ed580c-4c2b-40af-85a7-3b2f205779a7" TYPE="crypto_LUKS" 
/dev/sdb3: UUID="33c0f114-23c3-43ad-832e-3170d4d43c47" TYPE="crypto_LUKS" 
/dev/mapper/root: UUID="c4e1b954-e7e1-4bc0-bd17-22e594592151" TYPE="ext4" 

Внесем изменения

/etc/fstab

...

# / was on /dev/mapper/root
UUID=c4e1b954-e7e1-4bc0-bd17-22e594592151 /      ext4    errors=remount-ro  0 1
# /boot was on /dev/sdb1
UUID=179dde80-2397-49ab-afd1-a156e2d8d3c2 /boot  ext2    noauto,noatime     1 2
# swap was on /dev/mapper/swap
/dev/mapper/swap none   swap    sw                 0 0

/etc/crypttab

swap UUID=14ed580c-4c2b-40af-85a7-3b2f205779a7 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256,hash=sha256


INITRAMFS

По прежнему находимся в окружении новой системы

Добавить модули

/etc/initramfs-tools/modules

dm_mod
dm_crypt
cryptoloop
sha256
sha512
aes
cbc

Создать

/etc/initramfs-tools/conf.d/cryptroot

target=root,source=UUID=33c0f114-23c3-43ad-832e-3170d4d43c47,key=none,rootdev

/etc/default/cryptdisks

CRYPTDISKS_ENABLE=Yes
CRYPTDISKS_MOUNT=""
CRYPTDISKS_CHECK=blkid
CRYPTDISKS_PRECHECK=

Обновление

sudo update-initramfs -u



GRUB

По прежнему находимся в окружении новой системы

Установка загрузчика на sdb

sudo cp /proc/mounts /etc/mtab
sudo grub-install  /dev/sdb

Обновление

sudo update-grub

Проверим UUID

/boot/grub/grub.cfg

...

### BEGIN /etc/grub.d/10_linux ###

...

menuentry 'Ubuntu, с Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        set gfxpayload=$linux_gfx_mode
        insmod part_msdos
        insmod ext2
        set root='(/dev/sdb,msdos1)'
        search --no-floppy --fs-uuid --set=root 179dde80-2397-49ab-afd1-a156e2d8d3c2
        linux   /vmlinuz-2.6.38-11-generic root=/dev/mapper/root ro   quiet splash vt.handoff=7
        initrd  /initrd.img-2.6.38-11-generic
}


Завершение

Выход из виртуального окружения

exit

Размонтирование

cd /
sudo umount /tmp/root/dev/
sudo umount /tmp/root/sys/
sudo umount /tmp/root/proc/
sudo umount /tmp/root/boot/
sudo umount /tmp/root/

Перезагрузка

sudo reboot

Не забыть в BIOS выбрать загрузку с диска sdb.

SWAP не успевает мгновенно подключиться поэтому и возникает сообщение (см. скрин), на это можно забить.



Обсуждение

ZenBooster, 2013/05/14 14:06

Попробовал на Ubuntu 10.04.4 LTS, работает!

ZenBooster, 2013/05/14 17:59

…только есть несколько проблем. 1. Отключил splash в GRUB2, фраза "enter pass phrase" отображается совсем уж коряво (с включенным сплешом, кстати тоже). Почему 2 символа ':' на конце? Почему выводится новая строка "Unlocking the disk блаблабла" после каждого введенного символа пароля? Правда в систему все же пускает.

Ваш комментарий. Вики-синтаксис разрешён:
172 +0 =​
 
howto/ubuntu/ubuntu_dmcrypt_root.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki