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 >>> อ่านรายละเอียด... คลิ๊ก

Windows 7 ในโลกของ Linux

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

ผู้ใช้งานวินโดวส์ทั้งกลุ่มที่ใช้ในบ้านและสำนักงานต่างเริ่มสงสัยว่าจะทำอย่างไรให้วินโดวส์ 7 ทำงานร่วมกับลีนุกซ์ วันนี้เราจะมาเริ่มต้นกับ Windows 7 ในมุมมองของลีนุกซ์กัน ย้อนกลับไปในแต่ละปี ทุกครั้งที่วินโดส์รุ่นใหม่ประกาศตัวออกมา กลุ่มผู้ใช้งานโดยเฉพาะผู้ดูแลระบบคอมพิวเตอร์จะต้องมา
อัพเดตข่าวสารกันอยู่เสมอ ตั้งแต่เรื่องของการใช้งานทั่วไปของผู้ใช้ วิธีการเข้าสู่เมนูเพื่อใช้สั่งงานเรื่องต่างๆ การสนับสนุนอุปกรณ์ฮาร์ดแวร์ ซอฟต์แวร์แอปพลิเคชั่นที่เคยใช้งานอยู่จะเข้ากันได้หรือไม่ รวมไปถึงการเชื่อมต่อทางระบบเครือข่าย เรียกว่าต้องไล่เช็คกันทุกด้านเลยทีเดียวว่ามีอะไรเปลี่ยนไปจากวินโดวส์รุ่นเก่าบ้าง
ในมุมมองของผู้ทำงานเกี่ยวข้องกับระบบปฏิบัติการที่หลากหลายก็จะต้องถามทันทีว่า แล้วเรื่องการทำงานร่วมกับระบบปฏิบัติการอื่นๆ ล่ะ จะเป็นอย่างไร มีอุปสรรคอะไรบ้างหรือไม่ ปัญหานี้ใช่ว่าจะเกิดจากความเปลี่ยนแปลงของวินโดว์ 7 เท่านั้น แต่ยังรวมถึงการพัฒนาที่เกิดขึ้นจากฝากฝั่งลีนุกซ์และซอฟต์แวร์โอเพ่นซอร์สก็มีส่วนช่วยให้การเข้ากันได้นั้นราบรื่นด้วยเช่นกัน นั่นคือต้องพัฒนาไปพร้อมกันนั่นเอง ขณะนี้วินโดวส์ 7 ได้เปิดตัวออกมาให้ดาวน์โหลดเพื่อทดลองใช้งานกันแล้ว ในรุ่น Beta 2 นี้ ได้เพิ่มความสะดวกในการติดตั้งขึ้น แต่ในขณะเดียวกันก็จำกัดรูปแบบไว้ให้เลือกว่าจะใช้งานในลักษณะ Home Use เพื่อใช้งานในบ้าน หรือ Office Use คือใช้งานในสำนักงาน ซึ่งเป็นไปตามแนวโน้มที่ชัดเจนมากขึ้นทุกวันว่าเราจะทำงานในบ้านมากขึ้นและทุกบ้านจะต้องมีระบบเครือข่ายภายในบ้านเป็นเรื่องธรรมดา ดังจะเห็นจากวินโดวส์ 7 นี้ว่ามีตัวช่วย (Wizard) ในการตั้งค่าระบบเครือข่ายที่ฉลาดมากทีเดียว อีกสิ่งหนึ่งซึ่งเป็นคุณสมบัติที่มาแรงในยุคนี้คือการเข้ารหัสข้อมูลในระบบไฟล์ (Encrypted File System) ก็ปรากฏรวมอยู่ในทุกๆ ระบบปฏิบัติการที่ออกมาในช่วงปี 2008 ต่อเนื่องมาจนถึงวินโดวส์ 7 นี้ จึงเป็นอีกสิ่งหนึ่งที่ให้ความสำคัญมากและจะสร้างปัญหาให้กับผู้ดูแลระบบต้องเหนื่อยกันอีกอย่างหลีกเลี่ยงไม่ได้ ในมุมมองของการทำงานร่วมกันระหว่างวินโดวส์กับลีนุกซ์ คงหนีไม่พ้น 4 ประเด็นหลักๆ คือ หนึ่งประเด็นเรื่องการทำงานในสภาพแวดล้อมแบบเครือข่าย TCP/IP ประเด็นที่สองคือเรื่องการติดตั้งทั้งสองระบบปฏิบัติการไว้ในเครื่องพีซีเครื่องเดียวกันหรือการทำ Multi-Boot ประเด็นที่สามคือเรื่องการเข้าถึงระบบไฟล์ระหว่างวินโดวส์กับลีนุกซ์ที่อยู่ภายในเครื่องเดียวกัน และประเด็นสุดท้ายคือเรื่องการโอนไฟล์ระหว่างโฮสต์ที่เป็นวินโดสว์กับโฮสต์ที่เป็นลีนุกซ์ผ่านระบบเครือข่าย ในประเด็นแรกคือการทำงานร่วมกันในเครือข่าย TCP/IP เป็นเรื่องที่ไม่มีปัญหาใดๆ เนื่องจากโปรโตคอลดังกล่าวรวมทั้งบริการภายใต้ชุดโปรโตคอลนี้ ล้วนสร้างขึ้นให้ทำงานด้วยข้อตกลงอันเป็นมาตรฐานร่วมกัน ดังนั้นการที่จะใช้ลีนุกซ์เป็นเร้าเตอร์ บริดจ์ เกตเวย์ หรือเซิร์ฟเวอร์ชนิดต่างๆ เช่น DNS HTTP FTP ฯลฯ. ย่อมใช้งานได้เป็นปรกติ ประเด็นแรกนี้จึงไม่มีปัญหาแต่อย่างใด ประเด็นที่สองคือ เรื่องของการติดตั้งระบบปฏิบัติการวินโดวส์ 7 และลีนุกซ์ในเครื่องเดียวกัน ประเด็นนี้มีการพูดถึงน้อยลงมากแล้ว ณ เวลานี้ เนื่องจากเทคโนโลยี Virtualization ชนิดต่างๆ ในปัจจุบันได้เข้ามาตอบสนองได้แล้ว พร้อมๆ กับประสิทธิภาพของโปรเซสเซอร์ในปัจจุบันที่มีเรี่ยวแรงเหลือพอที่จะรันระบบปฏิบัติการหลายๆ ตัวพร้อมๆ กันโดยอาศัยซอฟต์แวร์ประเภท Virtualization จึงไม่ใช่เรื่องยุ่งยากอีกต่อไป ซอฟต์แวร์จำลองเครื่องพีซีหรือ Virtual Machine ก็มีให้เลือกใช้งานหลายตัว เฉพาะที่ใช้งานได้ดีอีกทั้งยังฟรีอีกด้วยคงหนีไม่พ้น SunXVM หรือ VirtualBox ซึ่งเป็นซอฟต์แวร์โอเพ่นซอร์สที่ยอดเยี่ยมในเรื่องนี้ไม่แพ้ซอฟต์แวร์เชิงพาณิชย์เลยทีเดียว อย่างไรก็ตาม หากต้องการลงระบบปฏิบัติการวินโดวส์ 7 ร่วมกับลีนุกซ์โดยเลือกบูตเพียงตัวใดตัวหนึ่งเท่านั้นก็จะได้ใช้ทรัพยากรภายในเครื่องพีซีอย่างเต็มที่และไม่ผ่านการจำลองอุปกรณ์ต่างๆ ให้ต้องเป็นข้อจำกัดในการใช้งานอีกด้วย ก็ต้องแบ่งเนื้อที่ฮาร์ดดิสก์และติดตั้งกันจริงๆ ทั้งสองระบบ ปัญหาอยู่ที่ว่าจะติดตั้งระบบใดก่อน เพราะถ้าเดิมในฮาร์ดดิสก์มีวินโดวส์ 7 อยู่ก่อนแล้ว (โดยแบ่งเนื้อที่ดิสก์เหลือไว้ติดตั้งลีนุกซ์) แล้วติดตั้งลีนุกซ์ลงไปทีหลัง แบบนี้ลีนุกซ์แทบทุกดิสทริบิวชั่นจะตรวจพบวินโดวส์ในระหว่างที่ลีนุกซ์ดำเนินการติดตั้ง และจะสร้างเมนูแบบ Multi-Boot ไว้ให้ทันที เป็นนโยบายเอื้ออาทรที่ลีนุกซ์ยึดถือมาตลอดครับ สรุปว่า ลงวินโดวส์ก่อน โดยเหลือเนื้อที่ดิสก์ไว้สำหรับลีนุกซ์ เมื่อลงวินโดวส์เสร็จแล้ว ลงลีนุกซ์ตามลงไป จะมีเมนู Multi-Boot ไว้ใช้เลือกบูตระบบปฏิบัติการทั้งสองโดยอัตโนมัติ ในทางกลับกันบ้าง หากติดตั้งลีนุกซ์ไว้ก่อนแล้วต้องการติดตั้งวินโดวส์ลงไปทีหลัง ลักษณะเช่นนี้นอกจากเรื่องเนื้อที่ดิสก์ที่จะต้องเหลือเผื่อไว้ให้แก่วินโดวส์ (ซึ่งหลักการติดตั้งลีนุกซ์จะไม่ใช้เนื้อที่ดิสก์ทั้งหมด 100% อยู่แล้วจึงไม่น่าจะเกิดปัญหา) เนื่องจากวินโดวส์ไม่ได้เอื้ออาทรแก่ระบบปฏิบัติการอื่น ถึงแม้ว่าจะมีระบบอื่นติดตั้งอยู่ก่อนแล้ว วินโดวส์ก็ไม่สนใจและจะติดตั้งโปรแกรมช่วยบูต (Boot Loader) ทับที่มาสเตอร์บูตเรคอร์ด (MBR) ที่เซกเตอร์แรกของฮาร์ดดิสก์ไปเลย ผลลัพธ์ก็คือ หลังจากติดตั้งวินโดวส์เสร็จแล้ว ถึงแม้จะไม่ได้ลบหรือติดตั้งทับพาร์ทิชั่นที่เป็นลีนุกซ์ก็ตาม เครื่องจะบูตเข้าวินโดวส์ทันที ไม่มีตัวเลือกใดๆ ให้บูตเข้าลีนุกซ์อีกต่อไป เมื่อมีอาการ "งานเข้า" เช่นนี้ วิธีแก้ไขก็คือ จะต้องนำแผ่นติดตั้งของลีนุกซ์รุ่นที่ได้ติดตั้งไว้หรือใหม่กว่า นำมาบูตเข้าสู่กระบวนการ Rescue ซึ่งในปัจจุบันทุกๆ ดิสทริบิวชั่นจะสร้างเมนูไว้บริการและแนะนำวิธีการให้ตลอดทุกขั้นตอน เมื่อเข้าถึงระบบไฟล์ของลีนุกซ์ผ่านกระบวนการ Rescue ได้แล้วก็เพียงแต่เข้าไปสร้างเมนูสำหรับบูตเข้าวินโดวส์และติดตั้งตัว Boot Loader เข้าไปใหม่เท่านั้น มีขั้นตอนดังนี้ rescue # chroot /mnt/sysimage
rescue # vi /boot/grub/grub.conf
แก้ไขข้อความ
timeout=30
#hiddenmenu
เพิ่มข้อความเมนูใหม่
title Windows 7
    rootnoverify (hd0,2)
    makeactive
    chainloader +1
