Двойная загрузка криптосистем (по шагам)Цель — установить на ноутбук Windows и Linux с полным дисковым шифрованием и двойной загрузкой. Имеется оперативная память 2 ГБ и жесткий диск 80 ГБ.
Эту инструкцию я привожу по шагам без развернутых пояснений. Если кому интересно почему я делал именно так и выбирал именно такие параметры, то это можно узнать прочитав по приведенным ссылкам использованные мною источники.
Шаг 1) Сначала подготовим разделы жесткого диска. Я выбрал такое разбиение (для установки Windows ХР и Ubuntu 10.04.2 LTS):
Partition1 - основной, загрузочный, 40 GB
Partition2 - основной, 7,5 GB
Partition3 - основной, 500 MB
Partition4 - основной, 32 GB
Примечание: Windows 7 и более новые версии Windows по умолчанию загружаются не из раздела, в котором они установлены, а с особого маленького раздела, содержащего файлы, необходимые для загрузки системы (аналог раздела /boot в Linux системах). Если Вы будете устанавливать Windows 7, то соответственно скорректируйте план разметки своего диска.Шаг 2) Устанавливаем Windows на первый основной раздел (Partition1).
Шаг 3) Загружаемся с диска Ubuntu 10.04.2 LTS alternate CD.
Шаг 4) На этапе "Разметка дисков" выбираем "Вручную".
sda1 - первичный, 40 GB (не использовать)
sda2 - первичный, 7,5 GB (не использовать)
sda3 - первичный, 500 MB (файловая система Ext2, точка монтирования /boot, метка загрузочный включена)
sda4 - первичный, 32 GB (физический том для шифрования, dm-crypt, ключевая фраза)
Примечание: На современных мощных компьютерах я не использую раздел подкачки. Если Вы планируете работать с приложениями, активно потребляющими оперативную память, то скорректируйте план разметки диска на первом шаге. При шифровании раздела подкачки в качестве пароля нужно использовать не ключевую фразу, а произвольный ключ.Шаг 5) На этапе "Настроить шифрование для томов" - "Создать шифрованные тома" выбираем устройство /dev/sda4.
Шаг 6) Вводим ключевую фразу для тома /dev/sda4.
Шаг 7) Настраиваем точку монтирования:
sda4_crypt
#1 - 32 GB (журналируемая файловая система Ext3, точка монтирования / - корневая файловая система).
Шаг 8 ) Записываем сделанные изменения на диск и устанавливаем операционную систему.
Шаг 9) На этапе "Настройка учетных записей пользователей и паролей" на вопрос "Зашифровать домашний каталог?" отвечаем <Нет>.
Шаг 10) На этапе "Настраивается пакет grub-pc" на вопрос "Установить системный загрузчик GRUB в главную загрузочную запись?" отвечаем <Нет>.
Шаг 11) В строке "Device for boot loader installation" указываем /dev/sda3.
Шаг 12) Завершаем установку и загружаем Linux.
Шаг 13) Затем перезагружаем компьютер и загружаем Windows. Запускаем программу TrueCrypt (имеем наготове пустую болванку для TrueCrypt Rescue Disk).
В меню "Система" выбираем "Зашифровать системный раздел/диск..." следуем далее по вкладкам:
"Область шифрования" выбираем "Зашифровать системный раздел Windows"
Примечание: Если Вы будете шифровать Windows 7, то Вы должны решить будете ли Вы шифровать особый загрузочный раздел Windows 7, содержащий файлы, необходимые для загрузки системы. Право записи в этот раздел Windows дает только приложениям с административными привилегиями (при работе системы). TrueCrypt выполняет шифрование этого раздела, только если Вы выбрали шифрование всего системного диска (а не шифрование только раздела, в котором установлена Windows)."Число операционных систем" выбираем "Мультизагрузка"
"Загрузочный диск" выбираем "Да"
"Число системных дисков" выбираем "1"
"Не-Windows загрузчик" выбираем "Нет"
(если на данном этапе выбрать "Да", то появится окно с разъяснением, как будет работать мультизагрузка, но мастер завершит свою работу и его придется запустить вновь.)
"Настройки шифрования" (и последующие вкладки) - следуйте указаниям мастера и действуйте в соответствии со своими предпочтениями.
Шаг 14) Шифруем системный раздел Windows (потребуется промежуточная перезагрузка).
Шаг 15) Шифруем второй основной раздел (Partition2) программой TrueCrypt. Этот раздел будет доступен как для Windows-версии TrueCrypt, так и для Linux-версии TrueCrypt (он нам заменит "папку обмена" для материалов, которые не подлежат перемещению в расшифрованном виде).
Примечание: При установке обновлений безопасности рано или поздно будет установлено новое ядро Linux. После этого система произведет обновление конфигурационного файла /boot/grub/grub.cfg и попросит перезагрузки.
В папке /etc/grub.d находятся скрипты, которые используются при создании конфигурационного файла grub.cfg.
Скрипт 10_linux отвечает за поиск ядер Linux.
Скрипт 30_os-prober отвечает за поиск других операционных систем.
При обновлении grub2 эти скрипты находят все установленные на компьютере операционные системы и все ядра Linux и формируют в grub.cfg новое меню загрузки, которое мы видим на экране.
Проблема заключается в том, что раздел sda1, на котором установлена Windows, находится в зашифрованном состоянии. Поэтому скрипт 30_os-prober не может определить наличие на этом разделе операционной системы Windows. В итоге загрузочное меню grub2 формируется скриптами без строки для выбора загрузки Windows.
Поэтому Вам нужно будет самостоятельно добавить в меню пункт для загрузки Windows с зашифрованного раздела и защитить его от удаления при следующем обновлении grub.cfg.
Файл 40_custom позволяет добавлять в меню свои пункты загрузки.Шаг 16) Для добавления в меню нового пункта откройте в текстовом редакторе файл /boot/grub/grub.cfg, найдите начало секции ### BEGIN /etc/grub.d/10_linux ### и скопируйте в буфер обмена содержимое первого пункта меню. У меня оно выглядит так:
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, с Linux 2.6.32-31-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set ca8d31ff-52f4-456b-aa42-6f7d10c3af36
linux /vmlinuz-2.6.32-31-generic root=/dev/mapper/sda4_crypt ro quiet splash
initrd /initrd.img-2.6.32-31-generic
}
Шаг 17) Вставьте содержимое буфера обмена в пустой файл и отредактируйте секцию, чтобы она приняла следующий вид:
menuentry 'Windows' {
recordfail
insmod ext2
set root='(hd0,1)'
chainloader +1
boot
}
Шаг 18) Результат редактирования надо добавить в конец файла /etc/grub.d/40_custom. Файл 40_custom должен заканчиваться пустой строкой, иначе последний пункт отображаться в меню не будет!
Шаг 19) После сохранения файла 40_custom надо обновить файл /boot/grub/grub.cfg. Для этого выполните команду, которая запустит скрипты в папке /etc/grub.d:
sudo update-grub
После отработки скрипта получаем такую выдачу:
nehadaim@ubuntu:~$ sudo update-grub
[sudo] password for nehadaim:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-31-generic
Found initrd image: /boot/initrd.img-2.6.32-31-generic
Found linux image: /boot/vmlinuz-2.6.32-30-generic
Found initrd image: /boot/initrd.img-2.6.32-30-generic
Found memtest86+ image: /memtest86+.bin
done
nehadaim@ubuntu:~$
После перезагрузки системы все заработает должным образом и при следующем обновлении grub.cfg пункт загрузки для Windows будет сохранен.
Примечание: Может возникнуть ситуация, что через некоторое время после произведенных настроек загрузчика Вам придется переустановить Linux. При переустановке os-prober также не сможет определить наличие Windows. Но в случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а grub2 будет загружать Вас напрямую в Linux.Шаг 20) Поэтому перед выполнением команды sudo update-grub Вам также надо будет закомментировать (значком #) параметр GRUB_HIDDEN_TIMEOUT в файле /etc/default/grub:
#GRUB_HIDDEN_TIMEOUT=0
и, если есть желание, выключить таймер обратного отсчета секунд, установив его значение в -1:
GRUB_TIMEOUT=-1
Теперь, если при включении компьютера Вы хотите загрузить Linux, то на этапе дозагрузочной аутентификации TrueCrypt Boot Loader пароль к зашифрованному разделу Linux вводить не надо. Нажмите клавишу Esc и перейдите в меню загрузки Grub2. Если же Вы хотите загрузить Windows, то пароль к разделу Windows вводить надо тут, а выбор загружаемой системы уже производить из меню загрузки Grub2.
Примечание: Если Вам необходимо загрузить Windows до внесения изменений в grub.cfg, то это можно сделать следующим образом.Шаг 21) На этапе дозагрузочной аутентификации TrueCrypt Boot Loader надо ввести пароль для зашифрованного раздела с Windows. Потом нажать клавишу "c" во время отображения меню загрузки grub2, чтобы попасть в консоль. В консоли надо последовательно выполнить три команды - 1) указать корневой раздел, 2) передать управление Windows-загрузчику NTLDR, 3) выполнить запуск.
set root=(hd0,1)
chainloader +1
boot
Перед началом работ желательно изучить следующие материалы:Полный русский мануал для Windows-версии программы TrueCrypt
http://www.truecrypt.org/download/thirdparty/localizations/langpack-ru-2.0.0-for-truecrypt-7.0a.zipНастройка шифрованных томов в Linux
http://www.debian.org/releases/stable/i386/ch06s03.html.ru#partman-cryptoВопросы конфигурирования grub2 хорошо изложены в Викиучебнике
http://ru.wikibooks.org/wiki/Grub_2