

เอาใหม่อีกทีครับ ผมไม่ได้ลง 2 ระบบในเวลาเดียวกันนะครับ ผมทำตามขั้นตอนดังนี้ครับ
1. ลงลีนุกซ์ อัพเดตปรับแต่งเรียบร้อย แล้วโกสต์เป็นอิมเมจเก็บไว้
2. ลงวินโดว์บนพาร์ติชั่นที่เคยลงลีนุกซ์ไว้ วินโดว์แจ้งว่าไม่สามารถติดตั้งลงบนพาร์ติชั่นนี้ได้ และแนะนำให้ลบพาร์ติชั่นนี้ก่อนถึงจะติดตั้งวินโดว์ได้
3. ทำตามคำแนะนำและลงวินโดว์ได้สำเร็จ และโกสต์อิมเมจเก็บไว้
4. คราวนี้ผมนำอิมเมจลีนุกซ์มารีสโตร์กลับ แล้วบู๊ตไม่ได้ แจ้งข้อความ
Error loading operating system
5. รีสโตร์อิมเมจวินโดว์จากข้อ 3 กลับมา ปรากฎว่าใช้ได้
6. ทำการลงลีนุกซ์ใหม่
7. รีสโตร์อิมเมจลีนุกซ์จากข้อ 1. กลับมา ปรากฎว่าใช้งานลีนุกซ์ได้
ข้อสันนิฐานของผมมีดังนี้
การลบพาร์ติชั่นทำให้ grub bootloder ถูกลบไปด้วยทำให้มีปัญหาในการรีสโตร์ตามข้อ 4
การลงลีนุกซ์ใหม่ในข้อ 6 ทำให้ grub bootloder ถูกสร้างขึ้นมาใหม่ เป็นผลให้การรีสโตร์ในข้อ 7 เป็นผลสำเร็จ
จึงอยากทราบว่า
1 มีวิธีการที่จะการสร้าง grub bootloder ขึ้นมาใหม่โดยไม่ต้องลงลีนุกซ์ใหม่ หรือไม่
หรือ
2. สร้าง grub bootloder ไปไว้ที่อื่นหรือพาร์ติชั่นอื่นได้หรือไม่ เมื่อต้องลบพาร์ติชั่น grub bootloder จะได้ไม่ต้องถูกลบไปด้วย
อยากจะลองดูเป็นความรู้ครับ
*** บางทีข้อสันนิฐานของผมอาจจะผิดนะครับ

1 มีวิธีการที่จะการสร้าง grub bootloder ขึ้นมาใหม่โดยไม่ต้องลงลีนุกซ์ใหม่ หรือไม่
ตอบ ... มีครับ ก็ boot จากแผ่น พอได้ shell ก็ chroot ไป แล้วสั่ง grub-install เอาหนะครับ (ขอตอบคร่าวๆ ก่อน ส่วนละเอียดๆ ค่อยว่าอีกที)
2. สร้าง grub bootloder ไปไว้ที่อื่นหรือพาร์ติชั่นอื่นได้หรือไม่ เมื่อต้องลบพาร์ติชั่น grub bootloder จะได้ไม่ต้องถูกลบไปด้วย
ตอบ ... ได้ครับ ก็ติดไว้ที่ partition ของ linux ซึ่งก็จะเหมือน win ที่ติด boot loader ไว้ใน partition
ข้อจำกัดก็คือ ต้องไป set partition นั้นให้ active เพื่อที่จะให้เครื่อง boot ที่ partition นั้นๆ เมื่อมัน boot ก็จะไปอ่านตรงส่วนหัวของ partition และก็จะเจอกับ boot loader
แต่ถ้า partition นั้นเป็น logical หละ จะทำอย่างไร (เพราะ set active ไม่ได้)
บน win ก็จะแก้ปัญหาด้วยการติดตั้งไว้ที่ partition แบบ primary ที่มันเขียนได้ (เช่น ในกรณีที่ติด me กับ 2k โดย 2k เป็น logical จะติด boot loader ไว้ใน partition ของ me) ซึ่งจะทำได้ ต้องเป็น win ตระกูล nt พวก 9x หนะ ทำไม่ได้ครับ
บน linux ก็จะแก้ปัญหาคล้ายๆ กัน โดยทำ partition เล็กๆ ที่เป็น primary ไว้ แล้วติด /boot ไว้ ส่วน linux (คือ /) จะอยู่ที่ไหนก็ตามใจ ... เป็นหลักการเดียวกัน
เพื่อตัดปัญหาทั้งปวง ก็เลยมีผู้ทำโปรแกรมช่วย boot ขายซะเลย (เคยได้ยิน boot magic ไม้ครับ) ก็จะติดตั้งตัวเองไว้ที่ mbr หรือ primary partition ที่ set active ไว้ แล้วก็ทำหน้าที่ boot อย่างเดียว ส่วนใน linux ก็ง่ายกว่านั้น ติดมันบน mbr ซะเลย ยังไงก็ boot ได้ทุกสถานการณ์ และทุก os
พอนึกภาพออกไม้ครับ
แต่ตอนนี้ ที่ว่าเนี่ย ชักจะเก่าไปแล้ว เพราะ MacBook ไม่ได้ใช้ mbr แล้ว ... สนุกกว่านี้เยอะ
ผมเล่นพักนึง (2-3 วัน) กว่าจะเข้าใจ และติด osx - ut - vista ลง macbook ได้ ... ก็สนุกดีครับ ;)

