การแก้ปัญหา boot ไม่ขึ้นฟ้องเกี่ยวกับ initramfs

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 18-04-2557

ดูแลโดย WIPAT


  • ทดสอบกับ ubuntu 10.04, 14.04


  • ตัวอย่างนี้เกิดกับ ubuntu 10.04 ติดตั้งบน adaptec scsi controller และ 14.04
    อาการปัญหาที่เกิดคือบูทเข้าได้บ้าง ไม่ได้บ้าง
    สาเหตุเกิดจาก hard disk controller ทำงานไม่ทัน
    ทำให้ตอนบูทเมื่อ GRUB เริ่มทำงาาน แล้วตามหา root filesystem ไม่เจอ
    แก้ไขด้วยการเพิ่มตัวแปร rootdelay=90 เข้าไปในแฟ้ม /etc/default/grub.cfg
    หมายถึงให้หน่วงเวลาตอนบูท 90 วินาที ขั้นตอนทำดังนี้


  1. บูทเครื่อง PC ด้วยแผ่นซีดี sysressccd สามารถดาวน์โหลดได้ตามคำแนะนำใน แผ่น sysresccd รุ่นล่าสุด

  2. เมื่อได้หน้าจอเมนู SYSTEM-RESCUE-CD... ให้เลื่อนลงไปเลือกเมนูหัวข้อ
    สำหรับ sysresccd v3.7.0 ขึ้นไป เลือก
    5) Boot an existing Linux OS installed on the disk ... > แล้วกดแป้น Enter
    sysresccd version ต่ำกว่า เลือก
    E) Boot an existing Linux OS installed on the disk ... > แล้วกดแป้น Enter

    ได้หน้าจอเมนู E) Boot an existing Linux OS installed on the disk

    หากเดิมเป็น linux ubuntu แบบ 32bit ให้เลื่อนลงไปเลือกเมนูหัวข้อ
    Boot an existing 32bit Linux OS installed on the disk แล้วกดแป้น Enter

    หากเดิมเป็น linux แบบ 64bit ให้เลื่อนลงไปเลือกเมนูหัวข้อ
    Boot a 32bit or 64bit Linux OS installed on the disk แล้วกดแป้น Enter

    ระบบจะเริ่มทำงานต่อไปเรื่อยๆ จนกระทั่งเข้า linux ubuntu เดิมที่เคยติดตั้งไว้ได้

  3. เมื่อบูทจนเข้า linux ubuntu เดิมเรียบร้อยแล้ว
    ให้แก้ไขแฟ้ม /etc/default/grub เพิ่มตัวแปร rootdelay=90 ทำดังนี้
    ไปที่บรรทัดตัวแปร GRUB_CMDLINE_LINUX_DEFAULT=...
    สมมติตัวอย่างเดิมเป็นว่า GRUB_CMDLINE_LINUX_DEFAULT="text"
    ให้แทรกเพิ่มข้อความว่า rootdelay=90 ต่อเข้าไปอีก กลายเป็นตัวอย่างว่า
    GRUB_CMDLINE_LINUX_DEFAULT="text rootdelay=90"

    แก้ไขแค่นี้ แล้วสั่งปรับปรุง GRUB ใหม่ ด้วยคำสั่ง
    sudo update-grub

    เสร็จแล้วก็ให้ reboot เครื่องใหม่ เอาแผ่นซีดี sysresccd ออกด้วย
    ให้บูทเข้า ubuntu เหมือนเดิมได้เลย