สร้าง USB ที่บูตได้เพื่อติดตั้ง Windows XP จาก Linux


19

ฉันมีDell Inspiron Mini 9 ที่ติดตั้งUbuntuเท่านั้น ฉันต้องการติดตั้ง Windows XP ด้วย แต่ฉันไม่มีและไม่ได้รับซีดีไดรฟ์ภายนอกดังนั้นฉันจึงต้องทำการติดตั้ง Windows จาก USB

บทเรียนทั้งหมดที่ฉันพบใช้ Windows เพื่อให้ USB สามารถบูตได้ ฉันจะทำสิ่งเดียวกันจาก Linux ได้อย่างไร


คุณมีสิทธิ์เข้าถึงคอมพิวเตอร์ที่มีไดรฟ์ซีดีหรือไม่
นาธาเนียล

ฉันมีเครื่องอื่นที่ใช้ลินุกซ์พร้อมไดรฟ์ซีดี

คำตอบ:


13

คุณสามารถใช้VirtualBoxและให้การเข้าถึงเครื่องเสมือนกับฮาร์ดดิสก์ไดรฟ์ จากนั้นติดตั้ง Windows XP ในเครื่องเสมือนและสร้างพาร์ติชันใหม่บนฮาร์ดไดรฟ์จริง หลังจากการติดตั้งคุณสามารถรีบูตคอมพิวเตอร์และบูตหน้าต่างได้ตามปกติ

ในการให้ VirtualBox เข้าถึงดิสก์ทั้งหมด (เปลี่ยนเป็นxอักษรที่เหมาะสมตัวอย่างเช่นa):

VBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdx

จากนั้นเลือกฮาร์ดดิสก์ที่มีอยู่แล้วเลือกไฟล์hdd.vmdkในโฟลเดอร์บ้านของคุณ

หากคำสั่งบ่นเกี่ยวกับการอนุญาตที่ขาดหายไปให้เพิ่มตัวคุณเองในกลุ่มdiskด้วยคำสั่งต่อไปนี้จากนั้นเข้าสู่ระบบและออกแล้วลองอีกครั้ง

sudo adduser `whoami` disk
  1. หากคุณมี Linux ติดตั้งอยู่ในคอมพิวเตอร์เป้าหมายคุณสามารถทำได้โดยตรงบนคอมพิวเตอร์เครื่องนั้น แต่ก่อนที่คุณจะรีบูตเป็น Windows ให้เรียกใช้sudo update-grubและsudo grub-install /dev/sdx(เปลี่ยนเป็นxตัวอักษรที่เหมาะสมตัวอย่างเช่นa) เพื่อให้แน่ใจว่าคุณจะยังสามารถบูตได้ ลินุกซ์ เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับฮาร์ดแวร์ที่แตกต่างระหว่างคอมพิวเตอร์ของคุณและสิ่งที่ VirtualBox จำลองใน VM (ซึ่งอาจส่งผลให้BSOD ) คุณยังสามารถสร้างโปรไฟล์ฮาร์ดแวร์ตัวที่สองใน Windows ก่อนที่จะออกจาก VM เมื่อคุณบูตเข้าสู่ Windows ด้วยGRUBโดยตรงให้เลือกโปรไฟล์ฮาร์ดแวร์ตัวที่สอง ในที่สุดคุณสามารถทำให้โปรไฟล์ฮาร์ดแวร์ใหม่นี้เป็นค่าเริ่มต้น

  2. หากคอมพิวเตอร์เป้าหมายสะอาดหมดให้สร้างไดรฟ์ Ubuntu USB ที่สามารถบู๊ตได้ซึ่งคุณจะต้องใส่รูปภาพของซีดีติดตั้ง Windows (ซื้อตามกฎหมาย) จากนั้นบู๊ต Ubuntu บนเครื่องเป้าหมายและทำตามคำแนะนำด้านบน


1
นี่เป็นทางออกที่ยอดเยี่ยมอย่างแน่นอน! ดูเหมือนว่าจะทำงานได้จนถึงตอนนี้ :)
RCE

1
สวัสดีฉันพยายามทำสิ่งนี้บน Ubuntu 12.04 แต่ฉันมีปัญหา เมื่อฉันเขียนVBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdxเป็น x ของฉันฉันได้รับข้อความนี้ VBoxManage: error: Cannot open the raw disk '/dev/sda1': VERR_ACCESS_DENIED VBoxManage: error: The raw disk vmdk file was not createdจากนั้นฉันก็ทำเหมือนรูท แต่ถึงแม้ว่าจะใช้งานได้ชัดฉันก็สามารถเปิด hdd.vmdk ได้เหมือนรูทและทำให้ฉันอึดอัด อย่างไรก็ตามเครื่องเสมือนดูเหมือนจะไม่ทำงาน ฉันได้รับหน้าจอเสมือนเปิดกล่องดำเป็นราก
fénix

