ครึก#12ข.: วิธีแก้เมื่อ kernel ติงต๊อง ตอนที่ 2(Black Screen of Discomfort)


Posted in:
TrendyTeddy's picture

ตอนที่แล้วผมฝากให้ดูว่า ถ้าอาการของคุณเป็นดังนี้

1. อัพเดทตามปรกติธรรมดานั่นแหล่ะ แต่อัพเดททั้งระบบ โดยไม่ดูว่าอัพเดทโปรแกรมอะไรบ้าง
(แน่นอน ถ้าคุณอัพเดทในช่วงสัปดาห์ที่ผ่านมา ถูกหวยแหงๆ)

2. มีเมนูตอนบู๊ทให้เลือก OS เพิ่มขึ้นอีกบรรทัด มีเลขท้าย 2 ตัว 3 ตัว ที่แตกต่างกัน

3. บู๊ทหน้าจอดำสนิท เข้าไม่ได้เลย

คุณเจอปัญหา kernel ติงต๊องซะแหล๋ว :P

......

สิ่งที่ต้องเตรียม

1.Live CD Ubuntu
2.เตรียมใจ :P

เตรียมใจ:
ผมไม่เคยแก้ด้วยวิธีนี้จริงๆ แต่แก้ปัญหาคล้ายๆ กันนี้ (และอิรุงตุงนังกว่า)
ก็น่าจะไม่มีอะไรพลาด ถ้า kernel มันติงต๊องแค่นั้น

ดังนั้นโปรดเคลื่อนย้ายข้อมูลอันมีค่าของท่านที่เซฟไว้ใน Ubuntu ไว้ยังที่อื่นๆก่อน นะจ๊ะ

.......

วิธีแก้ไขมี 2 กรณี

กรณีที่ 1 บู๊ทเข้าได้เฉพาะ kernel เก่า

ยังดีนะ ที่เข้า kernel เก่าได้ อันนี้แก้ไม่ยากเท่าไหร่

1.1 เปิด terminal พิมพ์

uname -r เพื่อดูเวอร์ชั่นของเคอร์เนล ขอให้แน่ใจว่าเป็นตัวเก่าที่ไม่มีปัญหา

ทดเลขไว้ในใจ จำให้แม่นๆ

1.2 เปิด synaptic

กด ctrl+f เพื่อค้นหา แล้วพิมพ์

linux-image แล้วดูผลที่ได้

ไอ้ที่ติ๊กเขียวๆ คือที่เราติดตั้งอยู่ จะพบว่ามี linux-image ของใหม่และของเก่า

**ติ๊ก Mark แบบ Complete Uninstallation เพื่อเอาออก กด apply

1.3 รีบูต เลือกเมนูเก่า ภาวนาให้ขึ้น

(อาจลองเมนูใหม่ ถ้าขึ้น error แต่ไม่ใช่ จอดำ ก็ถูกต้องล่ะครับ)

ถ้าไม่ขึ้น โปรดอ่าน "สิ่งที่ต้องเตรียม ข้อที่2" แล้วลงอูบุนตูใหม่

1.4 ลบเมนูที่ไม่ใช้ออกจาก grub

กด alt+f2 แล้วพิมพ์

gksu gedit /boot/grub/menu.lst

ใส่ password

ไล่บรรทัดจนเจอที่ระบุว่า Ubuntu ..ตามด้วย "เคอร์เนลตัวใหม่" ไอ้ที่เราลบออกไปแล้ว
ลบออก ไปซะ ทั้งบรรทัดล่างของมันด้วย แต่อย่าไปลบ อีกเมนูนึงล่ะ เมคเซ้นส์สักนิดส์

Save และ Reboot ใช้ อย่างไม่ตะขิดตะขวงใจ

.......

กรณีที่ 2

เข้าไม่ได้ซักเมนู

2.1 ใส่ "สิ่งที่ต้องเตรียม 1" ในช่อง CD ตั้งค่า boot เครื่องเป็น boot จาก CD