สร้าง grub bootloder โดยบู๊ตจากแผ่น แลัวเลือก F1 แล้วเลือก F4 ... (ทำต่อไปเรื่อยๆ) ...จนถึง grub-install ทำถึงตอนนี้ผมก็เลือกไดร์ฟที่จะติดตั้ง grub ไม่ถูก ผมจำข้อความที่แจ้งขึ้นไม่ได้ มันแจ้งประมาณว่าไม่มี root หรือ เลือกไดร์ฟไม่ถูกต้องครับ
grub bootloder ตอนที่ติดตั้งลีนุกซ์มันก็น่าจะอยู่ที่พาร์ติชั่นลีนุกซ์ ตอนโกสต์อิมเมจมันก็น่าจะมีติดไปด้วย แต่พอรีสโตร์กลับมันไม่มา บางทีตอนรีสโตร์กลับมา พาร์ติชั่นมันอาจกลายเป็น logical หรือผมไม่ได้เซตให้ active
เดี๋ยวจะลองใหม่ครับ ได้ผลอย่างไรจะแจ้งให้ทราบครับ

"grub bootloder ตอนที่ติดตั้งลีนุกซ์มันก็น่าจะอยู่ที่พาร์ติชั่นลีนุกซ์ ตอนโกสต์อิมเมจมันก็น่าจะมีติดไปด้วย แต่พอรีสโตร์กลับมันไม่มา บางทีตอนรีสโตร์กลับมา พาร์ติชั่นมันอาจกลายเป็น logical หรือผมไม่ได้เซตให้ active"
ไม่เวิร์คครับ ต้องใช้วิธีลงใหม่ แล้วค่อยเอาอิมเมจโกสต์มาลง วิธีนี้ใช้ได้ แต่ก็เสียเวลาไปพอสมควร
แล้วถ้าต้องการลงลีนุกซ์บนเครื่องสเป็คเดียวกันหลายๆเครื่อง ก็คงต้องลงทีละเครื่อง
น่าจะมีวิธีโกสต์ได้แบบวินโดว์นะจะได้ไม่เสียเวลา