1
ตามที่ระบุไว้ในคำตอบ "หากคำสั่งบ่นเกี่ยวกับการอนุญาตที่ขาดหายไปให้เพิ่มตัวคุณเองในดิสก์กลุ่มด้วยคำสั่งต่อไปนี้จากนั้นเข้าสู่ระบบและออกแล้วลองอีกครั้ง" sudo adduser `whoami` disk
Linus Unnebäck

1
ฉันทำข้างต้นและติดตั้งเครื่องเสมือนจริงและรัน winxp ได้ดี แต่เมื่อฉันปิดคอมพิวเตอร์และรีสตาร์ทโลโก้ windows จะปรากฏขึ้นจากนั้นหยุดทันทีทันทีก่อนที่มันจะแสดง BSOD อย่างรวดเร็วและรีบูต
SaultDon

2
น่าเสียดายที่วิธีการนี้ใช้งานไม่ได้เว้นแต่คุณจะโชคดี คุณอาจท้ายด้วยการติดตั้ง Windows ที่ทำงานได้ดีในเครื่องเสมือน แต่ไม่สามารถบูตบนฮาร์ดแวร์
jpalecek

8

ดาวน์โหลด RUFUSLDR ได้จากที่นี่: https://dl.dropboxusercontent.com/u/20170669/RUFUSLDR ดาวน์โหลด ms-sys ที่นี่: http://prdownloads.sourceforge.net/ms-sys/ms-sys-2.3.0.tar gz? download ลากโฟลเดอร์ ms-sys-2.3.0 ไปยังตำแหน่งที่สนับสนุนการตั้งค่าการดำเนินการ (เช่นโฟลเดอร์บ้าน Linux ของคุณน่าจะ) cd เทอร์มินัลที่นั่นพิมพ์ "make" จากนั้น "sudo make install" ง่ายจริง

ฉันเห็นอกเห็นใจกับคุณ ฉันได้ลองแบบฝึกหัดเกี่ยวกับวิธีสร้างจาก Windows ไดรฟ์ USB ที่สามารถบู๊ตได้ในโปรแกรมติดตั้ง WinXP diskpart one, WinToFlash one และยูทิลิตีฟอร์แมต HP USB ล้มเหลวทั้งหมดฉัน

รูฟัสใช้งานได้จริง แต่มันเป็นยูทิลิตี้สำหรับ Windows เท่านั้น คุณสามารถติดตั้ง VirtualBox, ติดตั้ง Windows ภายใน VirtualBox, ติดตั้ง Rufus ใน VM, แชร์ไดรฟ์ USB ไปยัง VM, และให้ Rufus ทำให้ไดรฟ์ USB สามารถบูตได้ในตัวติดตั้ง Windows XP

Rufus ในปัจจุบันไม่รองรับการติดตั้ง USB WinXP ที่สามารถบู๊ตได้โดยใช้ไฟล์ติดตั้งหลวม มันต้องดู iso ดังนั้นคุณจึงมี VirtualBox ติดตั้ง iso เพื่อติดตั้ง XP ลงใน VM แต่นั่นแสดงเป็นไฟล์หลวม (จะไม่เห็น iso) ดังนั้นเพื่อให้รูฟัสเห็นไฟล์ iso เองให้แชร์ไดเร็กทอรีบนเครื่องโฮสต์ของคุณที่เก็บ iso ไว้ใน VM จากนั้นชี้รูฟัสไปยังตำแหน่งที่ไฟล์ iso อยู่ในไดรฟ์เครือข่ายของ VM (Z: \ หรืออะไรก็ตาม)

BTW คุณอาจเพียงแค่คัดลอกรูปภาพฟลอปปี้ FreeDOS ไปยังไดรฟ์คัดลอกไฟล์จาก iso เช่นกันและใช้ memdisk เพื่อบู๊ตลงในภาพฟลอปปี้ จาก FreeDOS ให้เรียกใช้ i386 \ winnt.exe ข้อเสียคือ (ยกเว้นกรณีที่คุณพบไดรเวอร์ DOS NTFS หรือไม่) คุณจะสามารถติดตั้ง Windows ในไดรฟ์ข้อมูล FAT32 ไม่ใช่ NTFS

คุณอาจพบว่ากระบวนการรูฟัสช้าอย่างเจ็บปวดเนื่องจากอยู่ใน VM (ไม่เข้าใจว่าทำไมฉันอาจเป็นใบ้เกี่ยวกับวิธีการตั้งค่า) สำหรับฉันเป็นการส่วนตัวบนแล็ปท็อปของฉันมันใช้เวลาหนึ่งชั่วโมง 5 นาทีและ 40 วินาทีฉันเชื่อว่ามันเป็น ฉันจะบอกวิธีการทำโดยไม่ต้องรูฟัสใน Linux เราจะเลียนแบบรูฟัส แต่ก่อนอื่นในกรณีที่คุณตัดสินใจใช้รูฟัสจาก VM แทนให้ระวังว่าลีนุกซ์จะไม่สามารถมองเห็นพาร์ติชั่นได้หลังจากรูฟัสเสร็จแล้ว:

รูฟัสไม่เพียง แต่ฟอร์แมตพาร์ติชัน แต่จะทำการ MBR ใหม่ (รวมถึงตารางพาร์ติชัน) ดังนั้นควรบันทึกสิ่งใดก็ตามที่ปิดไดรฟ์หัวแม่มือก่อน

หมายเหตุ:รูฟัสวางเคล็ดลับ MBR ที่เมื่อเรียกใช้งานโดยการแลกเปลี่ยน BIOS ไดรฟ์ BIOS สองตัวแรก (0x80 กลายเป็น 0x81 และจับกลับกัน) นอกจากนี้ยังวางรหัส BIOS ไว้ใน MBR เคล็ดลับนี้เพื่อให้ไดรฟ์เริ่มต้นเป็น 0x81 (ไดรฟ์ที่สอง) ทำไมฉันจึงบอกคุณนี้: เคล็ดลับ MBR ทำให้ Linux (และ Grub2 v2.00) ไม่สามารถอ่านตารางพาร์ติชันได้ Windows จะใช้งานได้ดี (ให้อักษรระบุไดรฟ์และทั้งหมด) และไดรฟ์จะสามารถบู๊ตได้ แต่ลีนุกซ์จะไม่เห็นพาร์ติชั่นดังนั้นจึงไม่สามารถเมานต์ได้ ไม่มีปัญหา. บันทึก MBR เป็นไฟล์:

sudo dd if=/dev/sdX of=~/Desktop/rufus_trick_mbr count=1 bs=512

ตอนนี้ใช้ fdisk เพื่อให้ MBR ใหม่ คุณไม่ได้แตะพาร์ติชันด้วยตัวเองคุณเพิ่งจะให้ MBR ใหม่ ไม่มีอะไรใน fdisk จนกว่าคุณจะกด "w"

sudo fdisk /dev/sdX

p //Print partition table. fdisk, unlike the kernel, CAN make sense of the partition table as-is.

You'll probably see the partition start on sector 2048 and go to the end.

o  //Tells fdisk to make a new partition table

n //create new partition. By defualt, fdisk should also make the partition start at sector 2048 and go to the end. Make sure the partition starts where it used to and ends where it used to.

select primary

t //change partition type id

7 //for ntfs

p //Make sure everything is right. And no, don't worry about the boot flag.

w //when you're sure. Remember, we saved the old mbr and can undo any mess-ups made here with dd.

เราสามารถสร้าง mess-ups ใหม่ด้วย dd:

แฮมมอนด์ -“ ไม่ต้องกังวลฉันไม่ได้ทำผิดพลาดอีกครั้ง” มัลคอล์ม -“ ไม่ไม่คุณกำลังทำสิ่งใหม่ทั้งหมด”

-Jurassic Park II, The Lost World

ถอดและเสียบไดรฟ์หัวแม่มือ หากไม่มีอะไรอื่น / dev / sdXY ควรมีอยู่อย่างน้อยตอนนี้ (ก่อนเท่านั้น / dev / sdX มีอยู่ - ไม่มี "Y") หากต้องการติดตั้งควรติดตั้ง ntfs-3g หากติดตั้งแล้วให้ดูว่าติดตั้งแล้วหรือไม่ (ควรแสดงบนเดสก์ท็อปหรือในบานหน้าต่างด้านซ้ายของเบราว์เซอร์ไฟล์ถ้ามี) ถ้าไม่ติดมันเอง คุณสามารถลองติดตั้งด้วยเบราว์เซอร์ไฟล์ก่อน นี่คือวิธีการติดตั้งด้วยตนเอง:

sudo mount -t ntfs-3g /dev/sdXY [mount point]

ทำสิ่งที่คุณต้องการจะทำกับมันใน Linux

หากคุณต้องการให้ใส่ rufus_trick_mbr กลับไปที่:

sudo dd if=~/Desktop/rufus_trick_mbr of=/dev/sdX bs=512 count=1 //No "Y"! Just /dev/sdX!

แต่คุณไม่จำเป็นต้องใส่เคล็ดลับ MBR อีกครั้ง คุณสามารถใช้คำสั่ง ntldr ของ Grub2 เพื่อโหลด / BOOTMGR แทน (อาจจะต้องทำ "insmod ntldr" ก่อนเพื่อแทรกโมดูล ntldr)

นี่คือสิ่งที่เกิดขึ้น:

