linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

โคลนนิ่งวินโดวส์เอ็กซ์พีด้วยลีนุกซ์

โดย ธีรภัทร มนตรีศาสตร์,RHCE

ต้องยอมรับว่า ณ วันนี้ระบบปฏิบัติการสำหรับเครื่องพีซีที่แพร่หลายมากที่สุดคงหนีไม่พ้นโปรแกรมไมโครซอฟต์วินโดวส์ ซึ่งปัจจุบันได้เข้ามาเป็นส่วนหนึ่งในชีวิตประจำวันของเราทุกคน แม้แต่ตัวผู้เขียนเองที่คลุกคลีอยู่กับลีนุกซ์มากเป็นพิเศษด้วยภาระงานที่รับผิดชอบอยู่ก็ยังต้องเกี่ยวข้องกับโปรแกรมวินโดวส์รุ่นต่างๆ เช่นเดียวกัน ตั้งแต่การใช้ประกอบการฝึกอบรมในบางหัวข้อที่จำเป็นต้องใช้วินโดวส์เป็นเครื่องลูกข่ายหรือแม่ข่าย การใช้งานบางอย่างที่ลีนุกซ์ไม่สามารถทำได้ แม้กระทั่งขณะที่กำลังเขียนบทความนี้อยู่ก็ใช้วินโดวส์เช่นกัน วินโดวส์เจ้าปัญหา อย่างที่เราทราบกันโดยทั่วไปว่า การนำโปรแกรมวินโดวส์มาใช้งานก็ไม่ใช่ว่าจะเป็นเรื่องง่ายๆ มีปัญหาที่เราท่านต้องเผชิญอยู่ไม่ใช่น้อย หากจะกล่าวถึงเฉพาะที่ตัวผู้เขียนเองต้องประสบและรู้สึกเบื่อหน่ายเป็นอย่างมาก นับตั้งแต่การติดตั้งโปรแกรมที่ใช้เวลานานมาก ตามมาด้วยการติดตั้งซอฟต์แวร์ไดร้วเวอร์ของอุปกรณ์ต่างๆ ที่ทำให้ต้องรื้อค้นแผ่นซีดีรอมของฮาร์ดแวร์หลายๆ ชิ้นมาติดตั้งอย่างถูกต้อง กว่าจะครบสมบูรณ์ก็หมดเวลาไปอีกร่วมชั่วโมง ยังไม่จบแค่นั้นต้องลงโปรแกรมแอปพลิเคชั่นและปรับโน่นทดสอบนี่อีกหลายจุดถึงจะได้ใช้งานซักที หลังจากใช้งานได้ไม่นานนัก วินโดวส์ตัวดีของเราอาจจะออกอาการเพี้ยนๆ ที่คาดไม่ถึงได้ง่ายๆ โดยเฉพาะถ้าใช้งานอินเตอร์เน็ตล่ะก็อาจจะถูก Malware ต่างๆ รบกวนจนผิดปรกติไปอย่างรวดเร็วเป็นเหตุให้ต้องแก้ไขปัญหาหรือไม่ก็ล้างโปรแกรมลงใหม่อยู่บ่อยๆ ซึ่งเป็นเรื่องที่น่าเบื่อมาก ปัญหาดังกล่าวจึงทำให้หลายๆ ท่านเริ่มหาทางออกที่จะช่วยลดเวลาอันมีค่าลงให้ได้มากที่สุด หรืออย่างน้อยก็ช่วยลดขั้นตอนติดตั้งวินโดวส์และซอฟต์แวร์เกี่ยวข้องที่เป็นงานจุกจิกลงบ้างก็ยังดี ทางออกหนึ่งที่นิยมกันมากก็คือการสำรองระบบซอฟต์แวร์ทั้งหมดที่มีความสมบูรณ์ไว้ในรูปของอิมเมจไฟล์ หรือที่เรามักเรียกว่าการโคลนนิ่งฮาร์ดดิสก์นั่นเอง ซึ่งสามารถทำได้ด้วยโปรแกรมหลายๆ ตัว เช่น Norton Ghost ,Partition Magic เป็นต้น หลังจากที่ได้โคลนนิ่งฮาร์ดดิสก์ไว้แล้ว หากต้องการล้างเครื่องติดตั้งโปรแกรมใหม่อีกครั้งก็จะทำได้ด้วยการนำอิมเมจไฟล์เขียนกลับลงไปในฮาร์ดดิสก์เท่านั้น นับว่าสะดวกกว่าการที่ต้องมานั่งลงโปรแกรมที่ละขั้นๆ มาก แต่ปัญหาก็ยังคงมีอยู่อีก 2-3 ประการตามเงื่อนไขของผู้ใช้งานแต่ละคน เป็นต้นว่าเรื่องคุณสมบัติของตัวโปรแกรมที่จะนำมาใช้งานหากเป็น Norton Ghost บางรุ่นจะไม่สามารถโคลนนิ่งวินโดวส์เอ็กซ์พีได้อย่างสมบูรณ์ต้องมีขั้นตอนจุกจิกตามมาอีก นอกจากนี้ยังต้องมีขั้นตอนในการสร้างแผ่นบูตจากเครื่องวินโดวส์อีกด้วย ปัญหาอีกประการหนึ่งก็คือ ผู้ใช้งานจะต้องจัดหาอุปกรณ์จัดเก็บข้อมูลที่มีขนาดใหญ่เพียงพอต่อการจัดเก็บอิมเมจไฟล์ของฮาร์ดดิสก์ ซึ่งอาจจะใช้แผ่นดีวีดีรอม ฮาร์ดดิสก์ (นำมาเชื่อมต่อในเครื่องพีซีโดยตรง หรือเชื่อมต่อภายนอกโดยใช้กล่องอุปกรณ์เชื่อมต่อแบบ USB/Firewire ) หรือนำอิมเมจไฟล์ไปเก็บบนเครื่องเซิร์ฟเวอร์บนระบบเครือข่ายก็ได้ แนวทางแก้ปัญหาที่เป็นไปได้ ผู้เขียนเองก็ประสบกับปัญหาการที่ต้องติดตั้งโปรแกรมวินโดวส์บ่อยๆ แบบนี้เช่นกัน ซึ่งได้เคยคิดว่าจะนำอุปกรณ์ฮาร์ดแวร์หรือซอฟต์แวร์ที่มีในท้องตลาดมาใช้งาน แต่ก็ติดขัดเงื่อนไขหลายอย่าง เช่น อุปกรณ์สำรองข้อมูลไม่สนับสนุนการจัดเก็บบนเซิร์ฟเวอร์บ้าง ต้องติดตั้งลงในทุกๆ เครื่องที่จะสำรองข้อมูลซึ่งใช้งบประมาณสูง ส่วนซอฟต์แวร์ต่างๆ ก็ล้วนมีข้อจำกัดในการใช้งานทั้งนั้น ทำให้ต้องหาทางออกด้วยวิธีอื่นที่น่าจะมีความเป็นไปได้โดยอาศัยความสามารถของซอฟต์แวร์ของลีนุกซ์ที่อยู่รอบๆ ตัว ดังนี้ Rescue Mode ของ Anaconda ลีนุกซ์ในกลุ่มเรดแฮททั้งหลายรวมทั้ง Fedora Core ทุกรุ่น จะมีโปรแกรมชื่อ Anaconda เป็นโปรแกรมช่วยในการติดตั้งที่พร้อมจะทำงานทุกครั้งที่บูตแผ่นซีดีรอมแผ่นแรกในการติดตั้งระบบปฏิบัติการดิสทริบิวชั่นนี้ นอกจากจะมีหน้าที่ช่วยเหลือในการติดตั้งดังกล่าวแล้ว Anaconda ยังมีโหมดการทำงานกู้ภัยหรือ Rescue Mode อีกด้วย ซึ่งทำให้มันทำหน้าที่เป็นระบบปฏิบัติการเล็กๆ ที่บูตได้ด้วยตัวเอง ทำงานในหน่วยความจำ (RAM Disk) สามารถติดต่อกับระบบเครือข่ายได้ และมีคำสั่งพื้นฐานให้ใช้งานจำนวนหนึ่ง ดังนั้นจึงเป็นไปได้ที่จะนำ Rescue Mode นี้มาสร้างสภาพแวดล้อมชั่วคราวในเครื่องพีซีใดๆ ก็ตามเพื่อการสำรองข้อมูลหรือโคลนนิ่งฮาร์ดดิสก์ได้ตามที่เราต้องการเพราะว่า Rescue Mode จะช่วยให้เราสามารถเข้าถึงฮาร์ดดิสก์และโปรแกรมทั้งหมดได้นั่นเอง dd เป็นคำสั่งพื้นฐานของลีนุกซ์คำสั่งหนึ่งที่สามารถอ่านข้อมูลจากอุปกรณ์จัดเก็บข้อมูลประเภท Block Device เช่น ดิสก์ต่างๆ แล้วส่งผลลัพธ์ไปเป็นแฟ้มข้อมูล (หรือที่เราเรียกกันว่าไฟล์อิมเมจในเรื่องของการโคลนนิ่งดิสก์) หรืออาจจะทำงานในทางกลับกันก็ได้ เนื่องจากในระหว่างที่อยู่ในสภาพแวดล้อมแบบ Rescue Mode จะมีคำสั่ง dd นี้ให้ใช้งานได้ เราจึงสามารถนำคำสั่งนี้มาใช้เพื่อการโคลนนิ่งข้อมูลจากฮาร์ดดิสก์ไปเป็นไฟล์อิมเมจได้เช่นเดียวกับการใช้โปรแกรม Norton Ghost NFS Server เป็นบริการจัดเก็บไฟล์บนระบบเครือข่ายแบบดั่งเดิมมากของระบบปฏิบัติการยูนิกซ์ ซึ่งลีนุกซ์ได้รับการสืบทอดมาเช่นกัน อาจกล่าวได้ว่าเป็นบริการขั้นพื้นฐานที่สุดก็ได้ NFS ( Network File Services ) จึงสามารถเปิดให้บริการและเข้าถึงกันระหว่างโฮสต์ได้ง่ายมากระหว่างยูนิกซ์ด้วยกัน ดังนั้นจึงเป็นคุณสมบัติของลีนุกซ์ที่เราจะนำมาประยุกต์ใช้เป็นศูนย์กลางในการจัดเก็บไฟล์อิมเมจของวินโดวส์ที่ได้โคลนนิ่งเอาไว้ สรุปสิ่งที่จำเป็นต้องใช้ทั้งหมดจึงมี
  1. 1. เครื่องเซิร์ฟเวอร์ลีนุกซ์ที่จะทำหน้าที่เป็น NFS Server เน้นว่าจะต้องมีเนื้อที่ดิสก์ความจุสูงมากพอที่จะเก็บไฟล์อิมเมจของเครื่องวินโดวส์ไว้ได้
  2. 2. แผ่นซีดีรอมแผ่นแรกในชุดติดตั้ง Red Hat / Fedora Core 3) เพื่อใช้เข้าสู่ Rescue Mode
  3. 3. ระบบเครือข่ายแลนที่เชื่อมต่อไว้กับกลุ่มเครื่องพีซีวินโดวส์ที่เราต้องการจะโคลนนิ่ง