ก็อยากจะช่วยนะครับ แต่ดันติดที่ผมพูดภาษา User ไม่ค่อยเป็น (หมายความว่า ถนัดแต่แบบลูกทุ่ง ใช้แต่ Command line) แต่เมื่ออ่านแล้ว ก็เข้ามาให้ *ความรู้* ทิ้งไว้หน่อยก็ดี (ไม่ใช่ให้ "วิธีทำ" สำหรับ *User* นะครับ)
Boot loader เป็น Software เล็กๆ มี Routine เพียงสั้นๆ ครับ ปกติจะถูกติดตั้งไว้ที่บริเวณ Boot record ของ Harddisk ซึ่งอยู่ตอนต้นของ Harddisk เลย และถูกกันที่ไว้แล้วในระดับ Firmware ของทั้ง Harddisk และ BIOS ของ Mainboard ของ Computer ครับ ดังนั้น การสำเนา Partition ไปจึงไม่ได้เก็บ Boot record ไปด้วยนั่นเองครับ
ทีนี้ ที่คุณงงๆ นั่น ที่จริงไม่มีอะไรน่างง ถ้าเข้าใจขั้นตอนการ Boot และข้อมูลที่ผมบอกไปในย่อหน้าที่แล้ว คือ... คุณจะ Ghost ไป Ghost มากี่ครั้งก็ตาม ตราบใดที่ยังไม่ได้เอา OS อื่นมาทับ Boot record นั้นก็จะใช้งานได้ครับ เพราะเป็น Boot record ที่ใช้กับ Linux แต่เมื่อมีการ Ghost เอา Windows มาทับแล้ว Boot record ก็จะถูกเขียนทับไป เพราะโปรแกรม Ghost นั้นกำเนิดมาจากทางฝั่ง Microsoft OS จึงเก็บ Boot record เองโดยอัตโนมัติ ถ้าเป็น OS อื่น ก็ต้องเพิ่ม Parameter จึงจะเก็บไปด้วย (อันนี้คาดเอานะครับ เพราะไม่ได้ใช้ Ghost เหมือนกัน)
สำหรับผม ถ้าสำเนา Partition ของ Linux ผมจะใช้วิธีที่ *ในสายตา* ผมแล้วธรรมดามาก ก็คือ สร้าง Partition ใหม่เองด้วยมือเป็น ext3 แล้วก็กำหนด Label ให้ชื่อตรงกับของเดิม แล้วก็ cp -rpiv เอาที่สำรองไว้แล้วลงไปใน Partition ใหม่ดื้อๆ เลยครับ แล้วก็ Boot ใหม่ อย่าลืม mount แล้ว chroot ด้วย (จากที่คุณบอกมา ผมเห็นว่าคุณลืมตรงนี้ จึงทำให้ติดตั้ง grub ไม่สำเร็จ) แล้วก็ grub-install ใหม่จะ Install ไปที่ไหน ก็ขึ้นอยู่กับ Partition ใหม่นั้นอยู่ที่ไหนนั่นเองครับ เท่านั้นก็เสร็จ
ในสายตาผม ผมจะรู้สึกว่า "ง่ายมากๆ" แต่ก็ขออย่าต่อว่ากันเลยนะครับ ผมก็เข้าใจดีว่าสำหรับ "ผู้ใช้" แล้วมันไม่เข้าใจ เลยยากมาก
ที่แนะนำนี้นั้น เพื่อจะเป็นประโยชน์บ้างไม่มากก็น้อย แก่ใครก็ได้ แต่อาจไม่ช่วยอะไรเลยสำหรับคุณ bermlert ซึ่งก็ขออภัยด้วยครับ

ขอบคุณครับคุณจักรนันท์ อย่างน้อยก็ได้ความรู้เป็นไอเดียล่ะครับ ขอวิธีทำโดยละเอียดหน่อยนะครับ ตอนเริ่มใช้วินโดว์ก็ไม่มีความรู้อันใดเลย อาศัยซื้อหนังสือมาอ่านเอา ลองผิดลองถูก ยกเครื่องไปให้ร้านลงวินโดว์ใหม่หลายครั้ง จนเดี๋ยวนี้ลงวินโดว์เองได้
***สำหรับลีนุกซ์---หาหนังสืออ่านยากเหลือเกิน อยากหาอ่านเกี่ยวกับคอมมานด์ไลน์ ให้น้องหามาให้ก็มีแต่ลีนุกซ์ทะเล 5.5 ตอนลงทะเล8 เห็น beryl สวยดีก็พยายามลง ปล้ำอยู่เป็นอาทิตย์ ไม่รู้แม้แต่ sudo คือ อะไร ทำไมต้องทำที่ terminal ทำตามขั้นตอนในเว็บที่เป็นภาษาอังกฤษ ติดตั้งไดร์เวอร์การ์ดจอเสร็จ รีสตาร์ทใหม่ใช้ไม่ได้หน้าจอมีแต่ตัวยึกยือ ลงใหม่ ๆ ๆๆๆๆ หาวิธีทำจนสำเร็จ สนุกดีครับ
ตอนนี้ก็อยากจะสนุกอีกแล้วครับ ขอความรู้จากทุกๆท่านหน่อยนะครับ

