Pull to refresh

Установка зашифрованной (TrueCrypt) Windows при Ubuntu по умолчанию

Reading time6 min
Views62K
Нужно: поставить на одну машину одновременно Windows и Ubuntu таким образом, чтобы нельзя было посмотреть содержимое Windows, не имея пароля. CD-ROM'а нет, USB Only.
Работа с виртуалкой из под Ubuntu не понравилась по многим причинам, основная — существенные проблемы производительности.
Решено: ставить параллельно 2 операционки (Windows & Ubuntu) таким образом, что по умолчанию грузится Ubuntu, а Windows размещается на загрузочном разделе.

Для начала нужно подготовиться. Нам потребуется: 2 флешки достаточного размера.
На одну ставим Ubuntu:
Инструкция как сделать USB Ubuntu под Windows
Скачать универсальный USB инсталятор linux
Скачать образ Ubuntu
Нажать пару кнопок (указать путь к ISO и запустить) и все — флешка готова.

На другую ставим Windows:
Инструкция под Windows
На эту же флешку копируем все драйвера нашего компьютера (чтобы потом не искать) и программу для шифрования TrueCrypt (FREE! OPEN SOURCE!) Download

Вкратце: Windows раздел мы будем шифровать при помощи програмы TrueCrypt. Мы хотим получить схему, при которой linux загрузчик грузится первым (grub) и при необходимости захватывает загрузчик TrueCrypt, который уже в свою очередь грузит Windows с шифрованного раздела системы. При этом шифрование будет происходить на лету, то есть в любой момент времени данные на диске будут надежно сохранены.

Теперь мы вооружены и полностью готовы. Теперь распечатываем инструкцию ниже или берем планшет/ноутбук и вперед.

Шаг 1. Разметка диска

Загружаемся с флешки с Ubuntu (режим Try Ubuntu).
Запускаем програму GParted (в программах набираем ее название)
Выбираем нужный диск, создаем новую таблицу разделов (Инструкция) в стиле msdos.

Разбиваем диск примерно таким образом:
/dev/sda1 - Раздел под будующую Windows
Тип: Основной раздел (primary partiton)
Файловая система: NTFS
Размер: не менее 30Gb (системный раздел Windows, я рекомендую отдать 150Gb ведь там же будут и все программы Windows которые должны быть зашифрованы)

/dev/sda2 загрузочный раздел Ubuntu (потом будем монтировать туда /boot)
Тип: Основной раздел (primary partiton)
Файловая система: ext2
Размер: 512mb

/dev/sda3 LBA1 - раздел контейнер всего
Тип: logical block addressing
Размер: неограничен тут будет ваша публичная система

	/dev/sda4 SWAP
	Тип: Раздел внутри LBA1 (extended patition)
	Файловая система: SWAP
	Размер: равен размеру вашей оперативной памяти (например 16Gb)

	/dev/sda5 Ubuntu основной раздел (/)
	Тип: Раздел внутри LBA1 (extended patition)
	Файловая система: ext4
	Размер: неограничен тут будет ваша публичная система Ubuntu и ее корень.
	
	/dev/sda6 Необязательный раздел для обмена файлами между двумя системами - этот раздел не будет шифроваться и в него смогут получить доступ обе системы.
	Тип: Раздел внутри LBA1 (extended patition)
	Файловая система: NTFS
	Размер: по усмотрению.

При желании могут быть и другие разделы (особенно при установке Ubuntu может что-то захотеться выделить отдельно)
Что мы сделали?
  • мы выделили первым разделом основной раздел для Windows — так она встанет без проблем и нам не придется создавать дурацкий раздел на 100mb, как если бы она разбивала диск сама.
  • мы выделили отельный загрузочный раздел — это очень важно, потому что именно так нам будет удобно получить доступ к системе Ubuntu сразу после шифрования Windows безо всяких танцев с бубном =)


Шаг 2. ставим Ubuntu

тоже грузимся в режиме Try Ubuntu и пользуемся мастером с рабочего стола
Выбираем раздел установка Ubuntu и ставим ее соответственно разбиению выше:
 /boot	(/dev/sda2)
 swap	(/dev/sda4)
 /	(/dev/sda5)

перезагружаемся в Ubuntu (установленную)
и делаем такую команду:
sudo grub-install /dev/sda2 --force

подробности тут: habrahabr.ru/post/150209
Так мы проставим Grub в /boot раздел

Шаг 3. Установка Windows

Грузимся с другой флешки и ставим Windows в первый раздел.
Устанавливаем TrueCrypt (кстати, тут есть локализация www.truecrypt.org/localizations просто скачать и распаковать в папку с программой)
Шифруем раздел с системой (процесс прост, я укажу только важные моменты):
  • Обычное шифрование, без скрытой системы
  • Область шифрования: «Зашифровать системный раздел Windows»
  • Указываем, что у нас будет «мультизагрузка»
  • Продолжаем шифрование и получаем диск восстановления (.ISO образ диска восстановления)
  • Сохраняем полученный .ISO на флешку — он очень важен. Без него многие дальнейшие шаги будут не возможны!

Перезагружаемся нужное количество раз и получаем зашифрованную систему.

