Jak uruchomić komputer z USB, gdy BIOS nie ma opcji bootowanie z USB?

USB

Złącze USB przez Petr Kratochvil

Od paru lat komputery wyposażone są zwykle w opcję uruchamiania systemu z USB. Rozwiązanie znacznie lepsze, niż płyta CD. Płyt jednorazowych trochę szkoda, żeby coś szybko przetestować, płyty wielorazowe się rysują. Poza tym napędy CD-ROM mają długie czasy dostępu i są głośne. Dodatkowo, pod USB można podłączyć zwykły dysk twardy, albo mieć system RW na pendrive. Niestety, kiedyś bootowanie z USB było rzadkością. A nawet jeśli było, to urządzenie bywało widoczne nie jako zwykły dysk twardy, tylko USB-FDD. Gdy ostatnio robiłem grzejnik, najzupełniej prawidłowo przygotowany pendrive z grub’em, robiący za dysk twardy nie był widziany jako urządzenie pozwalające na uruchomienie systemu.

Jak pisałem, znalazłem na to obejście. Bootowanie z CD-ROM (który na szczęście zwykle jest obecny w starych sprzętach) pozwalające na dalsze bootowanie z USB. Rozwiązanie genialne w swojej prostocie, tylko jak to zrobić? Jest gotowiec w formie freeware (także dla firm): Plop Boot Manager. Narzędzie bardzo fajne, ale układ strony, sposób podziału pakietów i wreszcie dokumentacja jest poukładana IMHO fatalnie. Opisane co prawda jest wszystko, ale wygląda na bardziej skomplikowane, niż jest w rzeczywistości, część informacji powtarza się itp.

Jak uruchomić komputer z USB przy pomocy płyty CD? Tak naprawdę, aby przygotować płytę CD z bootloaderem należy pobrać z tej strony dwa narzędzia plpcfgbt-0.11.zip oraz plpbt-createiso.zip. A następnie wykonać tylko 3 kroki:

  1. skonfigurować opcje bootowania przy pomocy plpcfgbt, tak by domyślnie bootował z USB. W przykładzie jest gotowiec: Hidden boot with usb: plpcfgbt stm=hidden cnt=on cntval=1 dbt=usb plpbt.bin
  2. przygotować obraz płyty przy pomocy skryptu create-iso.sh (tak naprawdę zwykłe mkisofs z odpowiednimi opcjami)
  3. nagrać obraz iso na płytę CD (ulubionym narzędziem)

Po włożeniu płyty do napędu, ustawieniu w BIOSie bootowania z CD-ROM i podłączeniu pendrive z systemem będzie można uruchomić komputer z USB. Najpierw uruchomi się bootloader z CD-ROM, a następnie bootloader z urządzenia podłączonego do USB.

Powyższe dla Linuksa. Pod Windows też się da, z tego co widzę, bo autor daje wersje skryptów i programów pod oba systemy. Mam dziwne przeczucie, że pod Linuksem będzie łatwiej.

UPDATE: W ramach tematów powiązanych oraz linkowania się na krzyż, Franek opisał po polsku nieco bardziej życiowe zagadnienie czyli, jak uruchamiać wiele liveCD z jednego USB.

T(A)ILS czyli jak zachować anonimowość w Internecie.

Dawno temu pisałem o pomyśle na dystrybucję anonimizującą. Miało to działać na zasadzie liveCD uruchamianego – głównie dla wygody – z maszyny wirtualnej, wyposażonego w domyślne ustawienia utrudniające identyfikację użytkownika i domyślnie wysyłającego wszystkie dane WWW za pośrednictwem sieci TOR. Już samo użycie liveCD w znacznym stopniu utrudnia identyfikację – po uruchomieniu gubione są wszelkie informacje zawarte w ciasteczkach, LSO, historii odwiedzanych stron, cache, jak również cechy charakterystyczne systemu/przeglądarki są wspólne dla wszystkich instancji systemów bootowanych z jednego obrazu.

Projekt Anonymix nie wyszedł poza fazę planów (żaden build nie był w pełni działający i nie został opublikowany), ale znalazłem coś, co nie tylko jest praktycznie dokładnym odpowiednikiem tego, co chciałem realizować, ale bardzo ładnie rozwija tę ideę. Mowa o T(A)ILS, czyli The (Amnestic) Incognito Live System.

T(A)ILS to dystrybucja rozpowszechniania w postaci liveCD i liveUSB skonfigurowana tak, by cała komunikacja odbywała się przez sieć TOR i aby nie zostawiać żadnych śladów użycia danego systemu i przeprowadzanych operacji na dyskach (dopóki wyraźnie o to nie poprosimy). Oczywiście w przypadku uruchomienia z poziomu maszyny wirtualnej tak dobrze nie będzie – przykładowo dane mogą zostać – i zapewne zostaną – przekazane do hosta gospodarza i mogą zostać zapisane na dysku np. w pliku swap, ale dokładnie taką samą wadą obarczony był Anonymix. Warto podkreślić, że tak naprawdę nie wpływa to na anonimowość – jeśli chodzi o identyfikację zdalną jest to bez znaczenia. Klasyczne bezpieczeństwo vs. wygoda – bootowanie fizycznej maszyny z liveCD jest mniej wygodne, ale bezpieczniejsze.