รูฟัสวางเคล็ดลับ MBR ด้วยหนึ่งรายการพาร์ติชันตารางรูปแบบที่พาร์ติชันเป็น NTFS วางสิ่งต่าง ๆ ใน bootsector ของพาร์ติชันที่เฉพาะ bootloaders ลักษณะ ntldr ดูแลคัดลอกไฟล์ออกจาก iso ไปยังพาร์ติชันคัดลอก NTDETECT.COM จาก โฟลเดอร์ i386 และวางไว้ที่ระดับรากคัดลอก txtsetup.sif จากโฟลเดอร์ i386 วางไว้ที่ระดับรากและเพิ่มบรรทัดซึ่ง github, c0m / pbatard / rufus / wiki / Target-Supported ไม่ได้กล่าวถึงดังนั้น ขอบคุณ "openssl md5" และ cmp สำหรับการชี้ให้ฉันเห็น

กลองม้วน : และคัดลอก SETUPLDR.BIN จากโฟลเดอร์ i386 ไปที่ระดับรากเปลี่ยนชื่อเป็น BOOTMGR และแพทช์ไบนารีที่ ใช่นั่นคือเคล็ดลับ SETUPLDR.BIN เมื่อทำการบูทจากซีดีตรวจพบว่ามันถูกบูทจากซีดีและมองหาสิ่งที่อยู่ในโฟลเดอร์ i386 หากบูตจากฮาร์ดไดรฟ์จะตรวจพบว่าบูตจากฮาร์ดไดรฟ์แล้วค้นหาโฟลเดอร์ minint แทนและหากพบจะมองหาโฟลเดอร์ $ WIN_NT $ ~ BT เพื่อเริ่มขั้นตอนที่สองของการติดตั้ง (หลังจากรีสตาร์ทและ เมื่อคุณบูตเข้าสู่ฮาร์ดไดรฟ์เป้าหมาย) ดังนั้นคุณไม่สามารถแม้แต่เปลี่ยนชื่อ "i386" เป็น "minint" คุณต้องแก้ไข SETUPLDR.BIN เพื่อดูในโฟลเดอร์ i386 แม้เมื่อบู๊ตฮาร์ดไดรฟ์ (เช่นไดรฟ์ USB)

ฉันคิดว่ามันเป็นชื่อเรียกผิดของรูฟัสที่จะเรียกเลขฐานสอง "BOOTMGR" ที่แก้ไขแล้ว นั่นคือสิ่งที่ Vista และ 7 (และ 8 ใช้) ไม่ใช่ XP BOOTMGR ไม่แม้แต่จะค้นหาไฟล์ boot.ini เช่น NTLDR (ซึ่ง SETUPLDR เป็นรุ่นที่ปรับเปลี่ยนแล้ว) ก็ทำเช่นนั้น ดังนั้นฉันจึงเปลี่ยนชื่อเป็น "RUFUSLDR" และวางเพื่อดาวน์โหลด นอกจากนี้คุณยังสามารถบอกได้นอกเหนือจาก BOOTMGR จริง ๆ ที่คุณอาจพบเจอ

รูฟัสบังคับให้คุณฟอร์แมตไดรฟ์เป็น NTFS หากใช้ iso ตัวติดตั้ง Windows ฉันเชื่อว่านี่เป็นเพราะภาพตัวอย่างนักพัฒนา x64 Windows 8 ที่มีไฟล์> 4GB ซึ่ง FAT32 ไม่สามารถรองรับได้ แต่นั่นไม่ได้ใช้ที่นี่ เราไม่มีไฟล์ใด ๆ ใกล้กับ 4GB คุณอาจใช้ FAT32 และทำได้ดี

มาเลียนแบบรูฟัสจากลีนุกซ์ (หรือยูนิกซ์ที่ใกล้เคียงกัน, ฉันเดา):

  1. ตรวจสอบให้แน่ใจว่าไดรฟ์เป็นแบบ MBR fdisk จะส่งคำเตือนหากเป็น GPT และยังให้ตัวเลือกแก่คุณเพื่อให้เป็นแบบ MBR-schemed (ตัวเลือก "o") ทำลายน้อยกว่า gdisk จะช่วยให้คุณแปลงไดรฟ์ GPT-schemed ของคุณไปเป็น MBR-schemed drive ถ้าคุณมีพาร์ติชั่น 4 ตัวหรือน้อยกว่า Gdisk ยังช่วยให้คุณสร้างไดรฟ์เป็นดิสก์แบบไฮบริด MBR / GPT ซึ่งคุณสามารถเลือกได้ถึง 3 พาร์ติชั่นที่สามารถมองเห็นได้โดย GPT-unaware แม้ว่าคุณจะใช้ fdisk ตราบใดที่รายการตารางพาร์ติชันใหม่ยังคงเริ่มต้นและหยุดในที่เดียวกันคุณจะไม่ทำให้พาร์ติชันของคุณหลวม เพียงตรวจสอบให้แน่ใจว่าได้วาง GPT รองลงในส่วนท้ายของดิสก์

  2. ตรวจสอบให้แน่ใจว่าพาร์ติชันถูกฟอร์แมตเป็น FAT32 หรือ NTFS โปรดจำไว้ว่า FAT32 นั้นใช้งานข้ามแพลตฟอร์มได้ง่ายขึ้น หากมีการจัดรูปแบบเป็น FAT32 หรือ ntfs คุณไม่จำเป็นต้องจัดรูปแบบ:

    sudo blkid / dev / sdXY [จะพูดระบบไฟล์ที่นี่พร้อมกับ UUID, ป้ายกำกับ, ฯลฯ ]

