Month: June 2014

  • แก้ปัญหา ubuntu server 14.04 เปลี่ยน eth0 เป็น em1

    เรื่องมีอยู่ว่า ผมและวิศิษฐ ช่วยกันทำต้นฉบับ PSU12-Sritrang ใหม่เมื่อมี ubuntu 14.04 ออกมาแล้ว เดิมใช้ ubuntu 12.04 มาโดยตลอด ปัญหานี้เกิดขึ้นตั้งแต่ ubuntu เปลี่ยนเวอร์ชั่นเป็น 13.04 แล้ว คือ เมื่อ clone ไปแล้ว บูต server แล้วจะไม่เห็น eth0

    เมื่อตรวจสอบด้วยคำสั่ง dmesg | grep eth0 ก็พบว่าบรรทัดที่มีข้อความว่า renamed eth0 to em1

    วิศิษฐ ค้นเจอว่า หากต้องการบังคับให้ใช้แบบเก่า คือ ใช้ eth0 จะต้องแก้ไขไฟล์
    /etc/default/grub ทำดังนี้

    หากใช้ editor vi คล่อง ก็ใช้คำสั่งนี้
    sudo vi /etc/default/grub
    หากไม่คล่อง ก็ใช้ดังนี้
    sudo nano /etc/default/grub

    ในไฟล์ /etc/default/grub ให้หาบรรทัด
    GRUB_CMDLINE_LINUX_DEFAULT=””
    แก้ไขเป็น
    GRUB_CMDLINE_LINUX_DEFAULT=”net.ifnames=1 biosdevname=0″

    จากนั้นให้สั่งคำสั่งนี้ด้วย
    sudo update-grub

    เท่าที่ทดสอบผลกับเครื่องที่มีปัญหา สามารถบังคับให้ใช้ eth0 ได้ครับ ยังไม่พบว่าวิธีการนี้จะใช้ไม่ได้เมื่อมีการ update versions ของ ubuntu ยังคงต้องตรวจสอบในเวอร์ชั่นต่อไป

     

    อัปเดตข้อมูล (17 มี.ค. 2559)

    ใน ubuntu 16.04 server ผมกลับพบว่า คำสั่งนี้ใช้ไม่ได้

    GRUB_CMDLINE_LINUX_DEFAULT=”net.ifnames=1 biosdevname=0″

    แต่คำสั่งข้างล่างนี้ใช้ได้

    GRUB_CMDLINE_LINUX_DEFAULT=”net.ifnames=0″

    ทำให้ใช้ eth0 ได้

    ซึ่งการกำหนดค่า net.ifnames=0 นี้นำมาจากเอกสารที่อ้างอิง [1] ข้างล่างนี้ ผมเลือกใช้ option ที่ 3

     

    และมีคำอธิบายในเรื่องความเปลี่ยนแปลงในการใช้ชื่อ network interface name ใน [2]

     

    Reference:
    [1] http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

    [2] https://lists.ubuntu.com/archives/ubuntu-devel/2015-May/038761.html