2.2 ถ้ารู้ว่า Ubuntu อยู่ Partition ไหน ก็ข้ามข้อนี้ไป แต่ถ้าไม่รู้

เปิด terminal

พิมพ์ sudo grub แล้วมันจะเข้า grub
พิมพ์ find /boot/grub/stage1

หากได้ค่าเช่นนี้ (hd0,0) แสดงว่าอยู่ที่ฮาร์ดิสก์ลูกที่ 1 พาร์ทิชั่น 1
หากได้ค่าเช่นนี้ (hd0,1) แสดงว่าอยู่ที่ฮาร์ดิสก์ลูกที่ 1 พาร์ทิชั่น 2 เป็นต้น

จดค่าไว้

ออก grub โดยการพิมพ์ quit

ไปที่ system > administration > partition editor

ดูว่า Ubuntu อยู่ Partition ไหน อืมม์ มันก็ไม่บอกโดยตรงอะครับ โดยเฉพาะคนที่มีหลายพาร์ติชั่น
กรณีคนหลายใจหลาย OS ก็ต้องมีความรู้ว่า สับรางให้ Ubuntu อยู่ตรงไหนแน่นอน

ให้ดูขวามือบนว่าเราใช้ device แบบไหน hda หรือ sda (อาจเป็น hdb หรือ sdb ในกรณีที่เรามี harddisk หรือใส่ flash drive ไป)

จดให้ดี เช่น /dev/sda เป็นต้น และใช้ file system แบบไหน ext2 ext3

เราได้ค่าว่า harddisk เราคือ /dev/sda พาร์ติชั่นที่ลง Ubuntu (ยึดจาก grub แต่ถ้าลงหลายตัวก็ใช้ต้องเรียกความจำหน่อย) คือพาร์ติชั่น 1

จะได้ค่า /dev/sda1 แบบ ext3 เป็นต้น***

2.3 mount media

ขี้เกียจอธิบายทำเลยดีกว่า

เปิด terminal

sudo mkdir /chroot
sudo mount -t ext*** /dev/*** /chroot/ อย่าบ้าจี้ใส่ *** นะครับ อ่านข้อ 2.2 ก่อน

sudo chroot /chroot/

dpkg -l linux-image-2 | less

ไล่ดูว่าอันไหนมันตัวไหม่ และมี status เป็น ii (ดูจากด้านซ้ายมือ)

จดมาว่าจะถอดถอนอะไร (คือตัวใหม่)

apt-get autoremove linux-image-2.x.xx.x

อ่านดีๆ ก่อนตอบ yes ดูว่ามันจะเอาอะไรออกบ้าง ต้องมีเลขของตัวใหม่เท่านั้น

***ไม่แน่ใจโปรดโพสท์ถามบอร์ดก่อนขอรับ

2.4 ทำข้อ 1.4

แต่เปลี่ยนคำสั่งเป็น

nano /boot/grub/menu.lst

แก้ไขไฟล์ save (ctl+o) แล้วปิด (cltl+x) จากนั้นออกจาก chroot โดยพิมพ์ exit

2.5 รีบู๊ท แล้วอ่านสิ่งที่ต้องเตรียม "ข้อที่ 2"

เสร็จแล้ว

........

ถึงแม้ผมไม่เคยถอน kernel ตัวที่เป็นปัญหาก็จริงอยู่ แต่ผมเคยลง OS จนไม่บู๊ทไม่ขึ้นทั้ง Ubuntu, Win$, และ Linux ตัวปัญหา
kernel ของ Distro ที่ไม่เสถียร อาจสร้างความรวน จนทำให้ตัวอื่นอาจบู๊ทไม่ขึ้นก็ได้

ปล. Not any warranty นะจ๊ะ :D

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <i> <center> <span> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <br> <dt> <dd> <object> <embed> <hr> <img> <blockquote> <b> <u> <del> <div> <p> <table> <tr> <td> <font>

More information about formatting options