Jak połączyć GRUB2 z systemem Ubuntu 10.04 z Truecrypt i jego programu ładującego (wielokrotne uruchamianie wraz z partycją Windows XP)?

9

Chcę, aby Truecrypt pytał o hasło do Windows XP jak zwykle, ale ze standardową opcją [ESC], po wybraniu tego, tj. Za pomocą klawisza Escape, chcę, aby znalazł gruba dla (niezaszyfrowanej) instalacji Ubuntu.

Zainstalowałem system Windows XP na dysku twardym netbooka Toshiba NB100 o pojemności 120 GB, a następnie podzieliłem na partycje, aby zrobić miejsce dla Ubuntu 10.04, i zainstalowałem go po instalacji systemu Windows XP.

Kiedy szyfruję Windows XP, Truecrypt nadpisze wpis grub w głównym rekordzie rozruchowym (MBR), wierzę (?) I nie będę już mógł wybierać między XP a Ubuntu. Więc muszę go przywrócić.

Szukałem dość obszernie odpowiedzi na forach Ubuntu i gdzie indziej, ale nie znalazłem jeszcze pełnej odpowiedzi, która obejmuje wszystkie ewentualności, scenariusze i komunikaty o błędach, lub w przeciwnym razie mówią o starszej wersji GRUB, a nie o GRUB2. Ubuntu 10.04 używa GRUB2.

Moja konfiguracja:

Partycje:

  1. Windows XP, NTFS (do zaszyfrowania Truecrypt), 40 Gb
  2. / boot (Ext4, 1Gb)
  3. Wymiana Ubuntu, 4 Gb
  4. Ubuntu / (root) - główny system plików (20 GB)
  5. Udział NTFS, 55 Gb

Wiem, że moduł ładujący Truecrypt zastępuje GRUB podczas uruchamiania, ponieważ już wypróbowałem go na innym laptopie.

Chcę, aby ekran modułu ładującego wyglądał jak zwykle:

Truecrypt

Wprowadź hasło:

(lub [ESC], aby pominąć)

hasło jest dla WindowsXP i po naciśnięciu [ESC], aby znaleźć gruba Ubuntu do uruchomienia

Z góry dziękuje za twoją pomoc.

Kluczowym obszarem problemu jest to, jak poinstruować Truecrypt po naciśnięciu klawisza Escape i jak Grub / Ubuntu może być widoczny dla bootloadera Truecrypt, aby go znaleźć po naciśnięciu klawisza Esc. Wiedząc również jako łańcuch.

therobyouknow
źródło

Odpowiedzi:

6

To całkiem proste. Podziel dysk na partycje, zainstaluj system Windows i Ubuntu. Użyj TrueCrypt na partycji Windows, która zaszyfruje Windows, ale pozostawi Ubuntu niezaszyfrowaną.

Przekonasz się, że prawdopodobnie możesz uruchomić tylko system Windows, a następnie za pomocą programu ładującego TrueCrypt. Wygląda na to, że już tam jesteś.

Załóżmy, że masz dysk sdaz włączonym systemem Windows sda1i Linux sda2(jest to hipotetyczne, twój wygląda na to, że nie będzie sda2). TrueCrypt zainstaluje się w MBR sdai zastąpi GRUB.

Użyj płyty dystrybucyjnej Ubuntu, aby uruchomić dysk CD na żywo, a następnie chroot w preinstalowanym systemie. Tak jak:

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

Następnie zainstaluj program ładujący GRUB, ale sda2zamiast tego sda.

grub-install /dev/sda2 --force

Następnie, po ponownym uruchomieniu, nadal otrzymujesz moduł ładujący TrueCrypt z prośbą o hasło do uruchomienia z sda-> sda1do systemu Windows. Ale kiedy naciśniesz ESCAPE, otrzymasz opcję obejścia i rozruchu bezpośrednio do Linuksa, ale z sda2MBR.

Ale poczekaj

Zanim to zrobisz, jedno zastrzeżenie: jeśli grub-installpomylisz się i zastąpisz sdaMBR, lub jeśli wykonasz aktualizację jądra, która spowoduje, że GRUB zastąpi MBR, okaże się, że musisz ponownie zainstalować bootloader TrueCrypt, aby wrócić do systemu Windows. Jest to ogromny problem, jeśli nie jesteś przygotowany.

Sugerowałbym, aby przed udaniem się na GRUB wykonać kopię zapasową bootloadera TrueCrypt z poziomu Linuksa. W ten sposób, gdy złamiesz TrueCrypt i możesz dostać się tylko do Linuksa, możesz łatwo go odpisać.

Utwórz kopię zapasową programu ładującego 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

