Wiele instalatorów Windows na pamięci USB

12

Niedawno dostałem jeden z tych dysków SanDisk Extreme 64 GB i zacząłem majstrować przy nim. Podczas tej historii pamiętaj, że jest to model, w którym removablebit jest ustawiony 0(co oznacza, że ​​Windows domyślnie widzi wszystkie swoje partycje - każda z nich jest eksplorowana jako pojedynczy dysk).

Cele:

  1. Aby mieć wiele różnych dystrybucji rozruchowych na jednym patyku
  2. Wśród nich powinien być instalator Windows 7 ORAZ instalator Windows 8
  3. Tylko jedna partycja powinna być automatycznie montowana w systemie Windows (a najlepiej w innych systemach operacyjnych) - pierwsza (przechowywanie plików). Zapobiega to przypadkowej zmianie partycji rozruchowych lub znajdujących się na nich plików. Powinien być typu NTFS.
  4. Opcjonalnie chciałbym również na tym patyku bezpośrednio bootowalny, w pełni trwały linux (najlepiej Ubuntu).
  5. Wszystkie te funkcje powinny być dostępne z jednego menu wyświetlanego podczas uruchamiania urządzenia z pamięci USB.

Ramblings:

Teraz można to wszystko całkiem łatwo osiągnąć za pomocą kombinacji SYSLINUX i GRUB (zobacz poniżej). Istnieje jednak jeden problem: wydaje się, że wszystkie elementy startowe oparte na systemie Linux (takie, które korzystają ze create ramdisk -> load kernel -> have funschematu: jak PartEd Magic, Instalator Ubuntu itp.) Nie mają problemu z uruchomieniem z własnego folderu na jednej partycji rozruchowej. Dobrze sobie radzą, po prostu umieszczając je w różnych folderach i wskazując na nich pojedyncze pozycje menu SYSLINUX (cokolwiek by potem użyli, może to być po prostu kolejny SYSLINUX :)).

Problem (jak zawsze: D) dotyczy instalatorów Windows. Oni (lub powinienem powiedzieć bootmgr) odmawiają rozpoznania ścieżek względnych. Jeśli umieścisz jednego instalatora systemu Windows w folderze, powiedzmy, Win7tak, aby wyglądał /Win7/bootmgr, skarbiec szuka \Boot\BCDpo przejściu kontroli (nie \Win7\Boot\BCD- lokalizacji, w której faktycznie jest przechowywany). Po zapoznaniu się z tym, oczywiście, nie można umieścić więcej niż jednego instalatora Windows na jednej partycji (pojedynczej strukturze katalogów). To narusza CEL 2 .

Aktualny program:

Potrzebujesz 10 reputacji, aby publikować zdjęcia :(. Oto schemat wizualizowany.

Opis:

  1. Normalna partycja NTFS. Rób co chcesz - nie wpłynie to na wrażliwe linki rozruchowe :)
  2. Partycja rozruchowa FAT32. To tutaj kontrola jest przenoszona z MBR. Ten musi być podstawowy, aby można było przenieść kontrolę z MBR. Zawiera główny SYSLINUX - ten, który pokazuje menu ( CEL 5 i CEL 1 ). Wszystkie poniższe partycje są rozszerzone, aby podnieść maksymalnie 4-partycje podstawowe na dysk
  3. Instalator Windows 7. Ta partycja zawiera bootsector, który wskazuje na GRUBA, który wskazuje na to /bootmgr(nie pytaj dlaczego tak wielu bootloaderów - to konfiguracja testowa :)). Działa dobrze, z wyjątkiem problemu poniżej ( CEL 2 ).
  4. Instalator Windows 8. Ta partycja zawiera bootsector, który wskazuje GRUB, na który wskazuje /bootmgr. Działa dobrze, z wyjątkiem problemu poniżej ( CEL 2 ).
  5. Trwała partycja Linux, na której zainstalowano Ubuntu przy użyciu normalnych metod (z tej samej pamięci USB). Używa GRUB-a do zarządzania menu uruchamiania. Oczywiście ma także sektor rozruchowy ( GOAL 4 ).
  6. Wymiana systemu Linux. Używany przez Linuksa na poprzedniej partycji zwykle, ale nie jest związany żadnymi ograniczeniami dotyczącymi tego, kto może z niego korzystać.

