HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: linux, grub, luks, debian 8.10, ubuntu 16.04, cryptsetup, aes-cbc, aes-lrw, aes-xts, системное администрирование, uuid, перенос системы на зашифрованный раздел luks, шифрование дисков в linux</p>
1 <p>Теги: linux, grub, luks, debian 8.10, ubuntu 16.04, cryptsetup, aes-cbc, aes-lrw, aes-xts, системное администрирование, uuid, перенос системы на зашифрованный раздел luks, шифрование дисков в linux</p>
2 <p>Был солнечный тёплый день, когда мне поручили зашифровать все сервера. А это более 50 разных машин: на Centos, debian и ubuntu. Яростно погуглив, порыскав по форумам, я не нашёл однозначного решения. Помогли инструкции по переносу машин с диска на диск и инструкции запуска системы с флешки. Всё получилось, и вот уже несколько десятков машин крутятся с такой схемой.</p>
2 <p>Был солнечный тёплый день, когда мне поручили зашифровать все сервера. А это более 50 разных машин: на Centos, debian и ubuntu. Яростно погуглив, порыскав по форумам, я не нашёл однозначного решения. Помогли инструкции по переносу машин с диска на диск и инструкции запуска системы с флешки. Всё получилось, и вот уже несколько десятков машин крутятся с такой схемой.</p>
3 <h2>Итак, то же нужно сделать?</h2>
3 <h2>Итак, то же нужно сделать?</h2>
4 <p>Представляю вашему вниманию самописную инструкцию по переносу на зашифрованный раздел c использованием ESX 6.0. Её можно использовать и для переноса системы, если не брать в расчёт шифрование.</p>
4 <p>Представляю вашему вниманию самописную инструкцию по переносу на зашифрованный раздел c использованием ESX 6.0. Её можно использовать и для переноса системы, если не брать в расчёт шифрование.</p>
5 <h3>1. Подготовка к переносу</h3>
5 <h3>1. Подготовка к переносу</h3>
6 <p>Сначала подключаем диск нужного размера:</p>
6 <p>Сначала подключаем диск нужного размера:</p>
7 <h4>1.1 Разбиваем диск на 2 и более разделов</h4>
7 <h4>1.1 Разбиваем диск на 2 и более разделов</h4>
8 <p>/boot должен быть отдельно. Он, как вы догадались, не будет зашифрован. Диск не обязательно должен совпадать с исходным размером:</p>
8 <p>/boot должен быть отдельно. Он, как вы догадались, не будет зашифрован. Диск не обязательно должен совпадать с исходным размером:</p>
9 <p>Форматируем /boot mkfs.ext4 /dev/sda1</p>
9 <p>Форматируем /boot mkfs.ext4 /dev/sda1</p>
10 <p>Создаём зашифрованный раздел cryptsetup luksFormat /dev/sdb2</p>
10 <p>Создаём зашифрованный раздел cryptsetup luksFormat /dev/sdb2</p>
11 <p><strong>Важно: YES большими буквами!</strong>В принципе указание об этом будет, но на<em>басурманском</em>языке.</p>
11 <p><strong>Важно: YES большими буквами!</strong>В принципе указание об этом будет, но на<em>басурманском</em>языке.</p>
12 <h4>1.2 Инициализируем раздел</h4>
12 <h4>1.2 Инициализируем раздел</h4>
13 <p>cryptsetup luksOpen /dev/sdb sdb2_crypt и не забываем дописывать аргумент или удивляемся, что сделано не так.</p>
13 <p>cryptsetup luksOpen /dev/sdb sdb2_crypt и не забываем дописывать аргумент или удивляемся, что сделано не так.</p>
14 <h4>1.3 Далее я создал LVM на него и положил систему</h4>
14 <h4>1.3 Далее я создал LVM на него и положил систему</h4>
15 <p>Тут всё просто:</p>
15 <p>Тут всё просто:</p>
16 pvcreate /dev/mapper/sda2_crypt<p>Указываем зашифрованный диск:</p>
16 pvcreate /dev/mapper/sda2_crypt<p>Указываем зашифрованный диск:</p>
17 vgcreate crypto /dev/mapper/sda2_crypt<h4>1.4 Создаём раздел под корневой раздел</h4>
17 vgcreate crypto /dev/mapper/sda2_crypt<h4>1.4 Создаём раздел под корневой раздел</h4>
18 <p>lvcreate -l 100FREE% -n название раздела, название группы или как на картинке немного по-другому:</p>
18 <p>lvcreate -l 100FREE% -n название раздела, название группы или как на картинке немного по-другому:</p>
19 <h4>1.5 Создаём раздел для файла подкачки</h4>
19 <h4>1.5 Создаём раздел для файла подкачки</h4>
20 <p>lvcreate -L 2G -n swap название группы</p>
20 <p>lvcreate -L 2G -n swap название группы</p>
21 <p>Проверяем:</p>
21 <p>Проверяем:</p>
22 <p>lvscan</p>
22 <p>lvscan</p>
23 <h4>1.6 Форматируем LVM</h4>
23 <h4>1.6 Форматируем LVM</h4>
24 mkfs.ext4 /dev/crypto/vol1 mkfs.ext4 /dev/crypto/SWAP<p>Если нет<strong>swap</strong>, создаём и подключаем. Размер выбираем так, что если памяти выделено 2 Гб то<strong>swap</strong>должен быть от 2 до 4 Гб.</p>
24 mkfs.ext4 /dev/crypto/vol1 mkfs.ext4 /dev/crypto/SWAP<p>Если нет<strong>swap</strong>, создаём и подключаем. Размер выбираем так, что если памяти выделено 2 Гб то<strong>swap</strong>должен быть от 2 до 4 Гб.</p>
25 <h4>1.7 Создаём swap</h4>
25 <h4>1.7 Создаём swap</h4>
26 fallocate -l 4G /swapdir/swapfile<p>Проверяем , что он создан:</p>
26 fallocate -l 4G /swapdir/swapfile<p>Проверяем , что он создан:</p>
27 <h4>1.8 Настраиваем права</h4>
27 <h4>1.8 Настраиваем права</h4>
28 chmod 600 /swapdir/swapfile<p>Делаем из файла<strong>swap</strong>:</p>
28 chmod 600 /swapdir/swapfile<p>Делаем из файла<strong>swap</strong>:</p>
29 <h4>1.9 Подключаем в систему</h4>
29 <h4>1.9 Подключаем в систему</h4>
30 <p>Проверяем:</p>
30 <p>Проверяем:</p>
31 <p>Теперь самое интересное - всё то, что нажито непосильным трудом!</p>
31 <p>Теперь самое интересное - всё то, что нажито непосильным трудом!</p>
32 <h2>2. Приступаем к переносу!</h2>
32 <h2>2. Приступаем к переносу!</h2>
33 <h4>2.1 Создаём папки</h4>
33 <h4>2.1 Создаём папки</h4>
34 mkdir /mnt/new mkdir /mnt/old mkdir /mnt/boot<h4>2.2 Монтируем</h4>
34 mkdir /mnt/new mkdir /mnt/old mkdir /mnt/boot<h4>2.2 Монтируем</h4>
35 <p>Текущий корневой раздел монтируем в папку<strong>old</strong>.</p>
35 <p>Текущий корневой раздел монтируем в папку<strong>old</strong>.</p>
36 <h4>2.3 Новый LVM раздел</h4>
36 <h4>2.3 Новый LVM раздел</h4>
37 mount /dev/crypto/vol1/ /mnt/new/<h4>2.4 Раздел загрузки</h4>
37 mount /dev/crypto/vol1/ /mnt/new/<h4>2.4 Раздел загрузки</h4>
38 mount /dev/sdb1 /mnt/boot<h4>2.5 Копируем корневой раздел</h4>
38 mount /dev/sdb1 /mnt/boot<h4>2.5 Копируем корневой раздел</h4>
39 rsync -av /mnt/old/ /mnt/new/<h4>2.6 Копируем загрузку</h4>
39 rsync -av /mnt/old/ /mnt/new/<h4>2.6 Копируем загрузку</h4>
40 rsync -av /mnt/old/boot/ /mnt/boot/<h2>3. Перенос системы</h2>
40 rsync -av /mnt/old/boot/ /mnt/boot/<h2>3. Перенос системы</h2>
41 <h4>3.1 Монтируем систему</h4>
41 <h4>3.1 Монтируем систему</h4>
42 Mount -bind /sys /mnt/new/sys Mount -bind /dev /mnt/new/dev Mount -bind /proc /mnt/new/proc<h4>3.2 Меняем корневой раздел</h4>
42 Mount -bind /sys /mnt/new/sys Mount -bind /dev /mnt/new/dev Mount -bind /proc /mnt/new/proc<h4>3.2 Меняем корневой раздел</h4>
43 <p>Посмотреть все<strong>UUID</strong>. Ваши будут отличаться от представленных:</p>
43 <p>Посмотреть все<strong>UUID</strong>. Ваши будут отличаться от представленных:</p>
44 <h4>3.3 Монтирование дисков в новой системе</h4>
44 <h4>3.3 Монтирование дисков в новой системе</h4>
45 vim /etc/fstab /dev/mapper/crypto-vol1 / ext4 noatime,errors=remount-ro 0 1 UUID="3efdf7e2-4bff-4fd6-b95a-60bb60ece16c" /boot ext4 default 0 1 UUID=”09f94ec7-cb53-4bdf-9c20-d10b9b358719” /swap swap sw 0 0<h4>3.4 Монтируем Luks, чтобы загружался при загрузке</h4>
45 vim /etc/fstab /dev/mapper/crypto-vol1 / ext4 noatime,errors=remount-ro 0 1 UUID="3efdf7e2-4bff-4fd6-b95a-60bb60ece16c" /boot ext4 default 0 1 UUID=”09f94ec7-cb53-4bdf-9c20-d10b9b358719” /swap swap sw 0 0<h4>3.4 Монтируем Luks, чтобы загружался при загрузке</h4>
46 <h4>3.5 UUID крипто диска прописываем:</h4>
46 <h4>3.5 UUID крипто диска прописываем:</h4>
47 sda2_crypt UUID=0a6accdb-9968-403a-b8bd-f9be6d3aaaec none luks<p><strong>!!!Рекомендую сделать снапшот или бекап перед этим этапом!!!</strong></p>
47 sda2_crypt UUID=0a6accdb-9968-403a-b8bd-f9be6d3aaaec none luks<p><strong>!!!Рекомендую сделать снапшот или бекап перед этим этапом!!!</strong></p>
48 <h2>4 Загрузка</h2>
48 <h2>4 Загрузка</h2>
49 <h4>4.1 Редактируем GRUB</h4>
49 <h4>4.1 Редактируем GRUB</h4>
50 Vim /etc/default/grub GRUB_ENABLE_CRYPTODISK=y<h4>4.2 Устанавливаем GRUB на диск, с которого будет грузится:</h4>
50 Vim /etc/default/grub GRUB_ENABLE_CRYPTODISK=y<h4>4.2 Устанавливаем GRUB на диск, с которого будет грузится:</h4>
51 <p>Могут быть сообщения об ошибках<strong>lvm</strong>, игнорируем их.</p>
51 <p>Могут быть сообщения об ошибках<strong>lvm</strong>, игнорируем их.</p>
52 <h4>4.3 Обновляем GRUB</h4>
52 <h4>4.3 Обновляем GRUB</h4>
53 <h4>4.4 Обновляем образ</h4>
53 <h4>4.4 Обновляем образ</h4>
54 update-initramfs -k all -u<h4>4.5 Делаем EXIT</h4>
54 update-initramfs -k all -u<h4>4.5 Делаем EXIT</h4>
55 <p>Из корневого раздела /mnt/new</p>
55 <p>Из корневого раздела /mnt/new</p>
56 <h4>4.6 Отмонтируем</h4>
56 <h4>4.6 Отмонтируем</h4>
57 umount /mnt/new/sys umount /mnt/new/dev umount /mnt/new/proc umount /mnt/new umount /mnt/boot<h4>4.7 Выключаемся</h4>
57 umount /mnt/new/sys umount /mnt/new/dev umount /mnt/new/proc umount /mnt/new umount /mnt/boot<h4>4.7 Выключаемся</h4>
58 <h4>4.8 Меняем диск загрузки, грузимся</h4>
58 <h4>4.8 Меняем диск загрузки, грузимся</h4>
59 <p>После смены дисков, их названия изменятся. Например, были<strong>sdb</strong>- станет<strong>sda</strong>и наоборот.</p>
59 <p>После смены дисков, их названия изменятся. Например, были<strong>sdb</strong>- станет<strong>sda</strong>и наоборот.</p>
60 <p><em>Тестировалось на debian 8 и Ubuntu 16.04 для centos немного другая схема вместо grub-update , grub-mkconfig , а вместо update-initramfs dracut.</em></p>
60 <p><em>Тестировалось на debian 8 и Ubuntu 16.04 для centos немного другая схема вместо grub-update , grub-mkconfig , а вместо update-initramfs dracut.</em></p>
61 <h2>5. Варианты шифрования</h2>
61 <h2>5. Варианты шифрования</h2>
62 CBC:# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/sdx LRW:# cryptsetup -y --cipher aes-lrw-benbi --key-size 384 luksFormat /dev/sdx XTS:# cryptsetup -y --cipher aes-xts-plain --key-size 512 luksFormat /dev/sdx<p>Вот и всё! Надеюсь, сильно не наврал! Если что - пишите в комментариях! Полезные ссылки: -<a>Вики о шифровании</a>-<a>Шифрование дисков в Linux</a></p>
62 CBC:# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/sdx LRW:# cryptsetup -y --cipher aes-lrw-benbi --key-size 384 luksFormat /dev/sdx XTS:# cryptsetup -y --cipher aes-xts-plain --key-size 512 luksFormat /dev/sdx<p>Вот и всё! Надеюсь, сильно не наврал! Если что - пишите в комментариях! Полезные ссылки: -<a>Вики о шифровании</a>-<a>Шифрование дисков в Linux</a></p>
63  
63