บันทึกไว้
rescue # grub-install /dev/sda
rescue # exit
rescue # reboot
คำสั่ง timeout เป็นการกำหนดระยะเวลาที่จะรอให้ผู้ใช้งานเลือกเมนู hiddenmenu จะซ่อนเมนูไว้โดยแสดงเฉพาะเวลานับถอยหลัง จึงไม่ควรใช้งาน title เป็นข้อความที่จะแสดงเมนูตัวเลือก rootnoverify เป็นการระบุพาร์ทิชั่นที่ติดตั้งวินโดวส์เอาไว้ โดย hd0 หมายถึง ฮาร์ดดิสก์ตัวแรกในเครื่อง ส่วนเลข 2 หลังเครื่องหมายคอมม่า หมายถึงลำดับหมายเลขพาร์ทิชั่นที่ติดตั้งวินโดวส์เอาไว้ เนื่องจาก GRUB จะเริ่มนับพาร์ทิชั่นตั้งแต่ศูนย์ จึงควรกำหนดให้ถูกต้อง หากไม่ทราบว่าเป็นพาร์ทิชั่นใดกันแน่ ให้ใช้คำสั่ง fdisk -l ตรวจดูให้ทราบแน่ชัดเสียก่อน คำสั่ง makeactive เป็นการกำหนดให้ระบบปฏิบัติการที่เลือก(วินโดวส์) รู้ว่าบูตด้วยพาร์ทิชั่นหลัก ช่วยให้กำหนดชื่อไดร้ฟเป็น C: (ถ้าไม่มีคำสั่งนี้วินโดวส์จะเป็นไดร้ฟอื่น เช่น F: ) คำสั่ง chainloader +1 สั่งให้ GRUB Boot Loader ค้นหาโปรแกรม Bootstap ของวินโดวส์มาทำงานต่อไป เมื่อทำการบูตเครื่องอีกครั้งจะมีเมนูปรากฏ ดังรูปที่ 1 ให้ผู้ใช้งานได้เลือกว่าจะบูตเข้าระบบได้ตามความต้องการ

รูปที่ 1 เมนูสำหรับวินโดวส์ 7 ที่เพิ่มขึ้น


ประเด็นที่สาม ว่าด้วยเรื่องการเข้าถึงระบบไฟล์ (access file system) ระหว่างสองระบบปฏิบัติการนี้ เป็นความแตกต่างกันค่อนข้างมาก เนื่องจาก ลีนุกซ์ใช้ระบบไฟล์ EXT2/EXT3 ในการจัดเก็บข้อมูล ส่วนวินโดวส์ 7 ใช้ NTFS ในมุมของลีนุกซ์จะมีความสามารถในการเข้าถึงระบบไฟล์ชนิด NTFS ของวินโดวส์ได้อยู่แล้ว จึงเป็นการใช้งานที่ง่ายมาก ตัวอย่างเช่น ถ้ามีพาร์ทิชั่นที่เป็นไดร้ฟ C: อยู่ที่พาร์ทิชั่นที่ 4 ของฮาร์ดดิสก์ ในมุมของลีนุกซ์ก็คือ /dev/sda4 ดังนั้นจึงทำคำสั่งดังตัวอย่างนี้ # mkdir /mnt/c-drive
# mount.cifs /dev/sda4 /mnt/c-drive
# mount
/dev/sda4 on /mnt/c-drive type fuseblk (rw,nosuid,nodev,noatime,...)
ต่อจากนี้ก็เป็นการใช้งานที่พื้นที่ /mnt/c-drive ตามปรกติ
เช่น ต้องการเข้าพื้นที่เก็บข้อมูลของยูสเซอร์ Jubjang ของวินโดวส์ จะเข้าดังนี้
# cd /mnt/c-drive/Users/Jubjang/