รูปที่ 1 ส่วนประกอบของการโคลนนิ่งดิสก์ด้วยลีนุกซ์

เตรียมลีนุกซ์ NFS Server เครื่องที่จะทำหน้าที่เป็น NFS Server นี้ สามารถใช้ลีนุกซ์รุ่นใดก็ได้ตามความถนัด ขอให้มีซอฟต์แวร์แพคเกจ NFS และ Portmapper ก็ถือว่าเพียงพอต่อการใช้งานแล้ว อย่าลืมจัดแบ่งเนื้อที่ดิสก์ให้มีขนาดใหญ่พอสำหรับเก็บไฟล์อิมเมจของวินโดวส์ทั้งหมดได้ สมมุติว่าใช้ mount point เป็น /data เมื่อต้องการ Export ไดเรคทอรี่ /data ออกไปให้บริการ NFS ในระบบเครือข่ายจะต้องเพิ่มข้อความในไฟล์ /etc/exports ดังนี้
/data *(rw,async)


แล้วให้เริ่มเปิดบริการ NFS เพื่อเริ่ม Export ในกรณีที่ใช้ Red Hat/ Fedora ทำได้ด้วยคำสั่ง
# service nfs restart
# chkconfig nfs on


งานในส่วนของ NFS Server คงมีเพียงเท่านี้ ต่อจากนี้ไปเป็นหน้าที่ของ Rescue Mode ที่จะส่งไฟล์อิมเมจมาเก็บไว้ที่ /data นี้ หรือนำเอาไฟล์อิมเมจกลับไปติดตั้งในฮาร์ดดิสก์ของเครื่องพีซีลูกข่าย แต่เพื่อการตรวจสอบที่ชัดเจนยิ่งขึ้นเราอาจจะรันคำสั่งทิ้งไว้ที่ NFS Server นี้เพื่อมอนิเตอร์การบันทึกไฟล์อิมเมจก็ได้ โดยใช้คำสั่ง
# watch ls -lh /data


จะได้ผลการทำงานดังรูปที่ 2



รูปที่ 2 การมอนิเตอร์ที่ฝั่ง NFS Server

วิธีใช้งาน Rescue Mode เมื่อเลือกเครื่องพีซีวินโดวส์ที่ต้องการจะโคลนนิ่งได้แล้ว ให้บูตเครื่องนั้นด้วยแผ่นซีดีรอม Anaconda ที่เตรียมไว้ ในหน้าจอแรกของโปรแกรมจะมีบูตพร้อมพ์รอให้ป้อนคำสั่ง ให้พิมพ์คำว่า linux rescue เพื่อเข้าสู่โหมด Rescue ดังรูปที่ 3


รูปที่ 3 เข้าสู่โหมด Rescue


รอสักครู่หนึ่งหลังจากโหลดโปรแกรมแล้วจะมีกรอบคำถามให้เลือกภาษาในการใช้งานและภาษาของแป้นพิมพ์ ให้กด TAB ไปที่ Ok ผ่านไปตามปรกติ จนถึงกรอบคำถามว่าจะตั้งค่าระบบเครือข่ายหรือไม่ให้ตอบตกลง และเลือกรับคอนฟิกแบบ DHCP หรือจะตั้งค่าคงที่เองก็แล้วแต่ตามสภาพแวดล้อมในระบบของท่านเอง ( รูปที่ 4 และ 5 )


รูปที่ 4 เลือกภาษาและแป้นพิมพ์ที่ใช้งานระหว่าง Rescue Mode






รูปที่ 5 กำหนดตั้งค่าเกี่ยวกับระบบเครือข่ายใช้งานระหว่าง Rescue Mode


เมื่อมาถึงกรอบคำถามต่อมาซึ่งมีความสำคัญมากในการใช้งานเรื่องนี้ ซึ่งเป็นคำถามให้เลือกว่าจะดำเนินการ Rescue ต่อไปหรือไม่ (รูปที่ 6 ) ให้เลือก SKIP หมายถึง ไม่ใช้การ Rescue ตามปรกติ แต่เราจะได้สภาพแวดล้อมของเชลล์ธรรมดาเพื่อใช้งานในการโคลนนิ่งดิสก์ต่อไป


รูปที่ 6 กำหนดทางเลือกที่จะเข้าสู่เชลล์

โคลนนิ่งวินโดวส์ไปเก็บใน NFS Server ในขณะที่อยู่ในสภาพแวดล้อมของเชลล์ใน Rescue Mode ซึ่งกำลังทำงานอยู่ในหน่วยความจำของเครื่องพีซีลูกข่ายนั้น และได้คอนฟิกตั้งค่าให้สามารถติดต่อผ่านระบบเครือข่ายได้แล้ว จึงเป็นการง่ายที่จะเชื่อมต่อผ่านบริการ NFS สามารถเข้าถึงฮาร์ดดิสก์ของเครื่อง และนำข้อมูลแบบ Block device ในฮาร์ดดิสก์ไปเก็บบันทึกลงที่ NFS Server มีขั้นตอนดังนี้
  1. ตรวจสอบว่า Rescue Mode สามารถมองเห็นฮาร์ดดิสก์ในเครื่องพีซีได้จริง โดยใช้คำสั่ง fdisk -l ดังรูปที่ 7 จะเห็นว่ามีฮาร์ดดิสก์เป็น /dev/hda มีพาร์ทิชั่น /dev/hda1 เป็นวินโดวส์ ขนาดประมาณ 8 GB
  2. เมื่อทราบแล้วว่าฮาร์ดดิสก์ของเครื่องพีซีอ้างด้วยชื่อดีไวซ์อะไร สมมุติว่าจะเชื่อมต่อกับ NFS Server ด้วย mount point ชื่อ /mnt/data ไปยัง NFS Server หมายเลขไอพี 192.168.100.5 ซึ่งได้ Export ไดเร็คทอรี่ /data ไว้ จากนั้นต้องการโคลนนิ่งฮาร์ดดิสก์ไปเก็บเป็นไฟล์อิมเมจชื่อ mswin.img จะต้องทำคำสั่งดังนี้

    # mkdir /mnt/data
    # mount 192.168.100.5:/data /mnt/data
    # dd if=/dev/hda of=/mnt/data/mswin.img
