Jakie są niedogodności związane z tworzeniem bootowalnego napędu USB Windows 7 z Linuksa z MS-SYS lub DD?

9

Czytałem niektóre strony internetowe i posty (tutaj i na innych forach) o tym, jak utworzyć nośnik instalacyjny USB systemu Windows 7 z systemu Linux (aby zainstalować system Windows 7)

Zapytałem o to w TechNet i dostałem odpowiedź z ogólnymi informacjami, jak to zrobić:

„Ja osobiście nie znam się na Linuksie, ale w zasadzie wszystko, co musisz zrobić ... w jakikolwiek sposób to robisz:

  1. Sformatuj dysk flash USB, albo fat32 albo ntfs utworzą partycję, która jest wystarczająco duża, aby pomieścić instalację systemu Windows (daj lub weź 3 GB na 64 bity, około 2,5 gb na 32 bity) i oznacz tę partycję jako aktywną / rozruchową. Ponieważ można to zrobić w systemie Windows, ale równie dobrze za pomocą narzędzia takiego jak gparted, powinieneś być w stanie zrobić to samo w Debianie.

  2. Po utworzeniu tej partycji zamontuj pobrany plik ISO i skopiuj wszystkie pliki, zaczynając od katalogu głównego, do katalogu głównego dysku flash USB.

To wszystko. ”

Znalazłem inną metodę w różnych miejscach, czyli prawie taką samą, jak wspomniano w TechNet. Wydaje się jednak, że brakuje tej metody i / lub etapu, który nie jestem pewien, czy jest konieczny.

ddnie zawsze działa. Zasadniczo brakującym krokiem było napisanie odpowiedniego sektora rozruchowego na pendrivie, co można zrobić z Linuksa ms-sys. Działa to z wersją detaliczną Windows 7.

Oto pełne podsumowanie, zobacz pytanie o awarię serwera, aby uzyskać więcej informacji:

  1. Zainstaluj ms-sys .
  2. Sprawdź, jakie urządzenie ma przypisany nośnik USB ( fdisk -l), tutaj zakładamy, że jest /dev/sdb.
  3. Usuń wszystkie partycje, utwórz nową, zajmując całe miejsce, ustaw typ na NTFS i ustaw ją na rozruchową:

    cfdisk /dev/sdb

  4. Utwórz system plików NTFS:

    mkfs.ntfs -f /dev/sdb1

  5. Mount ISO i USB Media:

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

  6. Skopiuj wszystkie pliki:

    # cp -r /mnt/iso/* /mnt/usb/

  7. Napisz MBR systemu Windows 7 na pamięci USB:

    # ms-sys -7 /dev/sdb

  8. Upewnij się, że zapis jest opróżniony (bądź cierpliwy, może to potrwać kilka minut):

    # sync

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

...i jesteś skończony.

pytania

  • Czy usb nie powinien działać bez zrobienia ostatniego kroku # ms-sys -7 /dev/sdb? A może ma to umożliwić rozruch USB? Czy oznacza to tylko partycję jako rozruchową?

  • Czy nie lepiej byłoby użyć rsync zamiast cp -r?

  • Czy wszystkie te kroki muszą być wykonane jako root? Jeśli nie, to czy potrzebuję chmodwszystkich plików 664i chownwszystkich katalogów używanych do zamontowania urządzenia USB i obrazu ISO? Przypuszczam, że po prostu łatwiej jest skopiować dane jako rooti nie ma to wpływu na dane.

  • Czy ktoś próbował tej metody lub podobnego, na przykład kopiowania ISO dd?

Abel Coto
źródło
Użyłem dd z ISO, chociaż nie dla Windows 7. Możesz sprawdzić, czy to działa: superuser.com/questions/591234/…
xsdf

Odpowiedzi:

1

ms-sysPolecenie jest ważne. Dzięki tej -7opcji tworzy na dysku flash sektor rozruchowy zgodny z systemem Windows 7 .

Nie możesz użyć dd, ponieważ ISO używa systemu plików ISO, takiego jak UDF lub ISO9660 , ponieważ jako że dysk USB poprawnie obsługuje dyskowe systemy plików, takie jak ext3, FAT32 lub NTFS

Czy lepiej byłoby użyć rsync zamiast cp -r?

Nie całkiem. cp -rdziała idealnie dobrze. Po prostu zdaj sobie sprawę, że NTFS obsługuje uprawnienia inaczej niż Linux, więc użycie rsync do utrzymania wszystkiego w nienaruszonym stanie nie ma większego znaczenia. Liczy się tylko to, że pliki z ISO znajdują się na USB i że sektor rozruchowy jest poprawnie sformatowany przy użyciums-sys -7

Możesz wykonać wszystkie kroki jako root, jeśli chcesz. Jedyne 2 kroki, które są naprawdę wymagające korzeń mkfsi 2 mount„s

Jeśli masz problemy z uprawnieniami nawet jako root, być może będziesz musiał podłączyć USB, ntfs-3g /dev/sdb1ponieważ niektóre dystrybucje Linuksa dostarczają tylko sterownik tylko do odczytu dla NTFS.

Someguy123
źródło
1

Próbowałem z dd (dd if = / file / win7.iso of = / dev / sdb) i to nie działa.

Moje kroki, aby to działało:

  • Zainstaluj ms-sys
  • gparted, aby utworzyć partycję i system plików NTFS.

Następnie zastosuj następujące polecenia:

# mount -o loop win7.iso /mnt/iso 
# mount /dev/sdb1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/*
# ms-sys -7 /dev/sdb*
Nacheteee
źródło