หากไม่ใช่ FAT32 หรือ NTFS ให้เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:

sudo mkdosfs -F 32 -n [insert volume label (name) here] /dev/sdXY

sudo mkntfs -L [insert volume label here] /dev/sdXY

3 ใช้สิ่งบูท bootsector ที่ดอส / วินโดวส์นั้นช่างประณีตเกี่ยวกับ:

sudo ms-sys -w /dev/sdXY

* เกี่ยวกับเรื่องนี้ - "-w" หมายถึง "เขียน" - เพียงแค่เขียน ตรงข้ามกับการระบุว่าจะเขียนอะไร ดังนั้น "-w" จึงเป็นโหมดอัตโนมัติของ ms-sys: มันเป็นตัวกำหนดชนิดของข้อมูล bootsector ที่ดีที่สุดในการเขียนสำหรับสถานการณ์ ฉันรู้สึกประหลาดใจที่จะหารถยนต์ที่ถูกต้องสำหรับพาร์ทิชัน FAT32, ฉันต้อง MS-SYS ของ FAT32 DOS bootsector ไม่ MS-SYS ของ FAT32 NT bootsector ซึ่งผมคิดว่าฉันจะต้องโหลด derivitive ของ _NT_LDR (NT รถตักดิน) A (SETUPLDR BIN เป็นเวอร์ชันที่แก้ไขของ NTLDR และ RUFUSLDR เป็น SETUPLDR.BIN ที่แก้ไขแล้ว)

4 สำหรับการวัดที่ดีให้เขียนรูปทรงเรขาคณิตลงในพาร์ติชันด้วย สิ่งนี้ไม่เปลี่ยนรูปทรงเรขาคณิตของดิสก์มันเพิ่งทิ้งโน้ตเกี่ยวกับรูปทรงเรขาคณิตสำหรับสิ่งที่ขี้เกียจเกินไปที่จะค้นพบเกี่ยวกับรูปทรงเรขาคณิตของตัวเอง:

sudo ms-sys -p /dev/sdXY

* หมายเหตุ: ขั้นตอนที่ 4 ใช้ไม่ได้กับ NTFS * หมายเหตุอื่น: ตรวจสอบให้แน่ใจว่าเวอร์ชันเคอร์เนล linux ของคุณคือ> 2.6 เคอร์เนล 2.6 มีข้อผิดพลาดที่รายงานจำนวนหัวที่ไม่ถูกต้อง (เป็นรูปทรงเรขาคณิต) ดังนั้นตัวเลือก "-p" สามารถใส่ข้อมูลผิดในเคอร์เนล 2.6 ตัวเลือก "-H" ซึ่งช่วยให้ผู้ใช้สามารถระบุจำนวนหัวที่จะบันทึกด้วยตนเองคือการแก้ไข แต่จริงๆแล้วเพียงแค่อัพเกรดเคอร์เนลของคุณแทน หากคุณใช้งาน 2.6 แสดงว่าคุณค้างชำระเกินกำหนด หากต้องการบอกเวอร์ชันเคอร์เนลของคุณให้ทำ:

uname -r

5 คัดลอกไฟล์จาก iso, โฟลเดอร์, อะไรก็ตาม ไอโซ distros จำนวนมากเมื่อคลิกสองครั้งหรืออย่างน้อยก็มีตัวเลือกในการเปิดพร้อมเมานท์เก็บถาวรภายใต้คลิกขวา> เปิดด้วย หากไม่ใช่ในกรณีของคุณให้ทำสิ่งนี้:

sudo mount -o loop (path to iso) (path to desired mount point)

6 วางไฟล์ SETUPLDR.BIN (RUFUSLDR) ที่แก้ไขแล้วบนระดับรูท

7 คัดลอก NTDETECT.COM จาก i386 ไปที่ระดับรูท

8 คัดลอก txtsetup.sif จาก i386 ไปที่ระดับรูท

9 เปิดสำเนาใหม่ของ txtsetup.sif และ Ctrl + F สำหรับ "[SetupData]" ภายใต้ส่วนหัวให้วางบรรทัดนี้:

SetupSourceDevice = "\device\harddisk1\partition1"

