วันอังคารที่ 16 มีนาคม พ.ศ. 2553

ผลพลอยได้จากการเข้าร่วมกิจกรรม Thailand Mini DebCamp 2010

จากที่เขียนไปก่อนหน้านี้ว่า โน้ตบุ๊กมีปัญหาหลังจากพยายามอัพเกรดให้เป็น sid แล้วทำไม่ได้ต้องแก้ระบบกลับคืน

อาการแรกก็คือ Gnome หาย เหลือไว้แต่ TWM อันนี้ไม่ยาก เพราะ wvdial ยังอยู่ apt-get ยังอยู่ ก็ต่ออินเตอร์เนตด้วย wvdial แล้วก็ Install Gnome โดยใช้ apt-get เสร็จไปอย่างหนึ่ง

วันรุ่งขึ้นยังคาใจ เลยพยายามอัพเกรดระบบให้เป็น squeeze ผลคือ Kernel เดิมมีปัญหากับ udev รุ่นใหม่ แล้วเราไม่รู้เรื่อง ก็เลยพาให้ X มีปัญหาตามไปด้วย อาการคือ X Window หายไปเลย เหลือแต่จอดำ ๆ เปล่า ๆ

เอาล่ะสิ จะ Install ใหม่ มันก็ได้อยู่หรอกนะ แต่ว่ามันน่าจะแก้ได้ใช่ไหมล่ะ ก็เลยคิดวิธีการแก้ไว้อย่างนี้
  1. หาทางให้ระบบบูตขึ้นมาใน Text Mode ให้ได้ก่อน ตอนนี้ระบบพยายามจะใช้ X แล้วใช้ไม่ได้อยู่
  2. ถ้าบูตเข้า Text Mode ได้แล้ว ค่อยหาทางใช้อินเตอร์เนตของที่ทำงานให้ได้เป็นรายการต่อมา เพราะต้องใช้ apt-get ลงแพคเกจอีกหลายตัว
  3. จากนั้นก็ค่อยอัพเกรด Kernel และ Firmware ให้เรียบร้อย
  4. ถ้าไม่มีปัญหา ก็จะได้อัพเกรดระบบที่เหลือทั้งหมด
บูตยังไงให้เข้า Text Mode
ด่านแรกคือทำยังไงกระบวนการบูตจึงจะหยุดอยู่ที่ Text Console ไม่ไปเรียก GDM ซึ่งรันอยู่บน X เข้าไปดูในอินเตอร์เนต เจออยู่หลายเว็บ แต่ไม่ได้ตอบคำถามที่อยากรู้เลย ส่วนมากจะบอกเพียงว่า จะต้องไปแก้ไขไฟล์ไหนเท่านั้น แต่ตอนนี้ระบบของเราเดี้ยงอยู่ เราจะเข้าไปแก้ไฟล์นั้นไฟล์นี้ได้อย่างไร

สุดท้ายก็ได้พบคำตอบจาก https://help.ubuntu.com/community/BootOptions ว่า ตอนที่เครื่องรัน Grub อยู่นั้น เราสามารถใส่ Boot Option ได้ โดยเลือก OS ที่เราต้องการ กด e เพื่อ Edit Boot Command ซึ่งถ้าเป็น Linux หน้าตาของ Boot Command จะคล้าย ๆ อย่างนี้
boot: /boot/vmlinuz-x.x.x-x root=/dev/hdax ro quiet
เราเติม option ว่า text ลงไปข้างท้ายบรรทัดที่ว่าจะได้
boot: /boot/vmlinuz-x.x.x-x root=/dev/hdax ro quiet text
พอแก้ไขเสร็จ กด b ระบบก็จะบูตและกระบวนการก็จะไปหยุดอยู่ที่ Prompt ไม่เรียก GDM ให้เครื่องเราเดี้ยงอีกต่อไป