จากการใช้งานจริงพบว่าการโคลนนิ่งฮาร์ดดิสก์ขนาด 8 GB ดังกล่าว ผ่านระบบเครือข่ายอีเธอร์เน็ต 10/100 Mbps ใช้เวลาประมาณ 20 นาที โดยเครื่องพีซีลูกข่ายเป็นเครื่องระดับ Celeron 466 MHz ฮาร์ดดิสก์ ATA 66 ส่วนเครื่องลีนุกซ์เซิร์ฟเวอร์เป็นเครื่องระดับ Pentium-4 2.8 GHz ฮาร์ดดิสก์ ATA133 แต่ระยะเวลาการสร้างไฟล์อิมเมจนี้คงไม่สำคัญเท่ากับระยะเวลาการโคลนนิ่งกลับมา หลังจากเสร็จสิ้นการสร้างไฟล์อิมเมจแล้ว อย่าลืม unmount การเชื่อมต่อที่ /mnt/data ออกเสียก่อนที่จะใช้คำสั่ง exit เพื่อออกจากการใช้งานซีดีรอมนี้

รูปที่ 7 การตรวจสอบฮาร์ดดิสก์วินโดวส์ XP จาก Rescue Mode

โคลนนิ่งอิมเมจกลับไปเป็นวินโดวส์ สำหรับการโคลนนิ่งไฟล์อิมเมจกลับเข้าสู่เครื่องพีซีวินโดวส์ จะมีขั้นตอนการปฏิบัติเหมือนกันในช่วงของการเข้าสู่เชลล์ของ Rescue Mode แต่จะแตกต่างกันในการใช้คำสั่ง dd เพื่อนำไฟล์กลับมาจาก mount point ( /mnt/data ) เพื่อเขียนลงสู่ฮาร์ดดิสก์ ( /dev/hda ) เท่านั้น เพราะฉะนั้นคำสั่งที่จะใช้งานในขณะที่อยู่ที่เชลล์จะเป็นดังนี้
# mkdir /mnt/data
# mount 192.168.100.5:/data /mnt/data
# dd if=/mnt/data/mswin.img of=/dev/hda
ในการโคลนนิ่งอิมเมจกับมาลงฮาร์ดดิสก์นี้ จากการใช้งานจริงพบว่า ใช้เวลานานกว่าการสร้างไฟล์อิมเมจมากถึง 50 เปอร์เซนต์ คือ จากตัวอย่างที่ได้กล่าวไปแล้วใช้เวลาโคลนนิ่งกลับถึง 30 นาที หากสังเกตจากสเปคเครื่องลูกข่ายเทียบกับเครื่องเซิร์ฟเวอร์ จะสันนิษฐานได้ว่าประสิทธิภาพการเขียนไฟล์ลงสู่ฮาร์ดดิสก์เป็นตัวแปรสำคัญต่อระยะเวลาการโคลนนิ่งมากกว่าปัจจัยอื่นๆ ถึงอย่างไรด้วยผลลัพธ์ด้านเวลาเช่นนี้ก็ถือว่าเป็นที่น่าพอใจเมื่อเปรียบเทียบกับการที่จะต้องลงโปรแกรมวินโดวส์ใหม่ทั้งหมดด้วยวิธีการธรรมดา แถมท้ายด้วยการบีบอัดไฟล์อิมเมจ หากสังเกตไฟล์ที่ปรากฏในเครื่องลีนุกซ์เซิร์ฟเวอร์ (รูปที่ 2) จะเห็นว่ามีขนาดของไฟล์ใหญ่โตเท่ากับขนาดของฮาร์ดดิสก์ที่ทำการโคลนนิ่งเลยทีเดียว แต่ภายในน่าจะเป็นความว่างเปล่าเสียเป็นส่วนใหญ่ ดังนั้นเพื่อให้มีการใช้เนื้อที่ดิสก์อย่างประหยัด จึงควรบีบอัดข้อมูลไฟล์อิมเมจนี้ลง สามารถทำได้ด้วยคำสั่ง bzip2 ที่ฝั่งเครื่องเซิร์ฟเวอร์ ดังนี้
# cd /data # bzip2 mswin.img
จะได้ผลลัพธ์เป็นไฟล์ mswin.img.bz2 ซึ่งมีขนาดลดลงจาก 8.4 GB เหลือเพียง 2.7 GB เท่านั้นเอง ดังรูปที่ 8 ส่วนการขยายขนาดกลับมาก่อนที่จะนำไปโคลนนิ่งกลับ ทำได้ในทางกลับกันด้วยคำสั่ง bunzip2


รูปที่ 8 เปรียบเทียบผลลัพธ์การบีบอัดไฟล์อิมเมจ

โซลูชั่นง่ายๆ ที่เกิดจากประสบการณ์ของผู้เขียนเองนี้ เกิดจากความต้องการแก้ไขปัญหาที่ประสบอยู่ โดยนำเอาสิ่งที่อยู่รอบตัวมาปรับใช้ให้เหมาะสมกับลักษณะงาน นอกจากจะช่วยให้งานสำเร็จลุล่วงไปได้แล้วยังเป็นการหลอมรวมเอาความรู้หลายๆ ด้านมาประยุกต์ใช้งาน ซึ่งเป็นข้อดีเด่นของระบบปฏิบัติการ ลีนุกซ์และซอฟต์แวร์โอเพ่นซอร์สที่ทำให้เราสามารถนำมาสร้างสรรค์ได้อย่างไม่รู้จบสิ้น