10 อาจติดตั้ง bootloader ที่สามารถโหลด bootloaders สไตล์ NTLDR ไปยังไดรฟ์หรือไปยังไดรฟ์อื่นที่คุณจะใช้ในการบูตไดรฟ์นี้หรือใช้ bootloader ที่มีอยู่ หากคุณติดตั้ง Grub2 ไว้ในฮาร์ดไดรฟ์เพื่อบูต Ubuntu คุณสามารถกด "c" เมื่อคุณเห็นเมนูเพื่อเข้าสู่ commandline Grub หากคุณมี Syslinux แทนคุณสามารถใช้มันได้เช่นกัน ฉันจะแค่ติดกับ Grub2 สำหรับการกวดวิชา

หากต้องการติดตั้ง Grub2 ลงในดิสก์ (ซึ่งคุณอาจไม่จำเป็นต้องทำหากใช้ bootloader ที่มีอยู่ในฮาร์ดไดรฟ์ของคุณ):

sudo grub-install --boot-directory=[mount point of disk, not iso] [/dev/sdxy]

11a สร้างรายการ grub.cfg หรือดำเนินการด้วยตนเองดังต่อไปนี้:

grub> insmod ntldr //Inserts (loads) the Grub2 module used for loading NTLDR-style bootloaders.
grub> set root=(hdx,msdosy) //Replace x and y as appropriate. Sets the current directory to the target partition. Probably not needed if you booted off the drive you put the WinXP installer files on, but we always do this. Use "ls" to list all drives and partitions. If you only have one MBR-schemed disk with only one (or however many you made) partition(s), you'll be able to pick out which is your thumb drive. If not, try one and do "ls /". It will list the files on the root level of that partition. That should be a dead-giveaway. Notice that "ls" (without slash) lists drives and partitions, and "ls /" (with slash) lists the files on the root level of the partition that is the current working directory.
grub> ntldr /RUFUSLDR //Tells it to load RUFUSLDR.
grub> boot //That's the "go button".

11b ในฐานะที่เป็นรายการ grub.cfg นั่นจะมีลักษณะเช่นนี้ (อย่าใส่เครื่องหมายวงเล็บนี่คือ Grub ไม่ใช่วิทยาลัย !!):

