การทำ dual/multi boot windows-linux แบบเซียน
Posted in:
เป็นเรื่องเกี่ยวกับการโยก grub ครับ
หากท่านประสบปัญหา ลง windows ก่อน linux แล้วพอลบ windows ทิ้ง แล้วลงใหม่
ท่านจะเข้า Linux ไม่ได้ ใช่หรือไหม
หรือลบ Linux แต่ grub ของมันก็ยังค้างคาให้เราเห็น (นั่นเพราะเนื่องจากดันไปทำ boot loader ที่ MBR)
วิธีแก้ อาจจะมีหลายทาง แต่ขอเสนอ ทางที่เราจะไม่ต้อง รีโคเวอรี่ ตรงส่วนนั้นให้ยุ่งยาก (หรือทำให้มันยุ่งกว่าเดิมกันเนี่ย)
สมมุติ หากท่านมี partition 1 ที่เป็นวินโดวส์ และ partition2 เพิ่งลง linux
ในหน้าขั้นตอนสุดท้ายในตอนลง ubuntu (หน้าที่จะให้กดปุ่ม install แต่อย่าเพิ่งกดนะ)

1 กดปุ่ม advance ที่ถามเราจะทำ boot manager ไว้ที่ไหน ซึ่ง default มันคือ (hda0)
2 ให้เราเพิ่ม ไปเป็น (hda0,1)
ไอ่ 1 นี่มายังไง ก็คือ เอามาจาก การที่ hda2 เป็น partition ของ linux ดูให้ดีละกัน ก็ลองเปลี่ยนดูนะครับ ถ้าจะลง grub stage ของ linux ไว้ที่อื่น
ถ้า linux อยู่ partition ไหนให้ใส่เลข ดังนี้
hda = 0
hda2 = 1
hda3 = 2
hda4 = 3
ประมาณนี้
ขั้นตอนนี้จะทำให้grubไม่ทับของเก่าใน mbr (ส่วนใหญ่คือ windows นั้นแหล่ะ เพราะมักจะลง windows ไว้ partition แรกกัน)
พอ install ubuntu เสร็จ ก็อย่าเพิ่ง restart ให้เราไปทำไฟล์ที่เอาไว้บูทก่อนโดยการ Diskdump 512k แรก จาก
partition ที่ ubuntu เราอยู่ก่อน
ด้วยคำสั่ง dd (sudo ด้วยนะ ถ้าเป็น ubuntu)
1 เปิด terminal
2 dd if=/dev/hda2 of=/media/hda1/ubuntu.bin bs=512 count=1
อธิบาย ก็คือ diskdump input file จาก hda2 (ทำไมต้อง2 ก็ต้องขึ้นกับ partition ที่ linux ลง)
ไป เชฟเข้า drive ที่ windows อยุ่(จะเอาไปไว้ที่ไหนก็แล้วแต่) ด้วย 512 byte แรก เท่านั้น count ข้างหลังเป็นตัวคูณ ถ้า 2 ก็เปง 512*2 ไปซะ (ซึ่งเราไม่ทำ - -" )
**ถ้าเผลอ restart ตอน install ไปแล้ว มันจะเข้า windows ไปซะงั้น ไม่มีไรเกิดขึ้น
หรือ dd ผิด partition มันก็จะขึ้น grub เจ๊ง
เราก็กลับ มาทำใหม่ได้ โดยการใช้แผ่น linux ที่สามารถรันด้วย CD ได้ ซึ่งก็คือ แผ่น ubuntu เองหรือ linux slax ไรทำนองนี้แล้ว dd ใหม่ซะ หรือจะมีโปรแกรมช่วยบน windows ก็ตามสะดวก
เอาหล่ะ!!
เมื่อมี ไฟล์ที่ dump มาแล้ว
1 ก็บูทเข้าวินโดวส์
2 แก้ไข ไฟล์ boot.ini ให้เพิ่มบรรทัดนี้ไป
C:\ubuntu.bin="Ubuntu 7.10"
ถ้าใครก้อปไฟล์ที่ dump มาไปวางไว้ที่ไหน ก็ใส่ path ให้ถูกละกัน
เท่า นี้เราก็จะได้ boot manager ของ windows ที่แก้ง่ายๆ มาใช้งาน โดยที่ จะลบOSตัวรอง อะไรไปก็ไม่มีผลกะ ส่วน512 byte นี้ หรือจะลบ windows ก็เก็บไฟล์ ubuntu.bin นี้ไว้ทำกะ boot.ini ใหม่
เราอยากจะไม่บูท ubuntu เราก็ไปลบบรรทัด ใน boot.ini ซะ กลายเป็น OS ลึกลับไม่มีใครเห็น (จนตัวเองลืม) หุหุ
เขียนทำไมยาว ทำก็ยาก ถามประโยชน์ มันคืออะไร
ก็คือ หากท่านลง 3 OS หล่ะ 4 OS หล่ะ จะลงยังไง อันไหนทับอันไหนแล้วจะเสีย อันไหนจะกลายเป็น บูทไม่ได้ไปซะ
(แล้วจะบ้าลงอะไรหลายอัน ตอบ บางทีมันก็ไม่แน่เสมอไปนะพี่น้อง vmware อาจไม่ใช่ทางออก)
สิ่งสำคัญ
1 วิธีนี้ใช้กับ logical partition ไม่ได้นะคับ ต้องเป็น primary เลย ระหว่าง partition ที่จะลง OS
2 ถ้าทับ MBR ไปแล้ว ก็อดนะครับ
3 ไม่ขออธิบาย เรื่องของการ mount partition นะครับ ตรงการ diskdump ดูดีๆครับ
link ที่ทำวิธีเดียวกัน
English : http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html



ผมชอบบทคว
ผมชอบบทความนี้มากครับเพราะผมคิดว่าหลายๆ คนที่หันมาใช้ ubuntu คงเคยเจอปัญหา
เรื่อง boot loader มาบ้างครับวิธีที่คุณ GreenApple เสนอมาก็น่าสนใจดีครับ
ปกติผมเห็นคำสั่ง dd ตอนท่ี่ใช้แบกอัพไฟล์ แต่ผมก็ไม่เข้าใจพารามิเตอร์และการใช้
งานเท่าไรมาอ่านบทความนี้ทำให้ผมรู้เพิ่มขึ้ยมาบ้าง ผมอยากให้คุณ GreenApple
มาเขียนบทความเกี่ยวกับคำสั่ง dd บ้างครับผมว่ามันน่าสนใจดีนะครับ
หัวข้อนี้มาช้าไปนิด
แหม.....มาหลังจากที่ผมเพิ่งจัดการปัญหาดังกล่าวด้วยวิธีหักดิบ (Format HDD) ไปหมาดๆ คือไปหาวิธีใน pantip tech-exhange มาดันมีปัญหาว่าผมลง windows ที่ HDD ลูกนึง ส่วน Ubuntu ไปลงอีก HDD นึงซึ่งต่างจากตัวอย่างที่เค้าให้มานั่นคืออยู่ใน HDD เดียวกันแต่คนละ partition วิธีนั้นเลยไม่ work เลยตัดสินใจ FormatHDD ตัวที่ลง Ubuntu แล้วลงใหม่หมดเลย เยดายจัง น่าจะมาเร็วกว่านี้หน่อย
Thanks หลาย
Thanks หลาย
อ่านหลายๆ
อ่านหลายๆรอบก็แก้ทุกรอบ กลัวคนไม่เข้าใจ พยายามแก้ให้เข้าใจง่ายๆ ตลอด -*-
ไม่เข้าใจท้วงได้ครับ
อาจจะเป็นเรื่องเก่าสำหรับคนที่เก่งแล้ว
แต่ผมคิดว่ามีประโยชน์มากๆสำหรับคนไม่รู้ครับ
เหมือนว่า
เหมือนว่าจะเป็นบทความแรก เขียนได้ดีครับ ปรบมือให้ 30 ที แปะๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
ลองนับดูแ
ลองนับดูแล้ว 30 ทีจริงๆ ด้วยแฮะกะว่าจะมาจับผิดซะหน่อย
เป็นแนวคิดที่ดี
เป็นวิธีทางที่เหมาะสำหรับคนที่ใช้หลาย os เป็นอย่างมาก จะได้ไม่ต้องวุ่นวายกับ boot loader
น่าลองเป็นอย่างยิ่ง
เยี่ยมครับ
ดีมากครับ
ผมก็มีปัญหาเรื่องการจัดการ boot loader เหมือนกัน
ขอบคุณสำหรับวิธีการนะครับ
จะลองไปทำดู :)
หลักการทำงานของการบูต
ตามที่ผมเข้าใจ(อันกิ๊กก๊อก)นะครับ ขั้นตอนการบูต
แบบที่ 1 Boot จาก HDD
BIOS-->MBR หากตั้ง First Boot ที่ HDD
ฺเมื่อผ่านขั้นตอน POST เครื่องแล้ว Bios จะมองหาส่วน MBR
ฺMBR จะส่วนข้อมูล 512K แรกสุดของ HDD ถ้าส่วนนี้ของ HDD เป็น
Bad Sector ก็จบกัน HDD ก็เสียเลยแก้ไม่ได้
หรือถ้าถูกแก้ไขแม้แต่บิตเดียวก็เข้า OS ไม่ได้
(เราจึงได้ยินว่ามี Virus ทำลายส่วน MBR เพื่อให้โหลดเข้าไม่ได้)
MBR-->Grub-->Menu.lst
MBR-->Lilo-->lilo.conf
MBR-->Windows Boot Loader-->NTLDR-->Boot.ini
แบบที่ 2 Boot จาก Removable Media
ถ้าเป็น Removable Media เช่น CD ROM, USB, FDD
และตั้ง First Boot ไปที่อื่น ๆ ที่ไม่ใช่ HDD
BIOS จะไปอ่านค่าจาก Boot Loader เช่น syslinux หรือ grub
ซึ่งถ้าเป็น Grub ก็จะสามารถจัดการ Boot Loader ตัวอื่น ๆ ได้อีก
ทำให้เป็น Multidistro (หลายดิสโทรในแผ่นเดียว)เช่น
BIOS-->syslinux-->syslinux.cfg-->kernel-->initrd
ที่นี้ลองสังเกตดี ๆ จะพบว่า มี 2 ตัวที่สำคัญ คือ Boot Loader กับ Config file
-BIOS จะหา "Boot Loader" เมื่อเสร็จการ POST แล้ว
ในวิธีข้างต้น เป็นวิธีใช้ Boot Loader ของ Windows
ส่วนถ้าติดตั้ง Linux ตัว Boot Loader จะเป็น Lilo หรือ Grub
**ต้องถามตัวเองดี ๆ ว่าจะใช้อะไรเป็น Boot Loader
-Boot Loader อ่านค่า "Config" ที่เก็บไว้บน HDD
ถ้าเป็น Windows จะอ่าน Boot.ini ดังนั้นเมื่อเพิ่มบรรทัด
ที่สั่งให้อ่าน OS อื่น ๆ ใน Partitions อื่น ก็โหลดอื่นได้
*แต่ถ้าติดตั้ง Windows หลัง Linux ก็สนุกหน่อย ได้แก้กันแน่นอน
(วันหลังคงได้เขียนถึง) เพราะ Windows มันไม่ฉลาดพอ :-D ลบของ
Linux ไปเสีย Chip
ถ้าติดตั้ง Linux ที่ไม่มี OSprober จะต้องเข้าไปแก้ใน config ไฟล์นิดหน่อย
เพื่อให้ Boot Windows ได้ด้วย ซึ่งอ่านใน man pages ได้จ๊ะ
สรุป:วิธีข้างบนเหมาะสำหรับคนที่ติดตั้ง Windows อยู่ก่อนแล้ว
ส่วนคนที่ติดตั้ง Linux อยู่ก่อน หากเข้าใจหลักการแล้วจะสามารถแก้ไขปัญหาได้
**ระวังเรื่องถอน OS แล้วไปลบข้อมูลใน Grub หรือ MBR แล้วละกัน
หากวางแผนจะถอน หรือ reinstall OS บ่อย ๆ ควรแยกส่วน /boot
ไว้ Partitions แรกสุดดีกว่า (สัก 100MB) และอย่าลืม Backup ไว้ด้วยนะจ๊ะ
งงครับ รบกวนอธิบายให้อีกรอบครับ
ที่ผมไม่เข้าใจคือ หากท่านประสบปัญหา ลง windows ก่อน linux แล้วพอลบ windows ทิ้ง แล้วลงใหม่
ท่านจะเข้า Linux ไม่ได้ ใช่หรือไหม ตอบ ใช่
จุดประสงค์ของผมคือ ถ้าเรา เกิดปัญหาอย่างด้านบน ลง windows ก่อน linux แล้วพอลบ windows ทิ้ง แล้วลงใหม่ ท่านจะเข้า Linux ไม่ได้ แล้ว จะทำอย่างไรให้ boot แล้วมีตัวเลือกเพื่อให้มีบู๊ต เข้า linux ได้อะครับ เพราะเห็นท่านอธิบาย มันเป็นก่อนติดตั้งลินุกซ์นะครับ
ขออภัย ถ้าผมไม่เข้าใจเอง
การลบ OS
ไม่รู้ว่าคุณ mkk2529 ถามคนเขียนบทความหรือถามผม
ลองถามฟอรั่มดีกว่าครับจะได้ลงลึกกว่านี้
...
เรื่องการติดตั้งหลาย OS หรือ ลบ OS มันมีวิธีหลากหลาย
แต่วิธีข้างบนนี่ง่ายที่สุดสำหรับคนที่ติดตั้ง Windows อยู่ก่อนแล้ว
ติดอยู่ว่าถ้าลบ Windows ไป จะเข้า Linux ไม่ได้
มีสองทางเลือกครับ คือ ติดตั้ง Windows ใหม่ แล้วใช้วิธีข้างบนอีกครั้ง
หรือ ติดตั้ง Linux (กรณีอยากติดตั้งหลาย Distro) แล้วใช้ Boot Loader
อาจจะต้องแก้ไข config ถ้ามันไม่ detect OS เดิมให้
มันมีหลายวิธีจริง ๆ รวมถึงการใช้ LiveCD กู้การ Boot เป็นต้น
รบกวนขอวิธีหน่อยครับ
ที่ผมถามไปแล้วท่านอาจจะงง ขอสอบถามผู้รู้ใหม่อีกครั้งนะครับ ผมจะถามให้ท่านเข้าใจคือ
1.ผมลงวินโดว์ xp
2.ผมลง ubuntu ตาม ใน HD เดียวกัน
3.ใช้ไป วินโดว์ เสีย แล้วก็เลย format drive Windows xp แล้วลงใหม่
4.เมื่อฟอร์แมตลงใหม่แล้ว เวลาเปิดเครื่องมา จะมีแต่บู๊ต ของ windows xp เท่านั้น
คำถามคือ จะติดตั้งเฉพาะ grub ได้อย่างไรครับ ให้ขึ้นบู๊ต ทั้งของ XP และ ubuntu ครับ
เพราะผมอ่านด้านบน แล้วผมยังงงอยู่ครับ
เห็นท่าน TrendyTeddy อธิบายไว้ ว่า
*แต่ถ้าติดตั้ง Windows หลัง Linux ก็สนุกหน่อย ได้แก้กันแน่นอน
(วันหลังคงได้เขียนถึง) เพราะ Windows มันไม่ฉลาดพอ :-D ลบของ
Linux ไปเสีย Chip
อยากทราบวิธีแก้หรือลง Boot loader หรือ grub ใหม่ครับ
ขอบคุณครับ
ใครที่ลง
ใครที่ลง windows ใหม่บ่อยๆ ใช้วิธีนี้ก็สะดวกดีครับ เก็บไฟล์ ubuntu.bin นั่นไว้แล้วแก้ที่ boot.ini อย่างเดียวก็จบ ไม่ต้องมาตามลง grub ใน mbr ใหม่ทุกรอบเวลาเรา reinstall windows อ่ะครับ
ทุกวันนี้ผมก็ทำงี้อ่ะ เพราะว่า Ubuntu เวลามัน upgrade kernel ทีไร มันลบตัวเลือก windows ออกจาก menu.lst ทุกทีเหมือนกัน (พอดีผมเลื่อนตัวเลือก windows มาอันบน เพราะน้องๆที่บ้านใช้แล้วงงครับ)
เข้าท่าขอรับ
ขอโทษทีครับที่เขียนให้ซับซ้อน พอดีผมชอบ Grub มากกว่าเลย ไปนึกเลยไปไกล
ของคุณจะเป็น Boot Loader ของ Wins ที่ไม่ Detect Ubuntu
...
ทำตามที่คุณ Roborov ชี้แจงก็ง่ายที่สุดแล้วครับ
ถ้ามีแผนที่จะลง Wins ต่อ ก็อาศัย Boot.ini ของ Windows ดีกว่า
ไม่ต้องอาศัยเทคนิคมากนัก ง่ายดีด้วย
ผมใช้อีกวิธีครับ
ผมใช้ wubi ครับ http://wubi-installer.org/ จัดการ partition ของ linux แบบเห็นๆ ใน windows ได้เลย (ก็เป็นไฟล์นิ)
ตอนติดตั้
ตอนติดตั้ง dd if=/dev/hda of=/media/hda1/grub.img bs=512 count=1
win เจ๊ง บูตด้วย live cd แล้วสั่ง dd if=/media/hda1/grub.img of=/dev/hda bs=512 count=1
รับรอง แจ๋ว
แปลคำสั่ง
แปลว่า สำรอง MBR ไว้ใน HDD Partition ที่ 1 และกู้ด้วย Live CD กลับไปยังที่เดิม จ๊า...
คนที่ไม่เ
คนที่ไม่เคยใช้ Linux หรือ Ubuntu อย่างผมอ่านแล้วงงอ่ะครับ
จุดที่ผมงง
อะไรคือ terminal
อะไรคือ Diskdump
สงสัยว่า
hd0 จะหมายถึง drive c ในวินโดวส์ หรือป่าว
hd1 จะหมายถึง drive d ในวินโดวส์ มั้ยยยย
อยากลง windows
อยากทราบวิธีการลง Windows XP ลงบนเครื่องที่ลง vista อยู่แล้วครับ
งงด้วยครั
งงด้วยครับ ...ถามใครก็ได้ครับ
ขอโทษด้วยครับถ้าเข้าใจผิด
คือตอนนี้ผมลง windows ใหม่หลัง ubuntu แล้ว option เลือก linux หาย ...ถ้าผมทำตามวิธีข้างบน คือต้องลง linux ใหม่ แล้วค่อย diskdump จาก partition linux มาที่ c: ของ windows หรือเปล่าครับ ...
ถ้าไม่ต้องลง linux ใหม่ นี่ทำยังไงครับ
ขอบคุณมาก
งง
งง กับส่วนของคำสั่งนี้อ่ะครับ
dd if=/dev/hda2 of=/media/hda1/ubuntu.bin bs=512 count=1
ผมทำแล้วไม่ผ่านครับ
ปกติผมไม่ค่อยเข้าใจส่วนของ hda2 หรือ hda1 เท่าไหร่อ่ะครับ เพราะหากเข้าไปดูตามวิธีข้างต้นแล้วของผมตอนเขาไปดูในเมนู Addvance นั้นมันเขียน Default เป็น hd0 ครับ
และตอนที่เราเลือก Partition ที่จะลงทำไมของผม Partiton Ubuntu ที่ลงมันโชว์เป็น sda5 อ่ะครับ และ sda5 มันเหมือนกัน hd5 หรือเปล่าครับ ไม่ค่อยเข้าใจครับ ปล.เครื่องผมแบ่งParition แบบนี้คือ Windows 1Partion แล้วก็แบ่งไว้เก็บข้อมูลอีก1 Partition แล้วจึงค่อยมาแบ่งให้ Ubuntu ในส่วนที่เหลือครับ
อะไรกันเนี่ย งง โคตร
เท่าที่ผมอ่านมาด้านบนไม่เห็นจะมีวิธีแก้สำหรับคนที่ format windows ไปแล้วเลยนี่คับ
เห็นมีหลาย rep ที่อยากหาคำตอบเหมือนผมคับ แต่ก็ไม่ได้คำตอบซักที
ผมจะลองเขียนเป็นสเต็ปดูนะคับ เผื่อจะเข้าใจมากยิ่งขึ้น ปัญหาก็คือว่า
1.ลงวินโดวส์ไปในไดร์ฟนึง
2.ลง linux ไปในอีกไดร์ฟนึง แล้วคาดว่า boot loader ก็น่าจะลงไปในไดร์ฟของวินโดวส์
3.พอ format ไดร์ฟของ windows ไป ทำให้ boot loader หายไปด้วย ไม่ขึ้นตัวเลือกให้เลือกว่าจะใช้ os อะไร
นี่คือปัญหาคับ แล้วจะทำอย่างไรให้สามารถมีตัวเลือกขึ้นมาเหมือนกับตอนที่ยังไม่ format windows คับ ?
Post new comment