Как связать GRUB2 для Ubuntu 10.04 от Truecrypt и его загрузчика (мультизагрузка вместе с разделом Windows XP)?


9

Я хочу, чтобы Truecrypt запрашивал пароль для Windows XP как обычно, но со стандартной опцией [ESC], при выборе этого, то есть с помощью клавиши Escape, я хочу, чтобы он нашел grub для (незашифрованной) установки Ubuntu.

Я установил Windows XP на жесткий диск объемом 120 ГБ нетбука Toshiba NB100, а затем разделил его, чтобы освободить место для Ubuntu 10.04, и установил его после установки Windows XP.

Я полагаю (?), Что когда я шифрую Windows XP, Truecrypt перезаписывает запись grub в основной загрузочной записи (MBR), и я больше не смогу выбирать между XP и Ubuntu. Поэтому мне нужно восстановить его обратно.

Я довольно интенсивно искал ответы на форумах Ubuntu и в других местах, но пока не нашел полного ответа, который охватывал бы все возможные случаи, сценарии и сообщения об ошибках, или иначе они говорят о устаревшем GRUB, а не GRUB2. Ubuntu 10.04 использует GRUB2.

Моя настройка:

Перегородки:

  1. Windows XP, NTFS (для шифрования с Truecrypt), 40 Гб
  2. / boot (Ext4, 1Gb)
  3. Ubuntu swap, 4Gb
  4. Ubuntu / (root) - основная файловая система (20 ГБ)
  5. NTFS доля, 55 Гб

Я знаю, что загрузчик Truecrypt заменяет GRUB при загрузке, потому что я уже пробовал его на другом ноутбуке.

Я хочу, чтобы экран загрузчика выглядел примерно так:

Truecrypt

Введите пароль:

(или [ESC], чтобы пропустить)

пароль для WindowsXP и при нажатии [ESC], чтобы найти Ubuntu Grub для загрузки с

Заранее спасибо за помощь.

Основная проблема заключается в том, как инструктировать Truecrypt при нажатии клавиши escape и как сделать Grub / Ubuntu видимым для загрузчика truecrypt, чтобы найти его при нажатии клавиши esc. Также зная, как цепочки.

Ответы:


6

Это довольно легко. Разбейте ваш диск, установите Windows и Ubuntu. Используйте TrueCrypt в разделе Windows, который будет шифровать Windows, но оставит Ubuntu незашифрованным.

Затем вы обнаружите, что вы можете загружаться только в Windows, а затем через загрузчик TrueCrypt. Похоже, ты уже там.

Скажем, ваш диск sdaс включенной Windows sda1и Linux sda2(это гипотетически, ваш, похоже, не будет sda2). TrueCrypt установится на MBR sdaи перезапишет GRUB.

Используйте дистрибутив Ubuntu для загрузки Live CD, затем загрузитесь в предварительно установленную систему. Вот так:

sudo su -
mkdir -p /mnt/ubuntu
mount /dev/sda2 /mnt/ubuntu
mount --bind /proc /mnt/ubuntu/proc
mount --bind /dev /mnt/ubuntu/dev
chroot /mnt/ubuntu

Затем установите загрузчик GRUB, но не sda2вместо sda.

grub-install /dev/sda2 --force

Затем, после перезагрузки, вы все равно получите загрузчик TrueCrypt, запрашивающий пароль для загрузки с sda-> sda1в Windows. Но когда вы нажмете ESCAPE, вы получите возможность обойти и загрузиться прямо в Linux, но sda2не из MBR.

Но ждать

Прежде чем сделать это, одно предостережение: если вы grub-installошиблись и перезаписали sdaMBR, или если вы сделали обновление ядра, которое запускает GRUB для перезаписи MBR, вы обнаружите, что вам необходимо переустановить загрузчик TrueCrypt, чтобы вернуться в Windows. Это большая проблема, если вы не готовы.

Я бы посоветовал перед тем, как начать работать с GRUB, создать резервную копию загрузчика TrueCrypt из Linux. Таким образом, когда вы нарушаете TrueCrypt и можете войти только в Linux, вы можете легко записать его обратно.

Сделайте резервную копию вашего загрузчика TrueCrypt:

dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256 # Just in case

Восстановите ваш загрузчик TrueCrypt (я так называю restore-truecrypt.sh):

sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
sudo grub-install /dev/sda2 --force

У меня есть оба этих набора команд в маленьких сценариях оболочки, которые я всегда держу под рукой. Когда я случайно запускаю свой загрузчик (это происходит), я не хочу, чтобы Googling вокруг для команд или чтения man.