Teraz wszystko wydaje się właściwe (i działa) .. oprócz CELU 3 .

Problemy:

  1. Próbowałem użyć hiddenflagi, aby ukryć te partycje przed wzrokiem Windows i działało to dobrze, a nawet zbyt dobrze. Ukrył je także przed wzrokiem instalatora systemu Windows. Kiedy próbowałem zainstalować system Windows z ukrytej partycji, instalator w zasadzie nie znalazł skąd się uruchomił: O. To jest problem krytyczny .
  2. Użyłem 2 dodatkowych partycji do zainstalowania instalatorów Windows. To nie jest naprawdę świetny schemat, ponieważ za każdym razem, gdy chcę coś zmienić i nie pasuje do nich, muszę ponownie partycjonować. To jest kwestia niekrytyczna - mogę z tym żyć.

Moje myśli:

  1. Są rzeczy, które się tam jak isolinux i GRUB4DOS (wymyślą podczas wyszukiwania odnośnie tego). Z tego, co zrozumiałam, mogą mi pomóc w zainstalowaniu bootowalnego instalatora Windows .iso . Czy to prawda? Niektóre strony zawierają ostrzeżenie o tak zamontowanych obrazach, które będą dostępne tylko na etapie rozruchu systemu BIOS - po uruchomieniu instalatora systemu Windows nie będzie mógł zobaczyć zamontowanego obrazu. Czy to prawda? Czy możesz wskazać mi właściwy kierunek?
  2. Może mógłbym użyć niestandardowego instalatora dla systemu Windows (ponieważ w zasadzie walczę bootmgrtutaj przez 100% czasu) lub chrootw bootmgrjakiś sposób, aby stał się rozsądny? Czy można to zrobić? Wydaje mi się, że nadal mam problem z tym, że partycja jest nadal ukryta i instalator prawdopodobnie jej nie zobaczy
  3. Może mógłbym włamać się na ścieżkę bootmgr, choć to dość śmiałe założenie :)

Jeśli są jakieś dodatkowe porady na ten temat, możesz omówić je tutaj. Jestem otwarty na wszelkie sugestie. Jeśli jest coś, co wymaga wyjaśnienia lub należy podać dodatkowe informacje - nie wahaj się zapytać.

Dziękuję Ci bardzo!

