Linux에서 Windows 7 USB 플래시 설치 미디어를 만드는 방법은 무엇입니까?


105

나는 가지고있다:

  • Windows 7 설치 미디어의 ISO 이미지
  • 4GB USB 플래시 드라이브
  • DVD 드라이브 없음
  • 리눅스 설치

리눅스 데스크탑 내에서 이러한 모든 작업 을 수행 할 수 있다면 집을 뒤흔들 것입니다. 가장 어려운 부분은 Windows의 Diskpart가 수행하는 모든 작업을 처리하는 것입니다. 파티션을 'active'및 'boot', 'primary'등으로 표시
p.campbell

3
GParted ( gparted.sourceforge.net )는 모든 파티션 플래그를 잘 처리 할 수 있다고 생각 합니다. 예를 들어 gparted.sourceforge.net/screenshots.php를 참조하십시오 . 그리고 테스트하지는 않았지만 rsync가 해당 검사 목록에서 robocopy를 대체 할 수있는 것처럼 보입니다.
Matthew Flaschen

답변:


181

좋아, 여기에 언급 된 모든 방법을 시도했지만 실패했습니다. 기본적으로 빠진 단계는 USB 부팅에 적절한 부팅 섹터를 작성하는 것이 었습니다 . ms-sys또는 USB를 사용하여 Linux에서 수행 할 수 있습니다 lilo -M. 이것은 Windows 7 소매 버전에서 작동합니다.

전체 요약은 다음과 같습니다.

ms-sys를 설치하십시오-리포지토리에 없으면 여기로 이동하십시오 . 또는, lilo가 설치되어 있는지 확인하십시오 (그러나 Grub이 설치된 경우 로컬 박스에서 liloconfig 단계를 실행 하지 마십시오 !)

USB 미디어가 어떤 장치에 할당되어 있는지 확인하십시오. 여기에서는 해당 장치를 가정합니다 /dev/sdb. 모든 파티션을 삭제하고 모든 공간을 차지하는 새 파티션을 생성 한 다음 유형을 NTFS (7)로 설정하고 부팅 가능하도록 설정하십시오.

# cfdisk /dev/sdb   또는   fdisk /dev/sdb (파티션 유형 7부팅 가능한 플래그)

NTFS 파일 시스템을 만듭니다.

# mkfs.ntfs -f /dev/sdb1

USB 스틱에 Windows 7 MBR 을 작성하십시오 (Windows 8에서도 작동). 여기에는 여러 옵션이 있습니다.

  1. # ms-sys -7 /dev/sdb
  2. 또는 (예 : 최신 우분투 설치시) sudo lilo -M /dev/sdb mbr( info )
  3. 또는 (syslinux가 설치된 경우) 다음을 실행할 수 있습니다 sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb

ISO 및 USB 미디어 마운트 :

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

모든 파일을 복사하십시오.

# cp -r /mnt/iso/* /mnt/usb/   ... 또는 시스템의 표준 GUI 파일 브라우저를 사용하십시오

전화 sync모든 파일이 작성되어 있는지 확인 할 수 있습니다.

gparted를 열고 USB 드라이브를 선택하고 파일 시스템을 마우스 오른쪽 버튼으로 클릭 한 다음 "플래그 관리"를 클릭하십시오. 부팅 확인란을 선택한 다음 닫습니다.

... 끝났어요.

결국, 추가 설치를 위해 USB 미디어를 백업하고 ISO 파일을 제거하고 싶을 것입니다 ... dd를 사용하십시오. # dd if=/dev/sdb of=win7.img

이것은 전체 장치를 복사합니다! — 일반적으로 복사 된 파일보다 훨씬 큽니다. 대신 제안합니다

# 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

따라서 예를 들어 8M 여분의 바이트가있는 경우 :

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

항상 그렇듯이 작업 할 때 장치 이름을 매우 신중하게 다시 확인하십시오 dd.

위에 제시된 부팅 가능한 USB를 생성하는 방법은 Win10 설치 프로그램 iso에서도 작동합니다. Ubuntu 16.04를 실행하여 Win10_1703_SingleLang_English_x64.iso (크기 4,241,291,264 바이트)를 8GB USB 스틱에 복사 (UEFI 이외의 비보안) 부팅에서만 실행했습니다. dd 보고서 실행 후 : 8300156 + 0의 8300156 + 0 레코드가 4249679872 바이트 (4.2GB, 4.0GiB)를 기록함, 412.807 초, 10.3MB / s

다음에 Windows 7 설치 프로그램을 USB에 넣으려면 반전하십시오.


1
cfdisk에서도 사용할 수있는 숫자 파티션 유형을 언급하는 것이 좋을 것입니다 (7, 86, 87?)
Johan Dahlin

5
유형 7
Ropez

3
참고 사항 : 루트로도 쓸 때 ntfs 파일 시스템에 이상한 권한 오류가 발생하면 ntfs-3g를 설치했는지 확인하십시오.
Jeremy Salwen

1
이 작업을 하드 드라이브에 직접 시도했는데 부팅 한 후에 "Windows가 설치 원본에 액세스 할 수 없습니다"라는 오류가 발생했습니다.
Jeremy Salwen

4
전화 sync모든 파일이 작성되어 있는지 확인하기 위해 복사 한 후
니콜라스 Dusart

13

PC가 UEFI를 지원하는 경우 dd와 확장하여 GPT 디스크를 사용하여이 작업을 수행 할 수 있습니다.

터미널을 열고 펜 드라이브가 어떤 장치인지 찾아야합니다. 드라이브가 마운트 된 경우 "mount"를 입력하고 해당 항목을 보면 장치 이름을 찾을 수 있습니다. 다음과 같은 것 :

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

이 경우 / dev / sdb의 첫 부분은 / media / USBDISK에 마운트됩니다. 루트 쉘을 열고 드라이브를 마운트 해제하십시오.

umount /dev/sdb1

ISO가 루트 쉘에 저장된 디렉토리로 이동하여 다음을 입력하십시오.

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

메인 보드가 펜 드라이브 부팅을 지원한다면, 부팅이 가능해야합니다. 그러면 OS 자체가 아닌 펜 드라이브의 설치 프로그램이 표시됩니다.


21
나를 위해 작동하지 않습니다.

1
마더 보드가 USB 부팅을 지원합니까? 이것이이 접근 방식의 작동 여부에 대한 궁극적 인 결정 요인이 될 것입니다.
TrueDuality

11
나에게도 효과가 없으며 내 컴퓨터는 USB 부팅을 지원합니다. 이 방식은 DVD 스타일 USB 저장 장치를 부팅 할 수있는 시스템에서 작동 할 수 있지만 대부분의 BIOS는 USB에서 HDD 스타일 레이아웃을 가정합니다 (부팅 코드가 포함 된 512 바이트 MBR을 의미 함). 언급할만한 가치가있는 것 : Fedora CD / DVD 이미지는 W7과 달리 부팅 코드와 파티션 테이블이있는 MBR을 가지고 있으므로 HDD / USB 부팅에도 적합합니다.
Tronic

9
이 마더 보드는 USB-CDROM뿐만 아니라 USB-HDD로 부팅 할 수있는 것을 요구 않습니다
TrueDuality

12
이 솔루션에는 MBR 설치 단계가 누락되어 있으며 마술처럼 이미 설치되어 있지 않으면 일반적으로 작동하지 않습니다. @Gunthers의 솔루션이 완성되었습니다.
stolsvik

5

PCambell의 제안은 좋지만 MBR을 지우고 싶을 것입니다.

나는 이것을 시도했고 효과가 있었다 (왜 dd 메소드가 실패했는지 확실하지 않지만 파티션은 ntfs 여야 했습니까?) :

  • 어떤 / dev / device가 USB 플래시 드라이브인지 확인하고 마운트 해제하십시오.
  • MBR을 지우십시오. dd if = / dev / zero of = / dev / device bs = 446 count = 1
  • fdisk / dev / device를 실행하십시오.
  • 모든 파티션을 제거하고 기본 파티션 1 개를 생성하고 부팅 가능하게 만든 다음 변경 사항을 저장하십시오.
  • mkfs.ntfs / dev / device1 (파티션 1)을 실행하십시오.
  • Windows 설치 iso의 전체 내용을 생성 한 파티션에 복사

-4

대신에

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

당신은 다음과 같이 씁니다 root.

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

(마지막에 ADD 1 또는 USB 드라이브가 어디에 있든지간에)


3
아니요, of = sdb는 이전 답변에 따라 정확합니다.
제임스 브로드 헤드

1
이것은 명백한 잘못입니다.
lukad

1
-1 : dd파티션이 아닌 장치에 기록해야 함
ssc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.