Да, и слово о совместимости. Когда я писал «GRUB», я имел в виду GRUB 1 или 2. Лично я делаю это с GRUB 2 на 10.04 и Windows 7 ... но он отлично работал со старыми версиями GRUB, Windows и Linux.


Большое спасибо @fitzpatrick за этот ответ. Я проверю это, когда у меня будет еще немного времени. Я увлекся, пытаясь заставить его работать, поэтому я точно знаю ваше точное направление :) Я дам вам знать, каковы мои выводы.
therobyouknow

что такое резервное копирование "dd if = / dev / sda of = ~ / truecrypt.backup count = 8 bs = 32256"? Заголовки TC? Спасибо!
stefan.at.wpf

кроме того, является ли sda2 разделом / boot?
stefan.at.wpf

ок sda2 - это корневой раздел, блин, мой зашифрован ...
stefan.at.wpf

Команда ddкопирует первые 32 КБ диска: в основном, полный загрузочный сектор. В приведенном выше примере нет отдельного загрузочного раздела, nix устанавливается на один раздел. В первые дни RedHat я привык работать с отдельными разделами на рабочих столах Linux. В настоящее время с большими дисками я думаю, что в большинстве случаев вы можете сохранить эту установку для своих серверов!
Эйдан Фицпатрик

2

Ответ, который я собираюсь принять на этот вопрос, мой. И этот ответ заключается в том, чтобы принять, что я не могу * сделать это, и я приму одну из альтернатив:

  1. Используйте приложение виртуализации / VMware, работающее на хосте Ubuntu Windows XP (раздел с зашифрованным системным диском), например VirtualBox, VMWare или Parallels. Поэтому мне нужно будет загрузить Windows, затем запустить это приложение и загрузиться в Ubuntu из этого. Некоторые комментаторы отмечают, что одним из недостатков этого подхода является необходимость загрузки дважды (сначала XP, затем Ubuntu), чтобы попасть в Ubuntu. Тем не менее, я бы сказал, что он на самом деле имеет преимущество перед обычными двойными загрузками, запускаемыми BIOS, в том смысле, что у вас фактически работают обе ОС одновременно. Отлично, если вы хотите, например, быстро протестировать приложения или веб-страницы на нескольких платформах.

  2. Используйте дополнительный жесткий диск или SD-карту (например, 8 ГБ, 16 ГБ) для Ubuntu и выберите загрузку BIOS (единовременно) для загрузки Ubuntu с этого.

* Не могу = на самом деле означает, что я потратил достаточно времени (около 6 часов в течение 3 дней, ушел, очистил свой разум, поискал форумы, возвращаясь обновленными) на это и не собираюсь тратить больше. Поэтому я не могу быть обвинен в том, что я ленивый и полагаюсь на других. Can't = также означает: не могу в данный момент . Я могу вернуться к этому снова.

Вот некоторые ссылки, которые другие могут найти полезными:

Все вышеперечисленное предлагает некоторую проницательность, но не является окончательным полным ответом, который охватывает все возможные варианты или грубую версию.

Я разместил этот же вопрос здесь на superuser, на форумах ubuntuforums и truecrypt:

Я оправдываю это тем, что читатели этих форумов не обязательно будут читать другие форумы, будут некоторые совпадения, но некоторые жизненно важные советы могут быть упущены.

Исходные мысли и знания (если интересно!)

Я на самом деле очень рад сказать, что я назвал это днем ​​и нашел альтернативы, хотя я позволил этому одолеть меня и продолжал бороться, чтобы победить и решить мой ответ. Но с облегчением признать, что это невозможно (легко) и что есть альтернативы. Теперь я могу заниматься более важными вещами! Я уже дважды загружаю Windows 7 и Ubuntu 10.04 на рабочий стол без шифрования - это довольно простая процедура. И с альтернативами я не далеко от того, что я хотел в своем первоначальном ответе. На самом деле, я не использую Ubuntu на ноутбуке так часто, как Windows на данный момент, поэтому я не буду скучать по нему. У меня также есть MacBookPro, поэтому я отнюдь не фанат Windows, как любая другая ОС!

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

http://blog.mfabrik.com/2008/07/15/perfect-dual-boot-crypted-hard-disk-setup-with-truecrypt-and-luks/

«У меня есть рабочий ноутбук, используемый в Symbian и веб-разработке. Мне нужно иметь возможность загружать как Vista, так и Linux. Из-за конфиденциальности клиента обе операционные системы должны быть зашифрованы на случай потери ноутбука. Даже если я не использую Windows активно, данные его веб-браузера могут содержать хранимый пароль для клиентских систем, и было бы катастрофически утратить их случайно ».