Przywróć moduł ładujący TrueCrypt (nazywam to 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

Mam oba te zestawy poleceń w małych skryptach powłoki, które trzymam pod ręką. Kiedy przypadkowo włączam mój program ładujący (to się zdarza), nie chcę być googlowany w poszukiwaniu poleceń lub czytania man.

Aha, i słowo o kompatybilności. Kiedy piszę „GRUB”, miałem na myśli GRUB 1 lub 2. Osobiście robię to z GRUB 2 na 10.04 i Windows 7 ... ale działało dobrze ze starszymi wersjami GRUB, Windows i Linux.

Aidan Fitzpatrick
źródło
Dziękuję bardzo @fitzpatrick za tę odpowiedź. Sprawdzę to, kiedy będę miał więcej czasu. Dałem się wciągnąć w zabawę, więc staram się, żeby to zadziałało, więc z pewnością twój dokładny kierunek :) Dam ci tutaj, jakie są moje ustalenia.
therobyouknow
czym dokładnie jest tworzenie kopii zapasowej „dd if = / dev / sda of = ~ / truecrypt.backup count = 8 bs = 32256”? Nagłówki TC? dzięki!
stefan.at.wpf
ponadto, czy sda2 jest partycją / boot?
stefan.at.wpf
ok sda2 to korzeń, cholera, moje jest zaszyfrowane ...
stefan.at.wpf
ddKomenda kopiuje pierwszy 32kB dysku: Właściwie cały sektor rozruchowy. W podanym powyżej przykładzie nie ma osobnej partycji rozruchowej, instalacja nix odbywa się na jednej partycji. We wczesnych dniach RedHat używałem osobnych partycji na komputerach z systemem Linux. W dzisiejszych czasach z dużymi dyskami myślę, że w większości przypadków możesz zapisać to ustawienie na swoje serwery!
Aidan Fitzpatrick
2

Odpowiedź na to pytanie jest moja. I ta odpowiedź brzmi: nie mogę * tego zrobić i zaakceptuję jedną z alternatyw:

  1. Użyj aplikacji do wirtualizacji / VM uruchomionej w systemie Windows XP (zaszyfrowana partycja dysku systemowego) - Ubuntu, takiej jak VirtualBox, VMWare lub Parallels. Musiałbym więc uruchomić system Windows, a następnie uruchomić tę aplikację i uruchomić system Ubuntu z tego poziomu. Niektórzy komentatorzy wymieniają jedną z wad tego podejścia jako konieczność dwukrotnego rozruchu (najpierw XP, następnie Ubuntu), aby dostać się do Ubuntu. Powiedziałbym jednak, że faktycznie ma przewagę nad zwykłymi podwójnymi bootami uruchamianymi z BIOS-u, ponieważ w rzeczywistości oba systemy operacyjne działają jednocześnie. Świetne, jeśli chcesz na przykład szybko testować aplikacje lub strony internetowe na wielu platformach.

  2. Użyj dodatkowego dysku twardego lub karty SD (na przykład 8 GB, 16 GB) dla Ubuntu i wybierz z BIOS (jednorazowy) rozruch, aby uruchomić z niego Ubuntu.

* Can't = naprawdę oznacza, że ​​spędziłem wystarczająco dużo czasu (około 6 godzin w ciągu 3 dni, odchodzę od myśli, przeszukuję fora powracające odświeżone) na ten temat i nie jestem gotowy na więcej. Nie mogę więc być oskarżony o lenistwo i poleganie na innych. Can't = oznacza także: w tej chwili nie można . Mogę ponownie to zobaczyć.

Oto niektóre odniesienia, które inni mogą uznać za przydatne:

Wszystkie powyższe oferują pewien wgląd, ale nie stanowią ostatecznej pełnej odpowiedzi, która obejmuje każdą ewentualność lub wersję gruba.

Zadałem to samo pytanie tutaj na superużytkowniku, na forach Ubuntuforums i Truecrypt:

Uzasadniam to tym, że czytelnicy tych forów niekoniecznie będą czytać inne fora, będą się nakładać, ale niektóre istotne porady mogą zostać pominięte.

Podstawowe przemyślenia i wnioski (jeśli są zainteresowane!)

Z przyjemnością stwierdzam, że nazwałam to dniem i wymyśliłam alternatywy, choć pozwoliłam sobie z tym poradzić i walczyłam, aby wygrać i rozwiązać moją odpowiedź. Ale ulgą jest zaakceptowanie, że nie da się tego zrobić (łatwo) i że istnieją alternatywy. Teraz mogę zająć się ważniejszymi sprawami! Już uruchomiłem system Windows 7 i Ubuntu 10.04 z podwójnym uruchomieniem na komputerze bez szyfrowania - to dość prosta procedura. I z alternatywami nie jestem daleko od tego, czego chciałem w mojej pierwotnej odpowiedzi. W rzeczywistości nie używam Ubuntu na notebooku tak często jak Windows, więc nie będę go tak bardzo tęsknił. Mam także MacBookPro, więc nie jestem fanem Windows bardziej niż jakikolwiek inny system operacyjny!

Oto powód, dla którego chciałbym mieć podwójne uruchamianie zaszyfrowanego systemu Windows za pomocą Ubuntu z perspektywy innego użytkownika:

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