มีข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับการเม้าต์จากลีนุกซ์ไปยังพาร์ทิชั่นของวินโดวส์ที่เป็นระบบไฟล์ NTFS จะทำไม่ได้ หากอยู่ในสภาพของการ Rescue เนื่องจากไม่มีโมดูลและซอฟร์แวร์สนับสนุน NTFS เตรียมไว้ให้ ผู้เขียนทดลองด้วยแผ่นติดตั้งของ Fedora 10 ไปแล้วครับ จะได้ไม่ต้องเสียเวลาลองกันอีก ในทิศทางกลับกัน หากต้องการอยู่ในวินโดวส์แล้วเข้าถึงระบบไฟล์ EXT2/EXT3 ของลีนุกซ์ จะต้องอาศัยโปรแกรมภายนอกมาช่วย ได้แก่ โปรแกรม ext2fsd และโปรแกรม ext2ifs (EXT2 Installable File System for Windows) ปัจจุบันเป็นรุ่น 1.11a แต่เป็นที่น่าเสียดายที่ไม่สามารถติดตั้งกับวินโดวส์ 7 ได้ คงจะต้องรอเวอร์ชั่นถัดไป หรือมองหาซอฟต์แวร์อื่นๆ มาช่วยในกรณีนี้ มาถึงประเด็นสุดท้าย คือ การโอนย้ายไฟล์ผ่านระบบเครือข่าย ซึ่งวินโดวส์ใช้โปรโตคอล SMB/CIFS เป็นหลักในการแชร์ไฟล์ผ่านเครือข่าย โดยทำงานแบบ NetBIOS over TCP/IP ในขณะเดียวกันลีนุกซ์ก็สนับสนุนโปรโตคอลนี้ รวมทั้งระบบไฟล์ผ่านเครือข่าย SMB/CIFS เช่นเดียวกัน การโอนย้ายไฟล์ระหว่างโฮสต์วินโดวส์และลีนุกซ์จึงปราศจากอุปสรรคขวางกั้น (ยกเว้นเปิดบริการไฟร์วอลล์เอาไว้) เริ่มต้นที่มุมของลีนุกซ์ก่อน หากอยู่ในสภาพแวดล้อมแบบ KDE ซึ่งเป็นกราฟฟิกเดสทอป และมีโปรแกรมบราวเซอร์คู่บารมี Konqueror อยู่แล้ว เพียงแค่ป้อน URL มุ่งหน้าไปยังโฮสต์วินโดวส์ให้ถูกต้อง เช่น smb://jubjang@192.168.100.203/ แล้วตอบรหัสผ่านให้ถูกต้อง เพียงเท่านี้ก็จะเข้าถึงโฟลเดอร์ของยูสเซอร์ Jubjang ของวินโดวส์ได้แล้ว (แถมโฟลเดอร์ Public ของวินโดวส์อีกด้วย)