Grub2 намного сложнее, чем grub, некоторые могут поспорить так. У меня был успех с Ubuntu до 10.04 (GRUB не GRUB2) с Windows XP:

http://www.howtoforge.com/forums/showthread.php?p=184776#post184776

Я говорю более сложным, потому что теперь есть больше файлов настроек, они распределены по большему количеству каталогов со ссылками между ними, некоторые теперь генерируются машиной, и их редактирование не рекомендуется, например, меню загрузки, есть своего рода язык сценариев для изучения и интерпретаторы сценариев, запускаемые при внесении изменений. Это слишком сложно для меня на данный момент, и это только для запуска операционной системы, а не ракеты на Луну!


Вариант, который я еще не рассматривал, - использовать альтернативный образ Ubuntu CD / .ISO - загрузите здесь: releases.ubuntu.com/lucid Если вы загляните на форум Ubuntu (ссылка выше), где я разместил копию вопроса, Вы увидите сообщение от респондента, который упоминает об этом. Ключевым моментом является то, что он дает вам выбор, куда поместить GRUB (и будет делать это официально и правильно, а не угадывать вручную, как я это сделал), и автор утверждает, что они достигли зашифрованных Ubuntu и Truecrypted Windows на одной машине - которая была моей целью.
therobyouknow

1

Я думаю, я просто решил это довольно гладко. Моя первоначальная ситуация была следующей: у меня был незашифрованный нетбук (MSI U160) с разделом Windows 7 и разделом Ubuntu 10.10 (Ubuntu grub2 сидит в MBR).

  1. Чтобы установить Truecrypt, мне пришлось переустановить Windows 7 в исходный раздел.
  2. Затем я установил truecrypt (шифрование всего раздела Windows 7)
  3. Используя эти инструкции, я переустановил Ubuntu с USB-ключа, поместив загрузчик grub2 в раздел Ubuntu.
  4. После перезагрузки я получаю загрузчик TrueCrypt. Я нажимаю [ESC] и получаю список разделов, которые можно загрузить, включая раздел linux (он также показывает раздел Windows, но, поскольку он зашифрован, загрузка завершится неудачно).

Я надеюсь, что это то, что вы тоже хотите.


1

Я просто провел последние 2 дня, борясь с этим, и не мог заставить ни один из этих ответов работать на меня. То, что я наконец заработал, я задокументировал в своем блоге . Вот краткая версия (сделано с Debian wheezy; должно работать и для Ubuntu. В других дистрибутивах могут потребоваться небольшие изменения):

По сути, вы загружаете GRUB2 по цепочке, чтобы загрузить SYSLINUX, который, в свою очередь, загружает образ TrueCrypt Rescue ISO, который позволяет вам загружаться в Linux.

  1. Установите syslinux:

    sudo aptitude install syslinux
    
  2. Скопируйте файлы на место:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. Определите UUID вашего загрузочного раздела:

    sudo blkid /dev/sda2
    

    Вывод должен выглядеть примерно так:

    / dev / sda3: UUID = "12345678-1234-1234-1234567890"

  4. Настройте GRUB2:

    Добавьте следующее к /etc/grub.d/40_custom:

    menuentry "TrueCrypt ISO boot" {
        insmod part_msdos
        insmod fat
        insmod ext2
        insmod search_fs_uuid
        search --fs-uuid --no-floppy --set=boot [UUID without quotes]
        linux16 ($boot)/memdisk iso raw
        initrd16 ($boot)/truecrypt-rescue-disk.iso
    }
    
  5. Перезагрузите конфигурацию GRUB2

    sudo update-grub
    

Обратите внимание, что здесь будут отображаться параметры восстановления [F8] при каждой загрузке в Windows, поскольку мы дурачим систему, загружающую образ компакт-диска TrueCrypt Rescue с жесткого диска, а не «обычный» метод загрузки TrueCrypt. Но это кажется мне небольшим недостатком (и может даже рассматриваться как дополнительная функция!)


+1 upvote за ваши успешные усилия, отличная работа @Flimzy В какой-то момент я хотел бы попробовать ваш ответ и сообщить, и если я могу повторить ваш успех, я хотел бы, чтобы ваш ответ был принят (я мог бы сделать это раньше, так как У меня нет машины, с которой можно экспериментировать, сейчас все они используются для других целей). Еще раз спасибо!
therobyouknow

-1

Решение: возможно скопировать загрузчик truecrypt в файл IMG, который будет загружен grub? или, возможно, использовать Grub4Dos для загрузки Ubuntu?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.