Warto zauważyć, że T(A)IlS nie tylko pomaga zachować anonimowość, ale pomaga zabezpieczyć przed przechwyceniem danych na różne sposoby – od zabezpieczenia przed keyloggerami za sprawą wirtualnej klawiatury, przez zapewnia komunikację Jabberem z użyciem OTR i szerokie wsparcie dla GPG. Do tego T(A)ILS wyposażony jest narzędzia do obróbki dźwięku, skanerów obróbki obrazów, wspólnej edycji tekstów i wykonywania tłumaczeń… Wygląda na niezłe zaplecze dla Wikileaks czy Anonimowych.

Projekt wygląda na aktywnie rozwijany, więc nie pozostało mi nic innego, jak definitywne pogrzebanie Anonymiksa, przekazanie pomysłów (o ile już nie są wdrożone; patrząc na listę błędów – większość jest) i ew. pomoc przy rozwoju T(A)IlS. Na tę chwilę dostępna jest wersja 0.6.2 oparta na Debianie Lenny, więc z testem poczekam raczej na coś opartego o Squeeze, bo sporo się pozmieniało.

Przygoda z lapkiem – naprawianie filesystemu ReiserFS.

Sytuacja z życia wzięta: jest sobie laptop, który nie bootuje się z USB, ma dysk IDE podzielony na partycje. Po brutalnym wyłączeniu prądu (edukacja techniczna współdomowników poszła w las, niestety – wykazali się nadgorliwością przy wyłączaniu) okazuje się, że / z ReiserFS montuje się w trybie read only. Druga partycja z ext4 jest zdrowa, ale jest czymś w stylu /opt. Skoro nie można uruchomić żadnego systemu live (tzn. z USB, płyty CD nie mam pod ręką), to pozostaje maintaince mode.

Niby żaden problem – istnieją narzędzia do naprawy filesystemów, ale fsck.reiserfs nie należy do najbezpieczniejszych narzędzi, o czym zresztą sam ostrzega (i nie jest to ostrzeżenie nieuzasadnione, kiedyś nadgodziny przez to zaliczałem…). Uruchomienie z opcją –fix-fixable (co za nazwa), pomogło, ale nie do końca – dalej jest read only, a program sugeruje uruchomienie z opcją przebudowania drzewa. Tym razem ostrzeżenie zajmuje cały ekran i wprost sugeruje zrobienie backupu, najlepiej przerzucenie obrazu w bezpieczne miejsce przy pomocy ddrescue. I podają nawet adres, gdzie można uzyskać support, za jedyne 25 dolarów. Cóż, skoro tak, to jednak postaram się uruchomić jakieś liveCD, żeby zrobić porządek (cóż, wypalona płyta może się przydać kiedyś, więc bez dramatu, bo chociaż do niedawna sądziłem, że wszystko już potrafi uruchomić się z USB, to nie do końca tak jest)…

Niestety, okazuje się, że CD-ROM nie jest w pełni sprawny. Albo, że liveCD Squeeze’ego nie działa (bo płytę widzi, początek bootowania zachodzi). Na dodatek na zdrowej partycji jest ok. 7 GB miejsca, a na zepsutej zajęte ponad 8 GB, a sama ma rozmiar kilkudziesięciu GB, więc skopiowanie tam obrazu średnio wchodzi w grę, nawet z kompresją. Na inny system obrazu nie przerzucę, bo jak / jest w read only, to wifi nie działa (kabla nie sprawdzałem, nie chciało mi się podłączać). Może by działało, jakby było wicd-curses zainstalowane, ale nie było, a Xy oczywiście nie wstawały.

Ostatecznie postanawiam podmontować zdrowy filesystem, skopiować na niego tylko najpotrzebniejsze dane (czytaj: katalog domowy) i w najgorszym wypadku, jeśli nie zdoła naprawić, skończy się przekładaniem dysku i reinstalacją systemu.

Pojawia się kolejny problem – skoro / jest w trybie read only, to nie można utworzyć katalogu, by podmontować gdzieś zdrowy filesystem. I to jest ten moment, który mnie na chwilę zawiesił. Rozwiązanie okazało się trywialne – / może być w read only, ale /dev/shm to nie dotyczy. Szybkie mkdir /dev/shm/backup, zamontowanie zdrowej partycji w tym miejscu i już można na spokojnie skopiować wybrane dane.

Kilka minut później uruchomiłem fsck.reiserfs z opcją przebudowania drzewa. Tym razem dał radę. Ale poważnie myślę nad zrobieniem dodatkowej partycji ratunkowej o rozmiarze 1GB, z minimalnym systemem (znaczy łączność, narzędzia do naprawy filesystemów, ddrescue itp.).