Jak sprawić, aby pamięć flash USB systemu Windows 7 była instalowana w systemie Linux?

105

Mam:

  • Obraz ISO nośnika instalacyjnego systemu Windows 7
  • Pamięć flash USB 4 GB
  • brak napędu DVD
  • Zainstalowany Linux
Ian Kelling
źródło
Jeśli potrafisz wykonać wszystkie te zadania z poziomu pulpitu linuksowego, będziesz kołysał domem. Myślę, że najtrudniejszą częścią byłoby majstrowanie przy wszystkich operacjach wykonywanych przez Diskpart w systemie Windows. Oznaczanie partycji jako „aktywnej” i „rozruchowej”, „podstawowej” itp.
p.campbell
3
Myślę, że GParted ( gparted.sourceforge.net ) może dobrze obsłużyć wszystkie flagi partycji. Zobacz np . Gparted.sourceforge.net/screenshots.php . I nie testowałem, ale wygląda na to, że rsync może zastąpić robocopy na tej liście kontrolnej.
Matthew Flaschen
1
Istnieje wiele szczegółowych odpowiedzi na to samo pytanie na askubuntu.com/q/289559/135671
erik

Odpowiedzi:

181

OK, po bezskutecznym wypróbowaniu wszystkich wymienionych tutaj metod wreszcie udało mi się go uruchomić. Zasadniczo brakującym krokiem było zapisanie odpowiedniego sektora rozruchowego na pamięci USB, co można wykonać z Linuksa za pomocą ms-syslub lilo -M. Działa to z wersją detaliczną systemu Windows 7.

Oto znowu podsumowanie:

Zainstaluj ms-sys - jeśli nie ma go w twoich repozytoriach, pobierz go tutaj . Lub, alternatywnie, upewnij się, że Lilo jest zainstalowane (ale nie uruchamiaj kroku liloconfig na lokalnym komputerze, jeśli np. Grub jest tam zainstalowany!)

Sprawdź, jakie urządzenie ma przypisany nośnik USB - tutaj założymy, że jest /dev/sdb. Usuń wszystkie partycje, utwórz nową, zajmującą całe miejsce, ustaw typ na NTFS (7) i pamiętaj, aby ustawić ją na rozruch:

# cfdisk /dev/sdb   lub   fdisk /dev/sdb ( typ partycji 7 i flaga rozruchowa )

Utwórz system plików NTFS:

# mkfs.ntfs -f /dev/sdb1

Napisz MBR systemu Windows 7 na pamięci USB (działa również w systemie Windows 8), wiele opcji tutaj:

  1. # ms-sys -7 /dev/sdb
  2. lub (np. w nowszych instalacjach Ubuntu) sudo lilo -M /dev/sdb mbr( informacje )
  3. lub (jeśli syslinux jest zainstalowany), możesz uruchomić sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

Zamontuj nośniki ISO i USB:

# mount -o loop win7.iso / mnt / iso
# mount / dev / sdb1 / mnt / usb

Skopiuj wszystkie pliki:

# cp -r /mnt/iso/* /mnt/usb/   ... lub użyj standardowej przeglądarki plików GUI swojego systemu

Zadzwoń, syncaby upewnić się, że wszystkie pliki są zapisane.

Otwórz gparted, wybierz dysk USB, kliknij system plików prawym przyciskiem myszy, a następnie kliknij „Zarządzaj flagami”. Zaznacz pole wyboru rozruchu, a następnie zamknij.

...i jesteś skończony.

Po tym wszystkim prawdopodobnie zechcesz wykonać kopię zapasową nośnika USB do dalszych instalacji i pozbyć się pliku ISO ... Wystarczy użyć dd: # dd if=/dev/sdb of=win7.img

Uwaga, kopiuje to całe urządzenie! - który jest zwykle (znacznie) większy niż pliki do niego skopiowane. Zamiast tego proponuję

# dd count=[(size of the ISO file in MB plus some extra MB for boot block) divided by default dd blocksize] if=/dev/sdb of=win7.img

Tak więc na przykład z 8 M dodatkowymi bajtami:

# dd count=$(((`stat -c '%s' win7.iso` + 8*1024*1024) / 512)) if=/dev/sdb of=win7.img status=progress

Jak zawsze, podczas pracy z urządzeniem bardzo dokładnie sprawdź nazwy urządzeń dd.

Przedstawiona powyżej metoda tworzenia rozruchowego USB działa również z iso instalatora Win10. Próbowałem go z Ubuntu 16.04 kopiując Win10_1703_SingleLang_English_x64.iso (rozmiar 4 241 291 264 bajtów) na pamięć USB 8 GB - tylko w rozruchu innym niż UEFI [niezabezpieczony]. Po wykonaniu raporty dd: 8300156 + 0 zapisów w 8300156 + 0 zapisanych 4249679872 bajtów (4,2 GB, 4,0 GiB) skopiowanych, 412.807 s, 10,3 MB / s