มาครับ วิธีทำ *พอ* ละเอียดปานกลาง (ละเอียดมากพิมพ์ไม่ไหว)
เวลาจะสำเนา Partition Linux ทั้งดุ้นนะครับ สมมุติโจทย์ว่าต้นฉบับอยู่ที่ /dev/sda1 นะครับ Hardisk อีกลูกอยู่ที่ /dev/sdb นะครับ เสียบต่อเรียบร้อย ก็หาแผ่น Rescue ของค่ายใดๆ ก็ได้มา Boot ใช้ได้ทั้งนั้นครับ (ผมใช้ Fedora)
ทีนี้ เพราะผมชอบใช้แผ่น Rescue ของ Fedora ผมก็จะอ้างถึงเป็นหลักนะครับ ตอน Boot นั้น Rescue ของ Fedora (ต่อไปขอพิมพ์ย่อว่า RF แล้วกันครับ) จะมีหน้าต่างหนึ่งขึ้นมาแจ้งว่าพบ Linux Partition อยู่ จะให้ Mount ไหม? แล้วมีตัวเลือกให้ "Read only" "Skip" และ "Continue" ตรงนี้ผมจะเลือก "Skip" ครับ เพื่อบอกว่า "ไม่ต้องยุ่ง ฉันทำของฉันเอง" หลังจากนั้นพอขึ้น Command line แล้ว ผมก็จะจัดแจงไป fdisk และ mkfs.ext3 เจ้า /dev/sdb สร้าง Partition ตามที่ต้องการเพื่อเป็นปลายทาง ทีนี้ก็สร้างไดเร็คทอรี่ /mnt/source และ /mnt/target แล้วจัดแจง Mount เอา /dev/sda1 ต้นฉบับไปที่ /mnt/source และเอา /dev/sdb1 ที่สร้างใหม่ไปที่ /mnt/target หลังจากนั้นก็
cp -apRv /mnt/source/* /mnt/target
ไปหมดยกดุ้นทั้ง File/Directory permission ก็จะไปหมดไปด้วย เมื่อสำเนาเสร็จแล้วก็ตรวจสอบ Partition label ของต้นฉบับด้วยคำสั่ง
e2label /dev/sda1
ก็จะได้ Label มากำหนดให้ตัวใหม่โดยสั่ง
e2label /dev/sdb1 <Label เดียวกับตัวต้นฉบับ>
แล้วก็ Shutdown ถอดตัวต้นฉบับออก เอาตัวใหม่ใส่แทนที่ ในกรณีนี้ต้องที่เดิมนะครับ ถ้าไม่ได้เสีบที่เดิมต้องมีขั้นตอนเพิ่ม พอเสียบแล้ว Boot ด้วยแผ่น RF อีกครั้ง เลือกเหมือนเดิม ทำเหมือนเดิม (ยกเว้น /mnt/target) ทีนี้พอ Mount เอา Partition ใหม่ไว้ที่ /mnt/source แล้วให้สั่ง
chroot /mnt/source
grub-install /dev/sda1
ทีนี้ก็ exit อีก 2 ครั้ง เป็นอันใช้การได้ครับ แต่ถ้ากรณีที่ไม่ได้เสียบ Harddisk ที่เดิม ไม่ได้เป็น sda1 เหมือนเดิม จำเป็นต้องแก้ไข /boot/grub/grub.conf และ /boot/initrd-???? ด้วย แต่ขอติดไว้ยังไม่เล่าก่อนครับ เดี๋ยวจะมากเกินไป ใครไปลองทำชำนาญแล้วอยากจะพิสดารกว่านี้ค่อยมาถามต่อแล้วกันครับ


Posts: 21
Joined: 21-08-2007