В принципе на данном этапе можно было бы и успокоиться, потому что уже у вас будет:
  • Зашифрованная система, с основным загрузчиком Truecrypt, который при нажатии Esc передает управление на GRUB2 загрузчик
  • Ubuntu в соответвующем разделе.


Следующие действия нужны только лишь для того, чтобы поменять очередность и сделать не зашифрованную систему Ubuntu по умолчанию, а зашифрованную систему Windows вторичной

Шаг 4. Настраиваем GRUB2 и ставим его в MBR

Загружаем Ubuntu
Теперь нам нужно научить GRUB2 работать с сохраненным ISO. Делается это так:
Копируем полученный ISO в /boot и переименуем его в /boot/truecrypt.iso
открываем консоль и переходим в режим godmode:
sudo -i

далее нужно поставить в /boot утилиту memdisk, для этого:
apt-get install syslinux
cp /usr/lib/syslinux/memdisk /boot

настраиваем GRUB2
nano /etc/grub.d/40_truecrypt

создаем файл /etc/grub.d/40_truecrypt такого содержания:
#!/bin/sh
exec tail -n +3 $0
# TrueCrypt
menuentry "Microsoft Windows" {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos2)'
	linux16 ($root)/memdisk iso raw
	initrd16 ($root)/truecrypt.iso
}

здесь msdos2 — второй раздел диска первого (/dev/sda2, да цифра совпадает, msdos потому что у нас тип таблицы размещенй msdos, такой тут вот синтаксис)
Следите за пробелами — важно. Файлу задайте права на исполнения групе и владельцу:
chmod og+x /etc/grub.d/40_truecrypt

так у нас конфиги все сделаны, исполняемые файлы скопированы, осталось собрать:
update-grub

и записать его в MBR:
grub-install /dev/sda

Теперь перезагружаемся и наслождаемся процессом.
У нас в MBR загрузчик GRUB2 который при необходимости может загрузить загрузчик TrueCrypt c образа диска восстановления TrueCrypt
Единственное, что, вероятно, вам не удастся, введя пароль, войти в систему — это происходит потому,
что GRUB2 при установке повредил ключи TrueCrypt, но восстановить их не трудно:
просто в загрузчике TrueCrypt нажмите F8 и выберите соотвествующий пункт.

Однако при перезаписывании загрузчика TrueCrypt GRUB не полностью стер от него все флаги и следы, поэтому при загрузке через TrueCrypt вероятно вы увидите такое сообщение:
it appears you are creating a hidden os. is this correct (y/n)

приглашающее создать скрытую систему, при нажатии Y ничего происходить не будет, а при нажатии N все загрузится как и должно.
Чтобы избиваться от этого назойливого сообщения нужно подчистить все следы от TrueCrypt в MBR вручную:
Загружаемся в Ubuntu и делаем такие команды:
  1. проверяем, что остались хвосты от TrueCrypt
    dd if=/dev/sda count=8 bs=1 skip=6
    

    должно вывести «TrueCryp»
  2. чистим TrueCrypt маркер в MBR:
    echo 'grub<3tc' | dd of=/dev/sda count=8 bs=1 seek=6
    

    тут пишем просто /dev/sda — потому что правим MBR диска. Откуда именно такие смещения, я не нашел, если кто знает — прошу в комменты.

Если нужно сделать пункт меню скрытым (чтоб вообще не привлекал внимание), то вот инструкция
Profit!

Возможные проблемы

  • Если вы после шифрования всегда хотите иметь гарантии того, что система Windows загрузится вне зависимости от того, получатся ли дальнейшие действия, то можно загрузиться с флешки Ubuntu и сделать так:

    Создаём резервную копию:
    	dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
    	dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256
    	


    Восстанавливаем из резервной копии в случае восстановления:
    	sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
    	sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
    	
  • Бывает, что вы все сделали правильно, поставили Ubuntu, потом Windows, потом его зашифровали, но не можете в попасть в Ubuntu (кстати, вероятно, что-то не так нажали) тогда нужно сделать следующее, чтобы восстановить загрузчик Grub2:
    1. Загружаемся с флешки с Ubuntu (режим Try Ubuntu)
    2. в консоли набираем следующее:
      sudo -i
      mount /dev/sda5 /mnt
      mount /dev/sda2 /mnt/boot
      

      Если поставить загрузчик в MBR (дальше только шаг4)
      grub-install --root-directory=/mnt /dev/sda
      

      или если хочется все-таки иметь Ubuntu как вторую систему, то
      grub-install --root-directory=/mnt /dev/sda2 --force
      

      подробности: мануал по восстановлению Grub2


  • Загрузчик Grub2 установлен в /dev/sda2, сам раздел основной, но почему-то не можем в него попасть после нажатия Esc в загрузчике TrueCrypt. Есть информация, что загрузчик TrueCrypt видит только разделы с флагом Boot. Значи, надо разделу /dev/sda2 дать такой флаг. Открываем Gparted, в нем находим нужный раздел, правой кнопкой на нем, там флаги и выбираем флаг Boot, после чего даже сохранять не нужно — вроде сам сделает и перезагружаемся, проверяем.


Первоисточники информации

Tags:
Hubs:
Total votes 66: ↑59 and ↓7+52
Comments28

Articles