Odwróć, jeśli / następnym razem będziesz chciał zainstalować instalator Windows 7 na USB.

jthurner
źródło
1
Byłoby miło wspomnieć o numerycznym typie partycji, który ma być również używany w cfdisk (7, 86, 87?)
Johan Dahlin,
5
Działa z typem 7
Ropez
3
Tylko uwaga: jeśli twój system plików NTFS daje dziwne błędy uprawnień podczas pisania do niego nawet jako root, upewnij się, że zainstalowałeś NTFS-3G.
Jeremy Salwen
1
Próbowałem tego bezpośrednio na dysku twardym i po uruchomieniu systemu wystąpił błąd „Windows nie może uzyskać dostępu do źródeł instalacji”.
Jeremy Salwen
4
zadzwoń syncpo kopię, aby upewnić się, że wszystkie pliki są zapisane
Nicolas Dusart
13

Możesz to zrobić za pomocą dd, jeśli twój komputer obsługuje UEFI, a przez to dyski GPT.

Otwórz terminal, musisz znaleźć urządzenie, które jest Twoim pendrive. Jeśli masz zamontowany dysk, możesz znaleźć nazwę urządzenia, wpisując „mount” i patrząc na jego pozycję. Coś w stylu:

/dev/sdb1 on /media/USBDISK type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed)

W tym przypadku pierwsza część / dev / sdb jest zamontowana w / media / USBDISK. Otwórz powłokę roota i odmontuj dysk.

umount /dev/sdb1

Przejdź do katalogu, w którym ISO jest przechowywane w powłoce głównej i wpisz następujące polecenie: (Zamień Windows7.iso na dowolną nazwę ISO i / dev / sdb na identyfikator urządzenia na pendrivie).

dd if=windows7.iso of=/dev/sdb

Jeśli twoja płyta główna obsługuje uruchamianie z pendrive'a, powinna móc się z niego uruchomić. Spowoduje to pobranie instalatora na pendrive, a nie sam system operacyjny.

TrueDuality
źródło
21
Nie działa dla mnie
1
Czy Twoja płyta główna obsługuje uruchamianie z USB? To będzie decydujący czynnik decydujący o tym, czy to podejście zadziała, czy nie.
TrueDuality
11
Dla mnie też nie działa, a mój komputer dobrze obsługuje rozruch z USB. Być może takie podejście może działać na komputerach, które mogą uruchamiać pamięć USB w stylu DVD, ale większość BIOSów zakłada układ w stylu HDD na USB (co oznacza 512 bajtów MBR z kodem rozruchowym). Warto wspomnieć: obrazy CD / DVD Fedory, w przeciwieństwie do W7, mają w rzeczywistości taki MBR z kodem rozruchowym i tablicą partycji, dzięki czemu nadają się również do rozruchu z HDD / USB.
Tronic
9
Wymaga to, aby Twoja płyta główna mogła uruchomić USB-CDROM nie tylko USB-HDD
TrueDuality
12
W tym rozwiązaniu brakuje kroku instalacji MBR i zwykle nie działa, chyba że magicznie już tam jest. Rozwiązanie @Gunthers jest kompletne.
stolsvik,
5

Sugestia PCambell jest dobra, ale będziesz również chciał wyczyścić MBR, odpowiednik linuksa znajduje się poniżej

Próbowałem tego i zadziałało (nie jestem pewien, dlaczego metoda dd zawiodła, ale wydaje się, że partycja musiała być NTFS?):

  • sprawdź, które / dev / device jest dyskiem flash USB i odmontuj go
  • wyczyść MBR: dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • uruchom fdisk / dev / device
  • usuń wszystkie partycje i utwórz 1 partycję podstawową, uruchom ją, a następnie zapisz zmiany
  • uruchom mkfs.ntfs / dev / device1 (partycja 1)
  • skopiuj całą zawartość systemu Windows do instalacji na utworzonej partycji

źródło
-4

Zamiast

dd if=windows7.iso of=/dev/sdb

jak piszesz root,

dd if=windows7.iso of=/dev/sdb1 

(DODAJ 1 na końcu lub w jakimkolwiek miejscu na dysku USB).

Gonzo
źródło
3
Nie, of = sdb jest poprawny jak w poprzednich odpowiedziach.
James Broadhead,
1
To jest po prostu źle.
lukad
1
-1: ddmusi pisać do urządzeń, a nie do partycji
ssc