„Mam laptopa roboczego używanego w Symbian i programowaniu internetowym. Muszę być w stanie uruchomić zarówno system Vista, jak i Linux. Ze względu na prywatność klienta oba systemy operacyjne muszą zostać zaszyfrowane w przypadku utraty laptopa. Nawet jeśli nie używam systemu Windows aktywnie dane przeglądarki mogą zawierać zapisane hasło do systemów klienckich, a ich przypadkowe wycieki byłyby katastrofalne ”.

Grub2 jest znacznie bardziej złożony niż grub, niektórzy mogą tak twierdzić. Miałem sukces z Ubuntu sprzed 10.04 (GRUB nie GRUB2) z Windows XP:

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

Mówię, że jest bardziej skomplikowany, ponieważ jest teraz więcej plików ustawień, są one rozmieszczone w większej liczbie katalogów z odniesieniami między nimi, niektóre są teraz generowane maszynowo i ich edycja jest odradzana, np. Menu rozruchu, istnieje pewien rodzaj języka skryptowego do nauki i interpretery skryptów uruchamiane po wprowadzeniu zmiany. W tej chwili jest to dla mnie zbyt duże i dotyczy tylko uruchomienia systemu operacyjnego, a nie rakiety na Księżyc!

therobyouknow
źródło
Opcją, której jeszcze nie rozważałem, jest użycie obrazu alternatywnego dysku CD / .ISO systemu Ubuntu - pobierz tutaj: releases.ubuntu.com/lucid Jeśli przeglądasz forum Ubuntu (link powyżej), na którym zamieściłem kopię pytania, zobaczysz wpis od respondenta, który o tym wspomina. Kluczową kwestią jest to, że daje wybór, gdzie umieścić GRUB (i zrobiłby to oficjalnie i właściwie, zamiast ręcznie zgadywać, jak to zrobiłem), a plakat twierdzi, że osiągnęli zaszyfrowane Ubuntu i Truecrypted Windows na tej samej maszynie - co było moim celem.
therobyouknow
1

Myślę, że rozwiązałem to dość płynnie. Moja pierwotna sytuacja była następująca: miałem niezaszyfrowanego netbooka (MSI U160) z partycją Windows 7 i partycją Ubuntu 10.10 (grub2 Ubuntu siedzi w MBR).

  1. Aby zainstalować Truecrypt, musiałem ponownie zainstalować system Windows 7 na oryginalnej partycji.
  2. Następnie zainstalowałem truecrypt (szyfrowanie całej partycji Windows 7)
  3. Korzystając z tych instrukcji, ponownie zainstalowałem Ubuntu z klucza USB, umieszczając program ładujący grub2 na partycji Ubuntu
  4. Po ponownym uruchomieniu komputera otrzymuję program ładujący TrueCrypt. Uderzyłem w [ESC] i otrzymałem listę partycji, w tym linux (pokazuje także partycję Windows, ale ponieważ jest zaszyfrowana, uruchomienie się nie powiedzie).

Mam nadzieję, że tego też chcesz.

Huhu Lesny
źródło
1

Właśnie spędziłem ostatnie 2 dni walcząc z tym i nie mogłem uzyskać odpowiedzi na te pytania. To, co w końcu zaczęło działać, udokumentowałem na swoim blogu . Oto wersja podsumowująca (wykonana przy pomocy Debian wheezy; powinna również działać na Ubuntu. Inne dystrybucje mogą wymagać drobnych modyfikacji):

Zasadniczo ładujesz GRUB2, aby załadować SYSLINUX, który z kolei uruchamia obraz ISO TrueCrypt Rescue ISO, który pozwala na uruchomienie systemu Linux.

  1. Zainstaluj syslinux:

    sudo aptitude install syslinux
    
  2. Skopiuj pliki na miejsce:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. Określ identyfikator UUID partycji rozruchowej:

    sudo blkid /dev/sda2
    

    Dane wyjściowe powinny wyglądać mniej więcej tak:

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

  4. Skonfiguruj GRUB2:

    Dodaj następujące elementy /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. Załaduj ponownie konfigurację GRUB2

    sudo update-grub
    

Zauważ, że pokażą ci to opcje naprawy [F8] przy każdym uruchomieniu systemu Windows, ponieważ oszukujemy system uruchamiający obraz dysku ratunkowego TrueCrypt z dysku twardego, zamiast „normalnej” metody uruchamiania TrueCrypt. Ale wydaje mi się to niewielką wadą (i może być nawet uważane za dodatkową funkcję!)

Flimzy
źródło
+1 głos za twoje udane wysiłki, świetna praca @Flimzy W pewnym momencie chciałbym wypróbować twoją odpowiedź i zgłosić się z powrotem, a jeśli mogę powtórzyć twój sukces, chciałbym, aby twoja odpowiedź została zaakceptowana (i tak mogę to zrobić wcześniej, ponieważ Nie mam dostępnej maszyny do eksperymentowania, wszystkie są obecnie w użyciu do innych celów). Dzięki jeszcze raz!
therobyouknow
-1

rozwiązanie: może skopiujesz program ładujący truecrypt do pliku IMG, który ma zostać uruchomiony przez grub? a może użyj Grub4Dos do załadowania Ubuntu?

Huan Keur
źródło