menuentry "Windows XP Installer" {
  insmod ntldr
  search --no-floppy --fs-uuid --set=root [insert filesystem's UUID here, obtaind by "sudo blkid /dev/sdXY"]
  ntldr /RUFUSLDR
}

// โปรดทราบว่าข้างต้นเป็นวิธีที่แน่นอนกว่ามากในการตั้งค่าไดเรกทอรีการทำงานปัจจุบันของ Grub โปรดทราบด้วยว่า "บูต" มีความหมายสำหรับรายการไฟล์กำหนดค่า

// โปรดทราบว่าถึงแม้ว่ามันจะเป็นธรรมเนียมที่จะต้องมีบรรทัด "drivemap -s (hd0) $ {root}" สำหรับการบูท Windows (ทำให้ไดรฟ์ Window เป็นไดรฟ์ BIOS ตัวแรก) แต่การติดตั้ง USB Windows XP ของฉันทำให้มัน รีบูตเมื่อพยายามบูต bootloader สไตล์ ntldr หากสิ่งต่าง ๆ ไม่ทำงานและคุณแน่ใจว่าคุณทำตามขั้นตอนทั้งหมดแล้วให้ลอง "drivemap -s (hd0) $ {root}"

// ระวังถ้าคุณมีไดรฟ์ USB มากกว่าหนึ่งตัวในเวลาบูท ระบบของคุณจะบู๊ตไดรฟ์ USB ที่สามารถบู๊ตได้และโดดเด่นที่สุดเมื่อถูกบอกให้บู๊ต USB คุณสามารถคิดได้อย่างเป็นระบบว่าพอร์ต USB ใดที่โดดเด่นด้วยไดรฟ์ USB ที่สามารถบู๊ตได้ สำหรับฉันฉันไม่ต้องลองชุดต่าง ๆ เพราะพอร์ต USB ของฉันถูกจัดเรียงในคอลัมน์และคอลัมน์ทั้งหมดโดดเด่นในคอลัมน์อื่น ๆ ภายในคอลัมน์หนึ่งคอลัมน์ที่สูงกว่านั้นโดดเด่น

// โปรดทราบว่าหากคุณกำลังบูตเครื่องติดตั้ง Windows XP USB จาก Grub2 บนไดรฟ์อื่น Grub2 จะเห็นไดรฟ์ USB ที่โดดเด่นที่สุดเท่านั้น (อย่างน้อยในระบบของฉัน) ดังนั้นตรวจสอบให้แน่ใจว่าตัวติดตั้ง WinXP USB ของคุณอยู่ในสล็อตที่ใช้งานได้ดีที่สุด (หรือเพียงแค่สลับสองตัวหากคุณมีไดรฟ์ USB สองตัวและ Grub2 จะเห็นไดรฟ์ที่ไม่ใช่ WinXP-installer) แน่นอนว่านี่ไม่ใช่ปัญหาหากเสียบไดรฟ์ USB เพียงอันเดียว

// ถ้าเพียงแค่รีบูตตรวจสอบให้แน่ใจว่าคุณได้ทำ "sudo ms-sys -w / dev / sdXY" และถ้า FAT32, "sudo ms-sys -p / dev / sdXY" และคัดลอก NTDETECT.COM จาก i386 ไปที่ ระดับราก

// ถ้ามันบอกว่าหาอะไรไม่เจอคุณอาจไม่ได้ใช้ bootloader ที่ดัดแปลงแล้ว ตรวจสอบให้แน่ใจว่าคุณกำลังใช้สิ่งที่แก้ไข (จะมี md5 แตกต่างจาก i386 / SETUPLDR.BIN.) ตรวจสอบให้แน่ใจว่า txtsetup.sif และ NTDETECT.COM อยู่ในระดับราก

// ถ้ามีข้อความว่าให้ใส่แผ่นซีดี Windows XP SP3 ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มบรรทัดนั้นลงใน txtsetup.sif และไฟล์ CD Ident ของคุณนั้นดี (WIN51, WIN51IP และอื่น ๆ ) เพียงลบไฟล์ CD Indent และคัดลอกกลับมาใหม่หากมีข้อสงสัย

// ถ้ามันบอกว่าคุณต้องใส่แผ่นดิสก์เพื่อพิสูจน์ว่าคุณมีคุณสมบัติสำหรับการติดตั้งการอัพเกรดจะมีดิสก์ GPT ใส่ไว้หรือไม่? บางทีนี่อาจเป็นสาเหตุของปัญหา ถอดปลั๊กดิสก์ GPT-schemed หรือแปลงเป็น MBR ใน Linux (ในขณะที่ปิดคอมพิวเตอร์ให้ถอดปลั๊กลองอีกครั้งไม่ใช่แค่งัด)

// BTW หากต้องการติดตั้งลงในไดรฟ์ USB คุณจะต้องทำการแฮ็คที่ ngine.de/article/id/8 ใช่เป็นไปได้ที่จะติดตั้ง Windows XP จาก USB เป็น USB

สนุก,

เจค XD


1
หลังจากผ่านบทเรียนจำนวนมากมาถึงวิธีการของคุณและดูเหมือนว่าน่าเชื่อถือพอสำหรับฉันหากวิธีการของคุณล้มเหลวฉันจะลองบูต tftp แบบไม่ต้องใส่ข้อมูล (ภายหลังสำหรับการทดลอง) ในปัจจุบันด้วยวิธีการของคุณฉันเริ่ม NTFS signature is missing. Failed to mount '/dev/sdb': Invalid argument The device '/dev/sdb' doesn't seem to have a valid NTFS.ฉันใช้เครื่อง Win 7 เป็นครั้งแรก รูฟัสและชี้ไปที่ iso XP และจัดรูปแบบ USB กับ ISO และเสียบ USB กับเครื่อง Linux และตอนนี้เริ่มต้นด้วยวิธีการของคุณ sudo เมา ntfs-3g / dev / sdb1 / สื่อ / usb ที่ฉันได้รับข้อผิดพลาด 2 ขั้นตอนแรกของ dd ไปได้
สมาชิกที่ลงทะเบียน

นี่คือภาพรวมของ fdisk sdrv.ms/15UUtRfและภาพหน้าจออื่นsdrv.ms/15UUuVkของ fdisk ฉันคิดว่าฉันได้ติดตามสิ่งต่าง ๆ อย่างถูกต้องแจ้งให้เราทราบหากคุณสังเกตเห็นปัญหาใด ๆ
ผู้ใช้ที่ลงทะเบียน

1
ฉันไม่สามารถใช้งานได้กับ Linux
kenn

1
นี่เป็นคำตอบที่ยอดเยี่ยมที่ในที่สุดก็ให้เบาะแสที่ถูกต้องกับฉัน - ส่วนนี้: BTW คุณยังสามารถคัดลอกฟลอปปี้ภาพ FreeDOS ไปยังไดรฟ์คัดลอกไฟล์จาก iso ได้เช่นกันและใช้ memdisk เพื่อบู๊ตลงในฟลอปปี้ ภาพ. จาก FreeDOS ให้เรียกใช้ i386 \ winnt.exe คุณไม่จำเป็นต้องใช้ memdisk การติดตั้ง FreeDOS ไปยังแฟลช FAT32 นั้นค่อนข้างง่าย (สามารถทำได้ด้วย qemu หรือมีภาพ usb อยู่รอบ ๆ ) นอกจากนี้คุณสามารถติดตั้ง Windows เป็น NTFS ด้วยวิธีนี้การตั้งค่า windows จะจัดการกับ NTFS ด้วยตัวเอง
jpalecek

1
@jpalecek คุณสามารถให้คำตอบแบบเต็มจากความคิดเห็นของคุณ? คำแนะนำเกี่ยวกับวิธีทำให้สิ่งต่าง ๆ ใช้งานได้จริงตัวอย่างเช่น 1. เบิร์น FreeDOS เป็น USB 2. คัดลอกไฟล์จาก ISO ไปยังพาร์ติชั่น usb 3. ???
VasyaNovikov

3

ปรากฎว่า Windows XP จริง ๆ แล้วกำหนดค่าตัวเองสำหรับการกำหนดค่าฮาร์ดแวร์เฉพาะในช่วงแรกของการติดตั้ง

ดังนั้นหากวิธีการใช้ VirtualBox, QEMU ฯลฯ ร่วมกับฮาร์ดไดรฟ์จริงของคุณคือการทำงานคุณต้องสร้างโปรไฟล์ฮาร์ดแวร์ตัวที่สองขึ้นมาจริงๆ ฉันหวังว่าคุณจะสามารถหลีกเลี่ยงสิ่งนี้ได้โดยการปิด VM ลงก่อนที่จะทำการรีบูตในขั้นตอนที่สองและแทนที่จะบูตเครื่องจริงของคุณลงไปและให้มันกำหนดค่าสำหรับฮาร์ดแวร์จริงของคุณ แต่มันกำหนดค่าสำหรับฮาร์ดแวร์ในระยะแรกไม่ใช่ระยะที่สอง

ดังนั้นฉันขอแนะนำให้เลียนแบบรูฟัส เพียงแค่คัดลอกไฟล์และทำการปรับแต่งเล็กน้อย ดูโพสต์ที่มีอยู่ ไม่จำเป็นต้องจัดการกับโปรไฟล์ฮาร์ดแวร์ที่สอง แม้ว่าคุณจะสร้างโปรไฟล์ฮาร์ดแวร์ตัวที่สองคุณจะบูตเข้าสู่ Windows เพื่อติดตั้งไดรเวอร์สำหรับฮาร์ดแวร์ตัวจริงของคุณในโปรไฟล์ที่สองได้อย่างไร และถ้าคุณหาวิธีการออกใบอนุญาตจะไม่หยุดคุณ (ดูที่ฮาร์ดแวร์)?


1

มีลักษณะที่UNetbootin สิ่งนี้ควรทำเคล็ดลับ


8
ฉันไม่สามารถใช้งานได้กับ Windows XP ไม่สามารถเปิดตัวติดตั้ง windows ได้

2
คุณสามารถโพสต์ข้อมูลอ้างอิง (เป็นทางการหรืออย่างอื่น) ว่าเป็นไปได้กับ Windows XP หรือไม่ คุณหรือคนที่คุณรู้จักทำงานนี้หรือไม่? ฉันลองแล้วสองสามครั้งและล้มเหลวฉันอยากรู้ว่ามันเป็นไปได้ก่อนที่ฉันจะลองอีกครั้ง
Annan

1

มันเป็นเพียงเสียงลมตะโกน แต่ ...

ลองใช้ VirtualBox ได้อย่างไร คุณสามารถดาวน์โหลดไฟล์ ISO Windows XP ติดตั้งและติดตั้งเครื่องเสมือน ฉันคิดว่าคุณสามารถเข้าถึงไดรฟ์ USB ที่นั่นด้วยดังนั้นคุณสามารถสร้างไดรฟ์ USB ได้จากที่นั่น


น่าเสียดายที่ไม่ได้ผลจริงๆ - ดูคำตอบอื่น ๆ
jpalecek

1

เนื่องจากคุณไม่ได้รับUNetbootinให้ถามเพื่อนกับคอมพิวเตอร์ Windows (พวกเขาไม่ค่อยมีปัญหาคุณรู้หรือไม่ว่า :) เพื่อเตรียมอุปกรณ์ USB กับWinToFlashให้คุณ


ฉันได้ลองแล้วและสิ่งนี้ล้มเหลวได้รับ BSOD ในบางช่วงเวลา
ผู้ใช้ที่ลงทะเบียน

หมายเหตุ: WinToFlash เป็นกรรมสิทธิ์ (ไม่มีแหล่งที่มาพวกเขามีสิ่งต่างๆเช่นรุ่น "Professional" ฯลฯ )
VasyaNovikov

0

เป็นไปได้ที่จะติดตั้ง XP 32- บิตจาก DOS คุณเพียงแค่ต้องสร้างแฟลชไดรฟ์ DOS ที่สามารถบู๊ตได้หรือฮาร์ดไดรฟ์อื่น ๆ คัดลอกโฟลเดอร์ i386 ลงไปแล้ว:

C:> cd i386
C: \ i386> winnt / b
ตอนนี้การติดตั้ง Windows จะโหลดจากไดรฟ์ที่สามารถบูตได้ของ FAT16 / FAT32 DOS!

หากคุณบูทจากฮาร์ดไดรฟ์ตัวเดียวกับที่คุณติดตั้งคุณอาจใช้ตัวเลือกในการแปลงเป็น NTFS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.