Gear54rus
źródło
Instalatory WRT dla systemu Windows: Dlaczego potrzebujesz wielu programów ładujących? Powinna istnieć możliwość modyfikacji jej wpisów, aby móc uruchomić oba instalatory z tej samej partycji przy użyciu nowszej wersji (tj. Windows 8)?
Mario,
Czy możesz podać przykład, jak to zrobić? O ile rozumiem, masz na myśli konfigurację, w której korzystam z jednego bootmgr, ale z wielu instalatorów? Czy mógłbym coś o tym przeczytać?
Gear54rus
Nigdy nie próbowałem tego sam, ale w zasadzie menedżer rozruchu na instalacyjnym dysku DVD nie różni się niczym od normalnej instalacji dysku twardego, więc powinieneś być w stanie użyć narzędzi takich jak BCDEdit, aby stworzyć konfigurację „podwójnego rozruchu”.
Mario,
Ok, myślę, że znalazłem częściowe rozwiązanie. Opublikuję to wszystko tutaj, gdy dokładnie go przetestuję. Nadal mam inny problem: jak sprawić, by instalator systemu Windows zobaczył ukryte zachowanie
Gear54rus
Edytowałem plik BCD. To, co zrobiłem, to rozpakowanie instalatora .iso systemu Windows 7 do folderu / Win7 na partycji SYSLINUX. Następnie ściągnąłem bootmgri bootz Win7 do folderu głównego i edytowałem /boot/BCDplik, aby odzwierciedlić te zmienione w devicei osdevicewęzłach. Potem instalator ładuje się poprawnie z SYSLINUX, chain.c32 fs ntldr=/bootmgrale potem A required CD/DVD drive device driver is missingpojawia się przerażająca wiadomość. Ponowne włożenie do innego portu USB nie pomaga. Po kliknięciu Browsewidzę, że ramdysk został poprawnie zamontowany i ma wszystkie potrzebne foldery. Znów się zgubiłem :(
Gear54rus

Odpowiedzi:

6

Po długiej i ostatecznie udanej podróży udało mi się to wszystko osiągnąć.

Stworzyłem tutorial, jak to zrobić . Sprawdź to.

Na życzenie publikuję również całość poniżej:

Oprogramowanie:

Po pierwsze: potrzebujesz komputera z systemem Windows 7/8 i dostępem administracyjnym (Vista może działać, nie jestem pewien). W tym miejscu zostanie przeprowadzony samouczek.

Aby wykonać wszystko, czego potrzebujemy, ten pakiet oprogramowania jest również dublowany w GitHub (kliknij Pobierz ZIP ). [0] (od teraz odniesienia będą oznaczone [] ). Aby go pobrać, być może trzeba się tam zarejestrować (nie wiem, dlaczego).

Pakiet oprogramowania obejmuje:

  • YUMI przez pendrivelinux.com . [1]
  • altmbr.bin z pakietu SYSLINUX , który pozwala na uruchomienie partycji według numeru. [2]
  • Wiele skryptów i jeden plik wykonywalny (w tym program vmount - wersje 32-bitowe i 64-bitowe autorstwa erwan.l i uśpienie 32/64 bitów z tego wątku, aby wszystko działało razem [3] .

Ponadto musisz pobrać następujące pliki:

  • WinSetupFromUSB (później WSFUSB). Ten jest niezbędny do działania tego programu. Użyj wersji .exe, jeśli nie masz zainstalowanego programu 7zip . Ten samouczek został napisany w momencie, gdy wersja 1.4 była najnowsza. [4]

Opcjonalnie (oprogramowanie polecam, które uczyni proces łatwiejszym i bardziej elastycznym, ale nie jest wymagane):

  • Gparted na żywo .iso do partycjonowania i ustawiania flag partycji (analogi obejmują Parted Magic, która zdecydowała się zapłacić niedawno lub Partition Wizard, który jest mniejszy, ale pamiętaj, że nie jest to Partpart Magic i musisz mieć trochę doświadczenia, aby go obsługiwać). [5]
  • Notepad ++ to doskonały edytor tekstowy dla systemu Windows z wieloma wtyczkami. [6]

I oczywiście kilka instalatorów Windows, .isoa także kilka bootowalnych dystrybucji Linuksa. Może to być wszystko, co obsługuje YUMI i SYSLINUX (będzie można to sprawdzić w dalszej części tego samouczka).

Po pobraniu tego wszystkiego jesteś gotowy na kolejne kroki.

Pojęcie:

Tutaj schemat działania zostanie krótko omówiony.

Omawiany tutaj schemat jest tym, czego używam do mojej konfiguracji. Z pewnością nie jest to jedyny sposób na osiągnięcie tego samego celu. Zrobię co w mojej mocy, aby wyjaśnić to, abyś mógł dostosować konfigurację do swoich potrzeb.

Proces ten wydaje się najlepiej opisany na zdjęciu. (przepraszam za Paint, grafika nie jest tak naprawdę moją mocną stroną):

Pojęcie

To prawie wszystko. Naprawdę nie wiem, jak to lepiej wyjaśnić. Będę monitorować ten wątek, zadawaj pytania w odpowiedziach.

Działania:

  1. [Konfiguracja oprogramowania]

    1. Wyodrębnij pakiet oprogramowania [0] do jakiegoś folderu ( całe wymagane oprogramowanie jest wymienione powyżej, spójrz tam, jeśli jeszcze tego nie zrobiłeś ).
    2. Wyodrębnij WinSetupFromUSB do tego samego folderu (tak, aby był obok YUMI.exei wszystkich innych rzeczy). Kliknij go dwukrotnie i rozpakuj do tego samego folderu.
    3. Teraz weź folder z WinSetupFromUSB i przeciągnij go do drag_here.cmdpliku. W ten sposób (struktura folderów też powinna być taka): DND Jeśli zrobiłeś wszystko dobrze, pojawi się okno z informacją, że proces został zakończony:
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. Tak jak mówi, naciśnij dowolny klawisz, aby zamknąć okno. Nie uruchamiaj jeszcze pliku start_admin.cmd. Przejdź do następnego kroku, aby zdefiniować strukturę partycji.
  2. [Partycjonowanie]

    1. Zdecyduj o strukturze partycji: Twoja powinna zawierać co najmniej 1 partycję pamięci i co najmniej 1 partycję rozruchową . Partycja rozruchowa musi być typu FAT32 ( FAT32 ma ograniczenie największego pliku - 4 GB i największego woluminu - 32 GB, który wynosi 32768 MB . Jeśli planujesz używać większych plików lub woluminów, nie możesz używać NTFS, ale możesz wypróbować exFAT jako eksperyment - nie próbowałem) i pamięć może być dowolna, ale zalecam NTFS. Mój wygląda następująco: partycja Struktura pamięci ma 32 GB NTFS, a partycja Boot ma 15 GB FAT32 (nie ma litery takiej jak G: ponieważ ma już ustawioną ukrytą flagę, dowiesz się o tym później).Jeśli używasz dużego dysku, dobrym pomysłem może być umieszczenie partycji rozruchowej na pierwszym miejscu, ponieważ niektóre BIOS-y mają problemy z odczytem przekraczającym pewne granice .
    2. Sposób zarządzania dyskami opisano tutaj, ale możesz użyć dowolnego oprogramowania, które chcesz zastosować do struktury partycji (np. Wspomniane wcześniej Gparted [5] lub Bootice, które można uruchomić z WinSetupFromUSB ). Otwórz Zarządzanie dyskami w systemie Windows. Można to zrobić poprzez wyszukiwanie w menu Start (wpisz w Zarządzanie dyskami ) lub w wierszu polecenia systemu Windows: diskmgmt .
    3. Zastosuj żądaną strukturę partycji. Kliknij dowolną partycję prawym przyciskiem myszy, aby nią zarządzać. Kliknij prawym przyciskiem myszy nieprzydzielone miejsce po usunięciu partycji, aby utworzyć nową partycję. Zawsze wybieraj przypisanie litery dysku i możesz swobodnie sformatować ją bezpośrednio w tym samym kreatorze: Tworzenie partycji
    4. Przed wyjściem z zarządzania dyskami zanotuj numer partycji rozruchowej i numer dysku w systemie. Tak wyglądają w Zarządzaniu dyskami: Wskaźniki tutaj numer dysku to 2, a numer partycji rozruchowej to 1 .
    5. Po zakończeniu stosowania schematu partycji nadszedł czas, aby ten dysk faktycznie można było uruchomić .
  3. [Dodawanie podstawowego środowiska rozruchowego (YUMI)]

    1. Przejdź do folderu od kroku 1 . Początek YUMI.exe.
    2. Zaznacz pole Pokaż wszystkie dyski i wybierz partycję rozruchową z listy rozwijanej. Możesz opcjonalnie również sformatować .
    3. Czas dodać kilka dystrybucji opartych na systemie Linux. Jako przykład wybrałem Kreatora partycji (możesz wybrać dowolną inną dystrybucję, a także dodać więcej niż jedną, link do Kreatora partycji znajduje się w sekcji OPROGRAMOWANIE ). W tym momencie zaleca się dodanie wszystkich dystrybucji opartych na systemie Linux, ponieważ trudniej będzie to zrobić później po sfinalizowaniu dysku .
    4. Wybierz Przeglądaj i wybierz .isoobraz. Ekran będzie wyglądał następująco: YUMI
    5. Kliknij Utwórz i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Gdy pojawi się pytanie, czy chcesz dodać więcej, możesz wybrać opcję tak i powtórzyć procedurę ( oczywiście nie wybieraj opcji formatowania podczas powtarzania procedury ), aby dodać kolejną dystrybucję.
    6. W tym momencie dysk można uruchomić. Odłącz dysk i podłącz go ponownie (jest to konieczne, aby system Windows mógł poprawnie wykryć partycję jako aktywną).
    7. Przejdź do folderu od kroku 1 i uruchom start_admin.cmd jako Administrator . Jest to kluczowe dla jego działania, kliknij go prawym przyciskiem myszy i wybierz Uruchom jako administrator : Uruchom jako administrator
    8. Zostaniesz zapytany o numer dysku i numer partycji rozruchowej (krok 2.4 ). Ponownie otwórz Zarządzanie dyskami i znajdź te liczby, jak w kroku 2.4 . Podaj odpowiednie liczby i naciśnij klawisz Enter .

    [UWAGA] Ponownie, nie jestem odpowiedzialny za to, co stanie się z twoimi dyskami (włączając te nie wymienione w tym samouczku), jeśli nie określisz właściwego numeru dysku i partycji w tym kroku lub w innym miejscu.


    1. Na koniec zapyta Cię, czy chcesz skompresować pliki wykonywalne przed umieszczeniem ich na dysku USB. Rozmiar rzadko stanowi obecnie problem, dlatego zalecam wpisanie się ntutaj (nieoczekiwane działania niepożądane mogą pojawić się później, jeśli naciśniesz y, tylko jeśli wiesz, co robisz).
  4. [Dodawanie instalatorów opartych na systemie Windows (WinSetupFromUSB)]

    1. Z powrotem w tym samym folderze, przejdź do folderu WSFUSB ( nie folderu WinSetupFromUSB ) i uruchom program WinSetupFromUSB.exe odpowiedni dla architektury systemu.
    2. Wybierz partycję w najwyższym menu rozwijanym. Zrób to ostrożnie.
    3. Zaznacz pole obok instalatora Windows 7/8 i kliknij przycisk po prawej stronie, aby wybrać instalator Windows .iso .
    4. Wybierz pole Opcje zaawansowane . Upewnij się, że Nie sprawdzaj i nie instaluj MBR grub4dos i uruchom Q-Dir przed instalacją .
    5. Sprawdź dokładnie swoje ustawienia i upewnij się, że wyglądają prawie w 100% identycznie (z wyjątkiem dysku i .isościeżki) do tego przykładu: WSFUSB
    6. Opcjonalnie możesz wybrać Niestandardowe nazwy menu dla źródła Vista / 7/8 / Server , abyś mógł zobaczyć niestandardowe nazwy podczas wybierania dystrybucji systemu Windows podczas uruchamiania.
    7. Kiedy będziesz gotowy, naciśnij przycisk GO . Jeśli zaznaczyłeś pole z kroku 4.7 , poprosi o podanie nazw. Następnie poczekaj na zakończenie operacji .
    8. Powtórz kroki dla każdej dystrybucji Windows, którą chcesz dodać.
  5. [Finalizacja]

    1. W tym momencie mamy 2 struktury rozruchowe : jedną dla Linuksa ( zaczyna się od MBR ) i jedną dla Windows (zaczyna się od bootmgr na partycji rozruchowej). Musimy je połączyć. Otwórz partycję rozruchową w Eksploratorze Windows .
    2. Otwórz plik <drive root>\multiboot\syslinux.cfg. Zawiera informacje o menu wyświetlanym podczas uruchamiania z dysku. Więcej informacji na ten temat można znaleźć tutaj: menu.c32 - składnia syslinux.cfg , polecenie chainloader chain.c32 . Na razie musimy wprowadzić pozycję menu, która pozwoli nam uruchomić nasze instalatory Windows. Dodaj następujące wiersze u dołu (lub pomiędzy innymi pozycjami menu), aby utworzyć nową pozycję menu:
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      Najlepiej dodaj pustą linię przed i po tym kodzie . Dostosuj menu wejścia etykietę , jeśli chcesz. Zapisz i zamknij plik.
    3. [OPCJONALNIE TUTAJ] Ponownie otwórz WinSetupFromUSB . Będziemy usunąć nieświeży powrót do menu głównego (Grub4dos) menu pozycję z menu Start systemu Windows instalatorów. Wybierz narzędzie Bootice .
    4. Przejdź do edycji BCD . Wybierz inny plik BCD i zlokalizuj <drive root>\boot\bcdplik na partycji rozruchowej: Bootice
    5. Naciśnij Łatwy tryb, aby edytować plik BCD (dane konfiguracji rozruchu): BCD UWAGA: Jeśli masz tylko 1 instalator, zostanie on załadowany zaraz po naciśnięciu dodanej pozycji menu syslinux.cfg bez pokazywania żadnego menu . Możesz także nacisnąć przycisk Ustaw jako domyślny dla dowolnego elementu menu , który chcesz ustawić jako domyślny . Kliknij Zamknij i zamknij narzędzie Bootice . Wyjdź także z WinSetupFromUSB .
  6. [Oczyszczanie (OPCJONALNIE)]

    1. Teraz musimy usunąć nieaktualne pliki. Możesz pominąć tę sekcję, jeśli nie przejmujesz się tego rodzaju rzeczami. Otwórz partycję rozruchową w Eksploratorze Windows. Otwórz także pierwszą partycję na dysku ( mogą być jedną i tą samą ).
    2. Aby ten dysk mógł działać, potrzebne są następujące pliki i foldery ( jeśli folder znajduje się na liście, należy zachować całą jego zawartość ):
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. Następujące pliki i foldery można bezpiecznie usunąć:
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      Usuń je do woli . Ponadto system Windows może utworzyć głupie informacje o woluminie systemowym - możesz je również usunąć, jeśli masz szczęście. Ponadto, jest to punkt, w którym można zmienić nazwę partycji rozruchowej z Multiboot do innej nazwy (wolę po prostu Boot ). Możesz to zrobić tak samo, jak w przypadku dowolnego folderu za pomocą Eksploratora Windows.
  7. [Ukrywanie partycji rozruchowej (OPCJONALNIE)]

    1. Teraz możesz ukryć partycję rozruchową, aby zapobiec przypadkowej zmianie plików na niej. Oznacza to, że domyślnie nie będzie on widoczny w większości systemów po włożeniu dysku, ale nadal będzie można go uruchomić. Ponownie otwórz WinSetupFromUSB .
    2. Otwórz narzędzie Bootice i wybierz kartę Dysk fizyczny , jeśli nie jest jeszcze zaznaczona. Wybierz dysk (ostrożnie) z menu rozwijanego.
    3. Kliknij przycisk Zarządzanie częściami . Zostanie wyświetlona lista partycji.
    4. Znajdź swoją partycję na liście i naciśnij przycisk Ukryj . Pojawi się okno potwierdzające sukces . Wszystko będzie wyglądać tak: Ukryj to To jest to . Twoja partycja nie jest już automatycznie montowana (nie będzie miała litery dysku) w większości systemów, a pliki potrzebne do uruchomienia dysku nie zostaną przypadkowo zmienione .

Ponadto wolę zachować program vmount ( [3] w sekcji OPROGRAMOWANIE ), aby w razie potrzeby móc szybko zamontować ukrytą partycję w systemie Windows.

To wszystko, jeśli zauważysz jakieś nieporozumienie lub błąd, opublikuj go tutaj. Pytania i opinie są również mile widziane.

Kredyty:

Wonko , erwan.l , Ilko , Steve - członkowie reboot.pro społeczności, którzy pomogli mi ogromnie w tym wątku . Tam zakończyła się podróż :)

Bob, który początkowo wspomniał o sterowniku ImDisk w tym pokoju .

Mario, który edukował o plikach BCD, ich celu i sposobach ich edycji w tym oryginalnym pytaniu . Właśnie tam rozpoczęła się podróż.

Ricky, który naprawił błąd w wcięciu.

Gear54rus
źródło
Byłoby wspaniale, gdybyś mógł tutaj również skopiować swoje rozwiązanie.
Cristian Ciupitu
Ładnie wykonane. Niesamowity szczegółowy przewodnik.
Devian