รูปที่ 2 การเข้าสู่วินโดวส์ 7 แบบกราฟฟิกผ่าน Konqueror



รูปที่ 3 เข้าถึง Users Folder ได้จาก Fedora 10


การเข้าถึงวินโดวส์ 7 อีกวิธีหนึ่งโดยการใช้งานแบบคอมมานด์ไลน์ เหมาะอย่างยิ่งสำหรับการเขียนสคริปต์เพื่อสำรองข้อมูลหรือทำงานอัตโนมัติต่างๆ ในฝั่งของลีนุกซ์สามารถใช้คำสั่ง mount.cifs ได้ง่ายมาก ชื่อของคำสั่งก็บ่งบอกอยู่แล้วว่าใช้เม้าต์ด้วยโปรโตคอล CIFS คำสั่งนี้จะต้องติดตั้งแพคเกจ smbclient ด้วยจึงจะใช้งานได้ ดูตัวอย่างการใช้งานกันดีกว่าครับ # smbclient -L //192.168.100.203 -U jubjang
ตอบรหัสผ่านของยูสเซอร์ของวินโดวส์ จะได้คำตอบกลับมาเช่นนี้ แสดงว่า jubjang มีสิทธิ์ในโฮสต์นี้
Domain=[JUBJANG-PC] OS=[Windows 7 Ultimate 7000] Server=[Windows 7 Ultimate 6.1]

     Sharename     Type          Comment
     ADMIN$          Disk           Remote Admin
     C$                  Disk          Default share
     IPC$               IPC           Remote IPC
     Users              Disk
session request to 192.168.100.203 failed (Called name not present)
session request to 192 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
NetBIOS over TCP disabled -- no workgroup available

# mkdir /mnt/net
# mount.cifs //192.168.100.203/Users /mnt/net -o user=jubjang
ตอบรหัสผ่านของ jubjang
# mount
ตรวจสอบด้วยคำสั่ง mount จะปรากฏบรรทัดสุดท้ายว่า
//192.168.100.203/Users on /mnt/net type cifs (rw,mand)


ใช้งานตามปรกติ
# cd /mnt/net
# ls -l
จะสังเกตเห็นโฟลเดอร์ Defaults Jubjang Public และไฟล์ desktop.ini

พลิกกลับมายังฝั่งโฮสต์วินโดวส์ 7 กันบ้าง หากเราต้องการสร้างแชร์โฟลเดอร์ที่โฮสต์ลีนุกซ์ แน่นอนครับว่าจะต้องคอนฟิก SAMBA Server ให้พร้อมเสียก่อน แล้วสร้างยูสเซอร์สำหรับเข้ามาใช้บริการโฟลเดอร์นั้น ส่วนการเข้าถึงจากวินโดวส์ 7 ก็เพียงแค่อ้างอิง UNC มาให้ถูกต้องโดยคิดเสียว่าโฮสต์ลีนุกซ์ก็เป็นวินโดวส์ตัวหนึ่งเท่านั้นเอง วิธีการคอนฟิกอย่างง่ายที่สุดทำได้ดังนี้ครับ # vi /etc/samba/smb.conf
ที่บรรทัดสุดท้าย เพิ่มข้อความ
[SHARE]
    path = /tmp
    writable = yes
    public = yes
    comment = My First Share Folder
บันทึกไว้
# service smb restart ; service nmb restart
# smbpasswd -a root
ตั้งรหัสผ่านของ root
จากนั้นที่เครื่องวินโดวส์ 7 เปิด Explorer ขึ้นแล้วพิมพ์ UNC ในช่อง Address ว่า \\192.168.100.100 หมายถึงเข้าเครื่องไอพี 192.168.100.100 ที่เป็น SAMBA จะต้องตอบรหัสผ่านที่ตั้งไว้เมื่อสักครู่ ก็จะเข้าถึงแชร์โฟลเดอร์ของลีนุกซ์ได้แล้ว

รูปที่ 4 เปิด Explorer ของวินโดวส์ 7 เข้าสู่ลีนุกซ์


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