จะใช้เน็ตเวิร์กยังไง
ด่านต่อมาก็คือ แต่ก่อนแต่ไรมาเราก็ต่อเน็ตเวิร์กตอนที่อยู่ใน Gnome ทั้งนั้น ไม่เคยต่อโดยใช้บรรทัดคำสั่งเลย แต่มันต้องทำได้สิน่า ลองหาดูก่อน ก่อนอื่นเลยคำสั่งแรก เคยใช้มาบ้างแล้วคือ ifconfig
sudo ifconfig
เพื่อแสดงรายการเน็ตเวิร์กดีไวซ์ของเราเสียก่อน เครื่องผมมี 2 ตัว พอดีทราบมาก่อนแล้วว่า eth0 คือเน็ตเวิร์กดีไวซ์แบบมีสายที่เราจะใช้นี่แหละ ก็ตั้ง ip ตามที่ admin เคยให้ข้อมูลมาเสียให้เรียบร้อยด้วย
sudo ifconfig eth0 xxx.xxx.xxx.xxx
sudo ifconfig eth0 up
อันที่จริง ไม่ต้องสั่ง up ก็ได้ มันจะ up ให้อัตโนมัติ ทดสอบว่าเชื่อมต่อกับเน็ตเวิร์กแล้วโดยการ ping ไปที่ gateway ซึ่งในระบบที่ผมใช้ admin เขาให้รายละเอียดมา ก็ไม่ต้องไปค้นหาให้ลำบาก ปัญหาต่อมาก็คือ เชื่อมต่อกับเน็ตเวิร์กแล้ว แต่ต่อออกข้างนอกไม่ได้เพราะยังไม่ได้บอกระบบว่า DNS ที่เราจะใช้อยู่ที่ไหน จากการค้นอินเตอร์เนตทำให้ทราบว่ารายชื่อของ DNS จะอยู่ในไฟล์ชื่อ /etc/resolve.conf ให้ใช้สิทธิ์ root ไป Edit ไฟล์นี้โดยให้แน่ใจว่ามีบรรทัดที่ระบุ DNS อยู่เช่น
nameserver xxx.xxx.xxx.xxx
ถ้ามี DNS มากกว่าหนึ่งตัวก็เติมเข้าไปในไฟล์นี้แหละ ทดสอบว่าระบบรู้จักกับ DNS แล้วหรือยังด้วยคำสั่ง
host google.com
ควรจะได้รายการ IP Address ของกูเกิลออกมา ถ้าได้มาก็แสดงว่าตั้งค่า DNS เสร็จแล้ว ต่อมาก็ต้องระบุ Proxy Server สำหรับ apt-get ให้เรียบร้อย ให้เปิดไฟล์ /etc/apt/apt.conf ดูด้วยคำสั่ง
cat /etc/apt/apt.conf
ก็ได้น่าจะเห็นอะไรคล้าย ๆ ข้างล่างนี้อยู่
Acquire::http::Proxy "http://proxy.server.name:PORT";
ถ้าไม่มีก็เติมเข้าไปให้ถูกต้อง ตอนนี้ apt-get ของเราก็พร้อมเชื่อมต่อกับอินเตอร์เนตแล้ว ถ้ายังไม่ได้กำหนด Reprository หรือไม่แน่ใจก็ให้ดูที่ /etc/apt/source.list ก็ได้ สำหรับ Debian ตอนนี้ Debianclub ประกาศ Reprository มาหลายที่เพื่อความสะดวกของผู้ใช้ ผมอยู่ขอนแก่นก็ใช้ Reprository ของคุณนิวตรอน ก็ให้แน่ใจว่ามีบรรทัดอย่างนี้อยู่ใน /etc/apt/source.list
deb http://neutron.debianclub.com/debian squeeze main contrib non-free
ตอนนี้ apt-get ก็พร้อมแล้ว เมื่อพร้อมแล้วก็ใช้ apt-get อัพเกรด linux-image และ firmware ที่จำเป็นให้เสร็จก่อน อาจใช้ wildcard ช่วย และเลือกจากรายการที่ apt-get แสดงให้ดู เมื่อเสร็จแล้วจึงอัพเกรดทั้งระบบ หรือจะเลือกอัพเกรดเฉพาะ X และ Gnome ก่อน ก็ได้ ต่อไปจะได้เข้าไปแก้ไขระบบใน Gnome ตามที่คุ้นเคยต่อไป

ไม่มีความคิดเห็น: